print-advisor-mcp
Allows checking whether a part fits the build volume of Bambu Lab printer models (A1, A1 mini, A2L, P1P, P1S, P2S, X1C, H2D).
Allows checking whether a part fits the build volume of Creality printer models (Ender 3, Ender 5, K1).
Allows checking whether a part fits the build volume of Elegoo Neptune 4 printers.
print-advisor-mcp
MCP server that answers the questions people actually ask before 3D printing anything: what will it cost, how long will it take, which material, and does it fit on the bed?
No file upload. No API key. No account. It works from dimensions given in plain text, which means an assistant can answer mid-conversation without the user having to produce an STL first.
Install
Nothing to install up front — uvx fetches and builds it on first run.
Claude Desktop / Claude Code (claude_desktop_config.json):
{
"mcpServers": {
"print-advisor": {
"command": "uvx",
"args": [
"--from",
"git+https://github.com/vandurmedries/print-advisor-mcp",
"print-advisor-mcp"
]
}
}
}Cursor, Windsurf, Zed — same command, in their MCP config.
Try it without configuring anything:
uvx --from git+https://github.com/vandurmedries/print-advisor-mcp print-advisor-mcpRequires uv (brew install uv) and Python 3.10+.
Related MCP server: PrusaMCP
Tools
print_estimate
Material weight, filament length, cost and print time from dimensions or a known volume. Uses a shell-and-core model that accounts for wall thickness and infill, so the numbers are realistic instead of "solid block" estimates.
A 50 × 30 × 20 mm part in PLA at 20% infill → 11.5 cm³ · 14 g · 4.8 m of filament · €0.29 · about 1 h 11 m
Parameters: breedte_mm, diepte_mm, hoogte_mm (or volume_cm3),
materiaal, infill_procent, wanddikte_mm, laaghoogte_mm.
material_guide
Which filament for which job — outdoor, heat resistant, flexible, strong, wear resistant, food contact, cheap, easy. Returns the recommendation with density, price per kilo, nozzle and bed temperatures, and the practical trade-offs.
Covers PLA, PETG, ABS, ASA, TPU, Nylon, PC and PLA-CF.
fits_on_printer
Whether a part fits the build volume, including whether rotating it 90° or placing it diagonally saves it.
Covers Bambu Lab (A1, A1 mini, A2L, P1P, P1S, P2S, X1C, H2D), Prusa (MK4, Mini, XL), Creality (Ender 3, Ender 5, K1), Voron 2.4 and Elegoo Neptune 4.
Accuracy
The arithmetic is exact where it can be:
weight = volume × material density
filament length = volume ÷ cross-section of 1.75 mm filament (2.405 mm²)
cost = weight × price per kilo
Only print time is a heuristic (roughly 11 cm³/hour at 0.2 mm layer height, scaled by layer height). Supports, brims and complex geometry typically add 10–30%. Filament prices are 2026 European retail indications — override them for your own supplier if you care about precision.
This is an estimator, not a slicer. For a committed quote, slice the actual file.
Why no file upload
Every other 3D tool wants an STL first. That is a wall in a conversation: the user has a question, not a file. This one answers from the numbers already in the question, which is what makes it usable by an assistant that is helping with something else.
Licence
MIT
Available Tools
3 toolsfits_on_printerA
Controleer of een onderdeel op het bouwbed van een printer past.
Houdt rekening met draaien over 45° in het vlak, wat vaak net het verschil maakt.
Args: breedte_mm: breedte in mm diepte_mm: diepte in mm hoogte_mm: hoogte in mm printer: printernaam, bijvoorbeeld "bambu p2s" of "prusa mk4". Leeg laten controleert alle bekende printers.
| Name | Required | Description | Default |
|---|---|---|---|
| printer | No | ||
| diepte_mm | Yes | ||
| hoogte_mm | Yes | ||
| breedte_mm | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It meaningfully discloses that 45° rotation is considered and that an empty printer value scans all known printers. It does not go into edge cases like invalid printer names, but the output schema likely covers return expectations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: purpose first, then a valuable behavioral note, then a terse parameter list. Every sentence earns its place without unnecessary filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a fit-check tool with an output schema, the description covers the essential inputs, units, rotation behavior, and printer selection behavior. It could be slightly stronger with explicit guidance on choosing between this tool and its siblings, but nothing an agent needs to invoke it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description documents all four parameters with units, examples, and default behavior. Each dimension is explained as 'in mm', and printer is illustrated with concrete names plus the all-printers default.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: checking whether a part fits on a printer build plate. It also adds a distinctive detail (45° in-plane rotation), which clearly separates it from the sibling tools material_guide and print_estimate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The intended use is implied through the description and parameter documentation, especially the note that leaving printer empty checks all known printers. However, it does not explicitly contrast this tool with material_guide or print_estimate, nor does it state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
material_guideA
Kies het juiste 3D-printmateriaal voor een toepassing.
Args: toepassing: waar het onderdeel voor dient, bijvoorbeeld "buiten", "hittebestendig", "flexibel", "sterk", "goedkoop", "voedsel". Leeg laten geeft de volledige tabel.
| Name | Required | Description | Default |
|---|---|---|---|
| toepassing | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full disclosure burden. It discloses the main lookup behavior and adds a specific behavioral detail (empty input returns the full table), but it does not say how unknown or invalid toepassing values are handled or whether the result is filtered versus scored.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one clear purpose line followed by a compact Args block. It has no filler and front-loads the main purpose before parameter details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-optional-parameter material guide with an output schema, the description covers the core behavior and parameter semantics. It does not mention the sibling tools, but the tool is simple enough that the selection context is clear from the purpose and examples.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides only a name and default with no description, so the description must compensate. It defines toepassing as the part's purpose, lists six concrete example values, and explains that leaving it blank returns the full table, which is sufficient semantic guidance for a single optional parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a concrete imperative ('Kies') naming the resource ('het juiste 3D-printmateriaal') and the selection criterion ('voor een toepassing'). Examples of application types make the tool's purpose unambiguous and clearly distinguish it from sibling tools focused on printer fit and print estimation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete example applications and explicitly states the empty-input behavior, so an agent can infer when to use it. However, it does not explicitly contrast this tool with fits_on_printer or print_estimate, nor state when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
print_estimateA
Schat materiaalgebruik, gewicht, kosten en printtijd voor een 3D-print.
Werkt op afmetingen óf op een bekend volume — je hebt geen bestand nodig. Geef ofwel breedte/diepte/hoogte, ofwel volume_cm3 als je dat al weet.
Args: breedte_mm: breedte van het onderdeel in mm diepte_mm: diepte in mm hoogte_mm: hoogte in mm volume_cm3: massief volume in cm³, als je dat al kent (gaat vóór op afmetingen) materiaal: pla, petg, abs, asa, tpu, nylon, pc of pla-cf infill_procent: vulpercentage van het inwendige (0-100) wanddikte_mm: dikte van de buitenwand in mm laaghoogte_mm: laaghoogte in mm (0.1 fijn, 0.2 standaard, 0.3 grof)
| Name | Required | Description | Default |
|---|---|---|---|
| diepte_mm | No | ||
| hoogte_mm | No | ||
| materiaal | No | pla | |
| breedte_mm | No | ||
| volume_cm3 | No | ||
| wanddikte_mm | No | ||
| laaghoogte_mm | No | ||
| infill_procent | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden, and it does so well. It discloses key behavior: volume_cm3 takes precedence over dimensions, no file is needed, and the tool estimates material, weight, cost, and print time. It does not describe side effects, but an estimation tool is inherently non-destructive and the output schema is provided separately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured: a one-sentence summary, a short usage note, input-mode guidance, and a clean Args block. Every sentence provides actionable information and there is no fluff or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 8 parameters, no required fields, no annotations, and no schema descriptions, the tool is fully specified for correct invocation. The description covers all parameters, explains the precedence rule, lists material choices, and notes that no file is needed. An output schema exists, so the description does not need to explain return values.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate, and it does thoroughly. It documents all 8 parameters with units, allowed material values, infill range, and layer height guidance. This adds substantial meaning beyond the bare schema property titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: 'Schat materiaalgebruik, gewicht, kosten en printtijd voor een 3D-print.' This clearly names the tool's function and output domains. The scope (estimating print metrics) is distinct from the sibling tools material_guide and fits_on_printer, even without naming them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states when to use the tool: it works on dimensions or a known volume and requires no file. It also gives input strategy: provide dimensions OR volume_cm3. However, it does not explicitly mention alternatives or exclusions relative to the sibling tools, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
3 tool updates
v0.1.0- First observed
fits_on_printer - First observed
material_guide - First observed
print_estimate
TDQS
Each tool targets a different advisory question: material selection, print-bed compatibility, and cost/time estimation. Although fits_on_printer and print_estimate both take dimensions, their purposes are clearly separated and unlikely to be confused.
All tool names use lowercase snake_case and are short, recognizable domain terms, so the set feels consistent. The forms are slightly mixed (two noun phrases and one verb phrase), but there is no camelCase or arbitrary naming to cause real friction.
Three tools is a well-scoped size for a 3D-printing advisor; each tool covers a distinct decision and earns its place. The server avoids bloat while still providing useful breadth across materials, fit, and print estimates.
The set covers the main advisory workflow: choose material, check bed fit, and estimate cost/time. It might lack more specialized advice such as printability or orientation guidance, but those gaps are workaroundable and outside the apparent scope.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Real 3D-print slicing, quoting, DFM, orientation & material/settings advisors. Free personal tier.
Instant parametric cost estimates for custom manufacturing: CNC, molding, sheet metal, 3DP, PCB.
3D print farm management for AI. Monitor, queue, and control prints on your SimplyPrint account.
Compare up-to-date pricing for 40+ LLMs (incl. Chinese) & estimate cost from tokens. EN/zh.
Related MCP Servers
- AlicenseNot gradedqualityNot gradedmaintenanceProvides end-to-end 3D printing automation for Bambu Lab printers, allowing users to generate, slice, and monitor prints using natural language. It features model generation from text or images, real-time camera monitoring, and automated print quality improvement.-
- FlicenseAqualityDmaintenanceAn intelligent 3D printing assistant that enables users to analyze meshes, generate optimal print profiles, and automate PrusaSlicer operations through an MCP client. It provides a comprehensive suite of tools for geometric analysis, printability checks, filament recommendations, and post-print diagnostics.178-
- AlicenseNot gradedqualityDmaintenanceEnables Claude to create 3D-printable CAD models using build123d, with tools for modeling, modification, analysis, and publishing to platforms like Thingiverse and GitHub.11Creative Commons Attribution Non Commercial No Derivatives 4.0 International
- FlicenseNot gradedqualityBmaintenanceTurns natural-language requests into printable Gridfinity STL/STEP files for bins, baseplates, and drawer spacers using CadQuery.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/vandurmedries/print-advisor-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server