print-advisor-mcp
# 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`):
```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:
```bash
uvx --from git+https://github.com/vandurmedries/print-advisor-mcp print-advisor-mcp
```
Requires [uv](https://docs.astral.sh/uv/) (`brew install uv`) and Python 3.10+.
## 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
TDQS
Scored across 3 tools
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.