Quote, price and order custom 3D prints (PLA) shipped anywhere in the US.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
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.
True only if the customer explicitly agreed to the terms sentence above.
Optional per-order add-ons.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http print https://mandarin3d.com/mcp
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.
| Argument | Type | Description |
|---|---|---|
| qty | integer | |
| color* | string | |
| options | object | Optional per-order add-ons. |
| quote_id* | string | |
| customer_accepted_terms* | boolean | True only if the customer explicitly agreed to the terms sentence above. |
{
"type": "object",
"required": [
"quote_id",
"color",
"customer_accepted_terms"
],
"properties": {
"qty": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"color": {
"enum": [
"BLK",
"WHT",
"GRY",
"RED",
"BLU",
"GRN"
],
"type": "string"
},
"options": {
"type": "object",
"properties": {
"rush": {
"type": "boolean",
"description": "+50% of the print price. Printed within 1 business day. Ships with the same USPS service."
},
"cleanup": {
"type": "boolean",
"description": "+$5. Support marks sanded, edges deburred."
},
"colorNote": {
"type": "string",
"maxLength": 140,
"description": "Which parts get which color (required with extraColors)."
},
"fileCheck": {
"type": "boolean",
"description": "+$5. We review the file for printability and fit before printing and email you if something looks off."
},
"extraColors": {
"type": "array",
"items": {
"enum": [
"BLK",
"WHT",
"GRY",
"RED",
"BLU",
"GRN"
],
"type": "string"
},
"maxItems": 3,
"description": "+$3 per extra stocked color."
}
},
"description": "Optional per-order add-ons.",
"additionalProperties": false
},
"quote_id": {
"type": "string"
},
"customer_accepted_terms": {
"type": "boolean",
"description": "True only if the customer explicitly agreed to the terms sentence above."
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| description* | string | 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'. |
{
"type": "object",
"required": [
"description"
],
"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'."
}
},
"additionalProperties": false
}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'.
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Price an existing quote for another quantity, color or add-ons. No side effects.
| Argument | Type | Description |
|---|---|---|
| qty | integer | |
| color | string | |
| options | object | Optional per-order add-ons. |
| quote_id* | string |
{
"type": "object",
"required": [
"quote_id"
],
"properties": {
"qty": {
"type": "integer",
"maximum": 100,
"minimum": 1
},
"color": {
"enum": [
"BLK",
"WHT",
"GRY",
"RED",
"BLU",
"GRN"
],
"type": "string"
},
"options": {
"type": "object",
"properties": {
"rush": {
"type": "boolean",
"description": "+50% of the print price. Printed within 1 business day. Ships with the same USPS service."
},
"cleanup": {
"type": "boolean",
"description": "+$5. Support marks sanded, edges deburred."
},
"colorNote": {
"type": "string",
"maxLength": 140,
"description": "Which parts get which color (required with extraColors)."
},
"fileCheck": {
"type": "boolean",
"description": "+$5. We review the file for printability and fit before printing and email you if something looks off."
},
"extraColors": {
"type": "array",
"items": {
"enum": [
"BLK",
"WHT",
"GRY",
"RED",
"BLU",
"GRN"
],
"type": "string"
},
"maxItems": 3,
"description": "+$3 per extra stocked color."
}
},
"description": "Optional per-order add-ons.",
"additionalProperties": false
},
"quote_id": {
"type": "string"
}
},
"additionalProperties": false
}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.
| Argument | Type | Description |
|---|---|---|
| qty | integer | How many copies to price. Default 1. |
| file_url | string | Direct download URL of the model (not a web page that shows it). |
| filename | string | File name with extension, e.g. bracket.stl. Required with file_base64. |
| file_base64 | string | The model file, base64-encoded. Use for files on the user's machine. |
{
"type": "object",
"properties": {
"qty": {
"type": "integer",
"maximum": 100,
"minimum": 1,
"description": "How many copies to price. Default 1."
},
"file_url": {
"type": "string",
"description": "Direct download URL of the model (not a web page that shows it)."
},
"filename": {
"type": "string",
"description": "File name with extension, e.g. bracket.stl. Required with file_base64."
},
"file_base64": {
"type": "string",
"description": "The model file, base64-encoded. Use for files on the user's machine."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Oct 30, 2026.