Mandarin 3D MCP
An official MCP server provided by Mandarin 3D that allows AI agents to get instant quotes for custom 3D printing services, create checkout links for orders, and design parts from text descriptions. It supports uploading STL, 3MF, or STEP files for pricing and facilitates the ordering process for PLA prints shipped within the US.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://mandarin3d.com/mcpWhat you can do with it
- Quote the price for a 3D printed part based on a file URL or base64 data
- Create a checkout link for a customer to pay for a custom 3D print order
- Design a printable 3D model from a text description and get its price
Source and maintenance
Protocol and capabilities
- Server
- mandarin-3d 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 5 advertised
- Resources
- Not advertised
- Resource templates
- Not advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": false
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
5 advertised
get_service_info — Service facts and prices
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'.
{
"type": "object",
"properties": {},
"additionalProperties": false
}{
"readOnlyHint": true,
"openWorldHint": false
}quote_file — Quote a 3D model
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.
{
"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
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": true
}price_quote — Price a quote
Price an existing quote for another quantity, color or add-ons. No side effects.
{
"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
}{
"readOnlyHint": true,
"openWorldHint": false
}create_checkout — Create a checkout link
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.
{
"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
}{
"readOnlyHint": false,
"openWorldHint": true,
"idempotentHint": false,
"destructiveHint": false
}design_part — Design a part without a file
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.
{
"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
}{
"readOnlyHint": true,
"openWorldHint": false
}Prompts
Not advertised
Resources
Not advertised
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 285 ms
- 95th percentile latency
- 285 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 285 ms · metadata changed · 5 tool(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http mandarin-3d-mcp https://mandarin3d.com/mcpCodex
codex mcp add mandarin-3d-mcp --url https://mandarin3d.com/mcpCursor
{
"mcpServers": {
"mandarin-3d-mcp": {
"url": "https://mandarin3d.com/mcp"
}
}
}Cline
{
"mcpServers": {
"mandarin-3d-mcp": {
"type": "streamableHttp",
"url": "https://mandarin3d.com/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"mandarin-3d-mcp": {
"type": "http",
"url": "https://mandarin3d.com/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http mandarin-3d-mcp https://mandarin3d.com/mcpClaude Desktop
{
"mcpServers": {
"mandarin-3d-mcp": {
"url": "https://mandarin3d.com/mcp"
}
}
}Windsurf
{
"mcpServers": {
"mandarin-3d-mcp": {
"serverUrl": "https://mandarin3d.com/mcp"
}
}
}Let your agent find its tools
Find servers like Mandarin 3D MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.
Other commerce servers
Do you run Mandarin 3D MCP?
Prove ownership with a DNS record, a well-known file, or your Official MCP Registry entry, and your edits publish immediately. Proofs are re-checked weekly; admins can still hide or remove a listing.