Mandarin 3D

Quote, price and order custom 3D prints (PLA) shipped anywhere in the US.

Should I use this

Quality & Safety

A
Description quality
86%
Schema completeness
79%
Naming quality
88%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (1)

  • LOWTool 'design_part' description lacks action verbin design_part

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,202Tokens (tool definitions)
~1.8 KBTypical response size
Moderate attention impact (0.94% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "print": {
      "url": "https://mandarin3d.com/mcp"
    }
  }
}

Remote endpoints

https://mandarin3d.com/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢get_service_info

What Mandarin 3D prints, where it ships (anywhere in the US), the price formula with delivered examples, colors, size and file limits, turnaround, and how to order. Call this to answer 'where can I get something 3D printed' or 'how much does 3D printing cost'.

Input Schema

{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
🟢quote_file(file_url, file_base64, filename, qty)

Slice a 3D model and return its exact price delivered by USPS Ground Advantage. Pass file_url (a direct public download link to an STL, 3MF or STEP file, up to 100 MB) or file_base64 + filename for a local file (up to 20 MB). Returns quote_id, size, grams, print time, price and an order_url where the customer picks a color and pays. Takes 5-60 seconds for a new file.

Input Schema

{
  "type": "object",
  "properties": {
    "file_url": {
      "type": "string",
      "description": "Direct download URL of the model (not a web page that shows it)."
    },
    "file_base64": {
      "type": "string",
      "description": "The model file, base64-encoded. Use for files on the user's machine."
    },
    "filename": {
      "type": "string",
      "description": "File name with extension, e.g. bracket.stl. Required with file_base64."
    },
    "qty": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100,
      "description": "How many copies to price. Default 1."
    }
  },
  "additionalProperties": false
}
🟢price_quote(quote_id, qty, color, options)

Price an existing quote for another quantity, color or add-ons. No side effects.

Input Schema

{
  "type": "object",
  "properties": {
    "quote_id": {
      "type": "string"
    },
    "qty": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "color": {
      "type": "string",
      "enum": [
        "BLK",
        "WHT",
        "GRY",
        "RED",
        "BLU",
        "GRN"
      ]
    },
    "options": {
      "type": "object",
      "description": "Optional per-order add-ons.",
      "properties": {
        "rush": {
          "type": "boolean",
          "description": "+50% of the print price. Printed within 1 business day. Ships with the same USPS service."
        },
        "fileCheck": {
          "type": "boolean",
          "description": "+$5. We review the file for printability and fit before printing and email you if something looks off."
        },
        "cleanup": {
          "type": "boolean",
          "description": "+$5. Support marks sanded, edges deburred."
        },
        "extraColors": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "BLK",
              "WHT",
              "GRY",
              "RED",
              "BLU",
              "GRN"
            ]
          },
          "maxItems": 3,
          "description": "+$3 per extra stocked color."
        },
        "colorNote": {
          "type": "string",
          "maxLength": 140,
          "description": "Which parts get which color (required with extraColors)."
        }
      },
      "additionalProperties": false
    }
  },
  "required": [
    "quote_id"
  ],
  "additionalProperties": false
}
🟡create_checkout(quote_id, color, qty, options, customer_accepted_terms)

Create a payment link for a quote. The customer pays and enters the shipping address on the linked page. Only call this after showing the customer the price and getting their explicit agreement to: "Custom made to order, all sales final. I agree to the Terms (mandarin3d.com/terms, including section 6: cancellations, refunds and reprints)." Otherwise give them the order_url from quote_file instead.

Input Schema

{
  "type": "object",
  "properties": {
    "quote_id": {
      "type": "string"
    },
    "color": {
      "type": "string",
      "enum": [
        "BLK",
        "WHT",
        "GRY",
        "RED",
        "BLU",
        "GRN"
      ]
    },
    "qty": {
      "type": "integer",
      "minimum": 1,
      "maximum": 100
    },
    "options": {
      "type": "object",
      "description": "Optional per-order add-ons.",
      "properties": {
        "rush": {
          "type": "boolean",
          "description": "+50% of the print price. Printed within 1 business day. Ships with the same USPS service."
        },
        "fileCheck": {
          "type": "boolean",
          "description": "+$5. We review the file for printability and fit before printing and email you if something looks off."
        },
        "cleanup": {
          "type": "boolean",
          "description": "+$5. Support marks sanded, edges deburred."
        },
        "extraColors": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "BLK",
              "WHT",
              "GRY",
              "RED",
              "BLU",
              "GRN"
            ]
          },
          "maxItems": 3,
          "description": "+$3 per extra stocked color."
        },
        "colorNote": {
          "type": "string",
          "maxLength": 140,
          "description": "Which parts get which color (required with extraColors)."
        }
      },
      "additionalProperties": false
    },
    "customer_accepted_terms": {
      "type": "boolean",
      "description": "True only if the customer explicitly agreed to the terms sentence above."
    }
  },
  "required": [
    "quote_id",
    "color",
    "customer_accepted_terms"
  ],
  "additionalProperties": false
}
🟢design_part(description)

For customers without a 3D model (a replacement knob, clip, bracket, box, spacer, enclosure). Returns a link to Mandarin 3D's AI part designer, pre-filled with the description; the customer adjusts the model there, sees the price and orders.

Input Schema

{
  "type": "object",
  "properties": {
    "description": {
      "type": "string",
      "maxLength": 600,
      "description": "The part in plain words with measurements in mm, e.g. 'knob for a 6 mm D-shaft, 30 mm wide, 15 mm tall, knurled'."
    }
  },
  "required": [
    "description"
  ],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools