MCP Server · Open source · v0.1.0

From idea to finished print,
driven by your AI agent.

PrintMCP is an MCP server that automates the entire 3D-printing pipeline. Find a model on Thingiverse, slice it with Cura, and print it with OctoPrint — all through tools your AI assistant can call.

Apache 2.0 · Python 3.10+ · Claude · Cursor · Windsurf & more
scroll
Features

Built for the whole pipeline,
not just one step.

Search → download → slice → print, without ever leaving your AI assistant.

One server, the whole pipeline

Search → download → slice → print, without leaving your assistant. PrintMCP covers all three stages in a single MCP server — your agent never needs to switch tools.

License-aware

Every model's license is surfaced before you download, so you never misuse a file.

Real slicing

Drives the same CuraEngine Ultimaker Cura ships — true print time and filament usage.

Safe by default

Physical tools require confirm=true — dry runs until you say go.

Structured or human

Every tool accepts response_format — markdown or json. Your agent picks.

Independent levels

Start with just a Thingiverse token. Add Cura and OctoPrint whenever you're ready.

The Pipeline

Three levels.
One continuous workflow.

From a vague idea to plastic on the bed — each level is a group of MCP tools your AI agent can call.

1
Thingiverse

Source

Search for and download 3D model files from the world's largest printing community.

thingiverse_search_modelsthingiverse_get_modelthingiverse_download_model
✓ Implemented
2
CuraEngine

Slice

Slice models into printer-ready G-code with the same engine Ultimaker Cura ships.

cura_slice_model
✓ Implemented
3
OctoPrint

Print

Upload, start, monitor, and control prints on any OctoPrint-connected printer.

octoprint_upload_fileoctoprint_start_printoctoprint_get_job+ 7 more
✓ Implemented
Safety Model

Your printer is safe
until you say go.

Level 3 drives a real machine. A bad call could heat a nozzle or move an axis — so PrintMCP defaults to dry runs.

  • Dry runs by defaultEvery actuation tool returns a harmless preview — and sends nothing to the printer — unless you pass confirm=true.
  • Temperature sanity checksThe bed is capped at ~140°C and other targets are range-checked, so a typo can't command a wild value.
  • Read-only tools never need confirmationChecking status, listing files, and monitoring progress are always safe — no confirm required.
  • Credentials stay in .envTokens and API keys live locally and are sent only to the services they belong to — never in tool output.
Tool Reference

13 tools across 3 levels.

Every tool accepts response_format. 🔒 requires confirm=true.

thingiverse_search_modelsKeyword search for printable "things"; returns candidates with IDs.safe
thingiverse_get_modelDetails for one thing: license, description, and downloadable files.safe
thingiverse_download_modelDownload a thing's printable files to local disk.safe
cura_slice_modelSlice .stl/.obj/.3mf/.amf/.ply into G-code. Choose printer, layer height, infill, supports, temperatures; returns G-code path plus estimated print time and filament.safe
octoprint_get_statusConnection state, printer state, and live tool/bed temperatures.👁️
octoprint_list_filesList G-code files on the server, with their server-side paths.👁️
octoprint_get_jobActive job: file, % complete, elapsed, and estimated time remaining.👁️
octoprint_connectOpen or close the printer's serial connection.🔒
octoprint_upload_fileUpload a local .gcode to the server (optionally select/print).🔒
octoprint_start_printSelect a server-side file and begin printing.🔒
octoprint_control_jobPause, resume, or cancel the running job.🔒
octoprint_set_temperatureSet a tool (nozzle) or bed target temperature.🔒
octoprint_homeHome one or more axes.🔒
Get PrintMCP

Install. Configure. Print.

Free and open source. Install from PyPI, configure your credentials, and register with your MCP client.

bash

Requires Python 3.10+ and uv. A free Thingiverse token for Level 1, Cura for Level 2, OctoPrint for Level 3.

FAQ

Questions people ask.

The Model Context Protocol is an open standard that lets AI assistants call external tools. PrintMCP is an MCP server — it exposes 3D-printing tools that an AI agent like Claude can call. You just chat; the agent does the work.
No. The levels are independent. Use Level 1 with just a free Thingiverse token to search and download models, and add Cura for slicing later. Wire up OctoPrint whenever your printer is ready.
Any MCP-compatible client: Claude Desktop, Claude Code, Cursor, Windsurf, opencode, and others. The included setup script (scripts/setup-mcp.sh or setup-mcp.ps1) auto-detects your installed clients and configures them.
Every tool that physically actuates the printer — heating, moving, starting a print — defaults to a dry run. Without confirm=true it describes what would happen and sends nothing. Read-only tools never need confirmation. Temperatures are also sanity-checked.
Yes — free and open source under the Apache License 2.0. No paid tiers. The code is on GitHub.
Models on Thingiverse carry their own licenses (often Creative Commons). PrintMCP surfaces each model's license before you download via thingiverse_get_model — so you can respect it before reusing, remixing, or selling a print.
More print backends (Moonraker/Klipper), more slicing depth (printer profiles, quality presets, CuraEngine warnings), and more model sources (Printables, MyMiniFactory) behind a shared search interface. See the roadmap.

Stop clicking through five tools.
Start printing with one sentence.

Free, open source, and safe by default.