The full upstream README, mirrored here for reference. Install config, tool schemas, adoption signals, and an original overview live on the Kiln listing page.
The open-source MCP server for 3D printing.
Kiln lets AI agents (Claude Desktop, Claude Code, Codex, or any custom MCP client) drive real 3D printers end to end — Bambu Lab, Creality, Prusa, Elegoo, Voron, Sovol, AnkerMake, Artillery, FlashForge, QIDI, RatRig, and SparkX, over OctoPrint, Moonraker/Klipper, PrusaLink, and Direct USB.
In a single conversation, an agent can design a part, slice it, queue it on the right printer, monitor the camera, recover from failures, and ship the result. No human in the middle.
Reading this as an AI agent? kiln3d.com/agents is written for you rather than for the person running you: install, MCP config, the design-to-print loop, and exactly what Kiln will refuse to do and why.
"a coaster with a photo of my dog Ash" — start to finish, from one sentence.
Watch the demo →
Kiln's built in the open. If it made your printing more fun, or just saved you a headache, a ⭐ on the repo helps the next maker find it.
Using Claude Desktop? Install Kiln in one click. Download kiln.mcpb and double-click it — Claude Desktop installs Kiln and wires it in (just Claude Desktop: steps 1 and 2 below are how Codex and every other AI app connect), so those steps aren't yours. Two things still are: OpenSCAD, and Kiln's terms — the command shows them and asks you to type your acceptance, which is why it's yours and not your AI's: uvx --from kiln3d kiln accept-terms. The bundle and that command both run on uv — free, with a one-line install for each platform at that link. If Claude Desktop says the server failed to start, that's uv missing: install it and restart. Updates arrive with the extension, not via kiln self-update.
Everyone else — three steps. Then ask your AI to make something.
1. Install
2. Connect your AI — Kiln sets itself up inside Claude Desktop, Claude Code, and Codex:
Restart your AI app and it can run your printer. (Claude Code and Codex can even run this whole setup for you — the one-prompt version lives at kiln3d.com/install.) Using a different MCP client? kiln install-mcp --print prints the config — or paste it yourself:
No install needed? Swap the command for a zero-install runner — "command": "uvx", "args": ["kiln3d", "serve"] (Python), or "command": "npx", "args": ["kiln3d"] (Node). Same server, nothing to pip install.
Drop this into Claude Desktop, Claude Code, Codex, Cursor, or any MCP-capable agent. Runs on the free tier until you sign in.
3. Ask — paste a sentence like this into your agent. Kiln does the rest:
Make me a coaster with my dog's photo on it
That's the whole happy path. Your AI does the designing, slicing, and printing — you never touch a CLI. OS-specific walkthrough (Windows, WSL 2, Linux) at kiln3d.com/install.
[!TIP]
kiln doctorchecks your whole setup and tells you exactly what to fix.kiln self-updateupgrades in place when a new release lands.
Global option: --printer <name> targets a specific printer per command. The full command reference is in Project Docs.
Claude Code — install the plugin (one-time: install uv first if you don't have it — it's free and takes one line):
Or wire it by hand — add to .claude/settings.json (project) or ~/.claude/settings.json (global):
Claude Code uses your ~/.kiln/config.yaml for printer credentials (set via kiln setup or kiln auth). No env vars needed if a printer is already configured.
Claude Desktop — add to ~/.config/Claude/claude_desktop_config.json:
Set KILN_PRINTER_TYPE to your backend: octoprint, moonraker, bambu, prusalink, elegoo, duet, or usb — or skip env vars entirely if you've run kiln setup.
Any other LLM (OpenRouter) — Kiln works with any model that supports OpenAI-compatible function calling, not just Claude:
Tool tiers auto-match model capability: essential (15 tools) for smaller models, standard (60 tools) for mid-range, full (135 tools) for stronger models. All 908 tools are available over MCP via kiln serve.
| Printer | --type | What you need |
|---|---|---|
| Prusa MK4/XL/Mini+ | prusalink | IP + API key (Settings › Network › PrusaLink on the LCD) |
| OctoPrint (any printer) | octoprint | OctoPrint URL + API key (Settings › API) |
| Klipper/Moonraker | moonraker | Moonraker URL (usually http://<ip>:7125) |
| Creality K1/K2/Hi/Ender V4/V3 KE | creality | IP + printer_model (e.g. creality_k1_max); probes local Moonraker ports |
| Bambu Lab | bambu | IP + LAN access code + serial number (all on the LCD) |
| Elegoo (SDCP) | elegoo | IP only — no auth. Neptune 4 / OrangeStorm Giga use moonraker. |
| Duet / RepRapFirmware | duet | IP only, plus the machine password if one is set (M551 in config.g). |
| Direct USB (Marlin) | serial | USB cable only — no network. Ender 3, Prusa MK3, CR-10, any Marlin/RepRap printer. |
Kiln only needs IP reachability on your LAN. Ethernet-only printers are fully supported.
Optional tools: PrusaSlicer OrcaSlicer, or BambuStudio for slicing STL → G-code (brew install --cask prusaslicer); OpenSCAD for local text-to-3D generation — install the current build (brew install --cask openscad@snapshot); set KILN_GEMINI_API_KEY to enable Gemini-generated geometry.
pipx installs Kiln into its own isolated environment and puts kiln on your PATH. (The pip package is kiln3d; the CLI command is kiln.)
WSL 2 networking: WSL 2 uses NAT, so mDNS discovery (kiln discover) won't see printers on your home network. Connect directly by IP instead (same as Ethernet-only setups).
Kiln works the same over Ethernet and Wi-Fi — it talks to printer APIs over LAN IP. Verify the printer endpoint responds, then register by IP:
If PrusaSlicer isn't on your PATH: export KILN_SLICER_PATH=/path/to/prusa-slicer.
Kiln pins the printer certificate (TOFU) on first connection in ~/.kiln/bambu_tls_pins.json. Overrides:
Webcam capture is model-dependent: A1, A1 Mini, P1P, P1S serve frames over TLS+JPEG (no extra software). The X1 series (X1C, X1E) serves RTSPS, which Kiln relays via ffmpeg — so on an X1, both snapshots and the live stream need ffmpeg (brew install ffmpeg / sudo apt install ffmpeg). can_snapshot is reported True for every Bambu model; on an X1 without ffmpeg, the attempt surfaces a clear model-specific error rather than failing silently.
Paid tiers (kiln3d.com/pricing) add Git-for-3D versioning, product templates, assembly manuals, fleet workflows, SSO + SCIM, ERP webhooks, and long-term audit logs.
| Backend | Status | Printers |
|---|---|---|
| OctoPrint | Stable | Any OctoPrint-connected printer (Prusa, Ender, custom) |
| Moonraker | Stable | Klipper-based printers (Voron, Ratrig, etc.) |
| Creality | Stable when Moonraker is reachable | SPARKX i7, K1/K1 Max/K1C/K1 SE, K2/K2 Pro/K2 Plus/K2 SE, Creality Hi, Ender-3 V4/V3 KE, Ender-5 Max, CR-10 SE via local Moonraker. Older Marlin Creality printers use serial or octoprint. |
| Bambu | Stable | Bambu Lab X1C, X1E, P1S, P1P, P2S, A1, A1 Mini, A2L, H2S, H2D, H2D Pro, H2C, X2D (via LAN MQTT) |
| Prusa Link | Stable | Prusa MK4, XL, Mini+ (local REST API — type: prusalink) |
| Elegoo | Stable | Centauri Carbon, Saturn, Mars series (via LAN WebSocket/SDCP). Neptune 4 / OrangeStorm Giga use Moonraker. |
| Duet / RepRapFirmware | Beta — not yet verified against physical hardware | Duet 2 and Duet 3 controller boards, over the same HTTP interface Duet Web Control uses. Both RepRapFirmware 2 and 3 are supported. Vision Miner 22 IDEX v4 is the first catalogued machine. Type: duet. |
| Direct USB | Stable | Any Marlin-based printer over USB (Ender 3, Prusa MK3, CR-10, etc.). No OctoPrint or Klipper needed — just a USB cable. Type: serial. |
Kiln ships tuned profiles for 68 models across 15 brands — Creality, Bambu Lab, QIDI, Elegoo, Prusa Research, Sovol, AON3D, Artillery, Voron, AnkerMake, FlashForge, INTAMSYS, RatRig, SparkX, Vision Miner. See the full searchable list →
Agents can also outsource jobs through Craftcloud fulfillment and search models on MyMiniFactory and Cults3D (search only). On Pro and up, the design store itself is versioned — branches, signed releases, and cross-machine cloud sync are first-class outputs of the system, not a side database.
Designs aren't text, but they need version control. Kiln treats meshes, decorations, and mechanical features as first-class versioned artifacts: branch a design, print variants, merge what works, sign releases with cryptographic proof the mesh hasn't changed.
Three things make this different from git:
Here's what visualize_branch_tree("my-coaster") actually emits — the same renderer the workshop, CLI, and your agent see (yellow = signed release, light blue = experiment, light red = branch with failed outcomes):
| Tier | What you get |
|---|---|
| Free | Linear local design history (save / diff / rollback) |
| Pro | Branch · merge · cherry-pick · Ed25519 signed releases · solo cloud sync |
| Business | Team pull requests · approval gates · orgs / teams / scopes |
| Enterprise | Audit log export · SSO · step-up authentication on releases · access review |
Patent pending across semantic mesh merge, outcome-correlated branching, and signed-release-with-physical-provenance.
The Kiln MCP server (kiln serve) exposes 908 tools to agents, plus prompts and resources for 915 total MCP capabilities. Rather than list them all here, agents browse the live catalog with get_skill_manifest and ToolSearch-style discovery. A representative slice, in the order a print actually happens:
load_filament and unload_filament beside it for a spool changeBeyond this slice, the catalog covers fleet orchestration, print-failure prediction, design version control, assembly manuals, and per-machine calibration; the deeper tiers are described at kiln3d.com/pricing. The complete tool catalog, grouped by subsystem, lives in Project Docs. If you are the agent, kiln3d.com/agents covers the same ground written in the second person, including the refusals worth knowing before you hit them.
| Resource URI | Description |
|---|---|
kiln://status | System-wide snapshot (printers, queue, events) |
kiln://printers | Fleet listing with idle printers |
kiln://printers/{name} | Detailed status for a specific printer |
kiln://queue | Job queue summary and recent jobs |
kiln://queue/{job_id} | Detail for a specific job |
kiln://events | Recent events (last 50) |
Search → download → print. Kiln searches MyMiniFactory and Cults3D (search only) in one call via search_all_models, downloads where supported, and uploads straight to a printer — a full design-to-print loop with no human in the middle. (Thingiverse is supported but deprecated since its Feb 2026 acquisition by MyMiniFactory; prefer MMF.) Marketplace access uses free API keys (KILN_MMF_API_KEY, KILN_CULTS3D_USERNAME + KILN_CULTS3D_API_KEY).
AI model generation. Set any provider key and it's available instantly — KILN_MESHY_API_KEY, KILN_TRIPO3D_API_KEY, KILN_STABILITY_API_KEY, KILN_GEMINI_API_KEY — or use local OpenSCAD with no key. Generated meshes are auto-validated for printability (manifold, triangle count, bounding box) before printing. kiln generate renders a 3-view preview by default.
Slicing. Wraps PrusaSlicer, OrcaSlicer, and BambuStudio for headless slicing; auto-detects installed slicers on PATH, macOS app bundles, or via KILN_SLICER_PATH. Supports STL, 3MF, STEP, OBJ, AMF with material-aware temps and smart supports.
Fulfillment (no printer required). Print through Craftcloud's network — quote, validate address, confirm, order, track — or run alongside your own printers for overflow and specialty materials. Normal users go through the hosted proxy (credentials stay server-side, spend limits enforced); operators can use direct mode with KILN_FULFILLMENT_PROVIDER=craftcloud + KILN_CRAFTCLOUD_API_KEY.
Decoration & textures. Emboss or deboss QR codes, photos, logos, text, and SVGs onto any model face, or apply procedural textures (tiger stripe, marble, camo, wood grain, honeycomb) with a single tool call.
All local printing is free forever — status, file management, slicing, fleet control, and printing to your own printers cost nothing. Kiln charges a 5% orchestration fee on orders placed through external manufacturing services (first 3 orders each calendar month free, on every tier; $0.25 min / $200 max per order), shown transparently in every quote. Outsourced order volume is not capped on any tier.
| Tier | Price | Headline |
|---|---|---|
| Free | $0 | Unlimited local printing, slicing, marketplace search, safety profiles, one printer, design intelligence, linear design history. |
| Pro | $49/mo | Git-for-3D branching/signed releases, product templates, procedural textures, mid-print modification, print resume, failure recovery, nozzle-wear tracking, solo cloud sync. |
| Business | $199/mo | Commercial use, 3 printers + 3 seats, fleet management, cross-printer learning, QR generation, assembly manuals, team pull requests, approval gates, webhooks. |
| Enterprise | Contact us | Large fleets, SSO/SCIM, RBAC, audit trail, encrypted G-code at rest, white-label manuals, 99.9% SLA, on-prem/VPC. |
Full comparison at kiln3d.com/pricing. Run kiln upgrade to activate a license key. For provider-routed orders, the provider remains merchant of record; Kiln acts as orchestration infrastructure.
Kiln is safety-first infrastructure for controlling physical machines:
This monorepo contains two packages:
| Package | Description | Entry point |
|---|---|---|
| kiln | CLI + MCP server for multi-printer control (OctoPrint, Moonraker, Creality, Bambu, Prusa Link, Elegoo, Direct USB) | kiln or python -m kiln |
| octoprint-cli | Lightweight standalone CLI for OctoPrint-only setups | octoprint-cli |
docker compose up self-hosts the Kiln MCP server against your own printer — set KILN_PRINTER_TYPE/KILN_PRINTER_HOST/KILN_PRINTER_API_KEY first. This is a personal self-host quickstart, unrelated to the infrastructure behind the hosted api.kiln3d.com service. Prefer zero setup? kiln3d.com runs the hosted version for you.
Optional API-key auth for MCP tools, disabled by default. Scopes: read, write, admin. Read-only tools never require auth.
Register HTTP endpoints for real-time event notifications:
Payloads are signed with HMAC-SHA256 when a secret is provided. Redirects are blocked by default (KILN_WEBHOOK_ALLOW_REDIRECTS=0); when enabled, each hop is SSRF-validated and HTTPS→HTTP downgrade is blocked.
Finds OctoPrint, Moonraker/Creality, Bambu, Elegoo, and Prusa Link printers. If discovery returns nothing, register directly by IP with kiln auth.
Entry-point plugins are default-deny in production (KILN_PLUGIN_POLICY=strict). Allow specific plugins with KILN_ALLOWED_PLUGINS=my_plugin,other_plugin, or set KILN_PLUGIN_POLICY=permissive for temporary migration compatibility.
| Module | Description |
|---|---|
server.py | MCP server with tools, resources, and subsystem wiring |
printers/ | Printer adapter abstraction (OctoPrint, Moonraker, Creality, Bambu, Prusa Link, Elegoo) |
marketplaces/ | Model marketplace adapters (MyMiniFactory, Cults3D, Thingiverse, metadata-only sources) |
slicer.py | Slicer integration (PrusaSlicer, OrcaSlicer, BambuStudio) with auto-detection |
registry.py | Fleet registry for multi-printer management |
queue.py | Priority job queue with status tracking |
scheduler.py | Background job dispatcher with history-based smart routing |
events.py | Pub/sub event bus with history |
persistence.py | SQLite storage for jobs, events, and settings |
webhooks.py | Event-driven webhook delivery with HMAC signing |
auth.py | Optional API key authentication with scope-based access |
discovery.py | Network printer discovery (mDNS + HTTP probe) |
generation/ | Text-to-model generation providers (Meshy, Tripo3D, Stability AI, Gemini Deep Think, OpenSCAD) with auto-discovery, mesh validation, and printability analysis |
consumer.py | Consumer workflow for non-printer users (address validation, material recommendations, timeline/price estimation, onboarding) |
cost_estimator.py | Print cost estimation from G-code analysis |
materials.py | Multi-material and spool tracking |
material_catalog.py | Material brand catalog, properties, and purchase-link metadata |
material_inventory.py | Fleet material inventory and assignment tracking |
bed_leveling.py | Automated bed leveling trigger system |
streaming.py | MJPEG webcam streaming proxy |
cloud_sync.py | Cloud sync for printer configs and job history |
plugin_loader.py | Internal tool-plugin discovery and registration |
plugins/ | Focused MCP tool modules loaded by the plugin loader |
gcode.py | G-code safety validator with per-printer limits |
gcode_interceptor.py | Rule-based G-code interception and safety rewriting |
safety_profiles.py | Bundled safety database (51 named printer models, temps/feedrates/flow) |
slicer_profiles.py | Bundled slicer profiles (auto-generates .ini files per printer) |
printer_intelligence.py | Printer knowledge base (firmware quirks, materials, failure modes) |
pipelines.py | Pre-validated print pipelines (quick_print, calibrate, benchmark) |
assembly.py | Multi-part assembly validation and manual planning support |
design_versions.py | Local design history, version records, diffs, and rollback primitives |
mesh_validation_pipeline.py | Multi-gate printability validation pipeline |
model_visualizer.py | Local model preview rendering |
tool_schema.py | OpenAI function-calling schema converter (MCP → OpenAI format) |
tool_tiers.py | Tool tier definitions (essential/standard/full) for model capability matching |
agent_loop.py | Generic agent loop for any OpenAI-compatible API (OpenRouter, direct, etc.) |
openrouter.py | OpenRouter integration with model catalog and auto-tier detection |
data/ | Bundled JSON databases (safety profiles, slicer profiles, printer intelligence) |
gateway/ | External-provider integration gateway (as integrations launch) |
heater_watchdog.py | Auto-cooldown watchdog for idle heaters |
wallets.py | Crypto wallet configuration (Solana/Ethereum for donations and fees) |
pro_tool_manifest.json | Public manifest for kiln-pro tool discovery and REST proxy stubs |
decoration_quota.py | Free-tier decoration quota tracking and tier resolution hooks |
cli/ | Click CLI with 242 commands and JSON output |
kiln-pro (kiln3d.com) extends public Kiln with paid-tier REST serving, billing, licensing, SSO, RBAC, G-code encryption, uptime reporting, team administration, and project-cost workflows. Public Kiln exposes only the interface/proxy surface for those capabilities; the private implementation stays in kiln-pro.
| Document | Description |
|---|---|
| Project Docs | Complete reference (CLI, MCP tools, adapters, config) |
Logo files live in docs/assets/ — all vector SVG, scale to any size.
| File | Use |
|---|---|
kiln-banner-1280x640.svg / kiln-banner-1280x640-light.svg | GitHub / social media banner (dark / light scheme) |
kiln-logo-dark.svg / kiln-logo-light.svg | Primary mark + wordmark (dark / light bg) |
kiln-horizontal-dark.svg / kiln-horizontal-light.svg | Horizontal lockup (dark / light bg) |
kiln-logo-dark-notext.svg | Mark only (dark bg) |
kiln-favicon-256.svg | Favicon / app icon |
kiln-logo-transparent.svg / kiln-logo-transparent-dark.svg | Transparent bg (for dark / light UIs) |
kiln-mark-1024.svg | Square mark tile — profile picture, app tile (1024×1024) |
kiln-x-header-1500x500.svg | Social header (1500×500) |
wallpapers/kiln-wallpaper-iphone-*.svg | iPhone wallpapers |
wallpapers/kiln-wallpaper-macbook-*.svg | MacBook wallpapers |
Every file above is generated from one geometry, so the mark is identical across all of them. Please don't redraw it — scale the vector instead.
Kiln is free, open-source software. If you find it useful, consider sending a tip:
kiln3d.solkiln3d.ethMessaging clarification (February 24, 2026): We clarified wording to remove ambiguity and align with existing intent; no strategy change. Kiln is orchestration and agent infrastructure for fabrication workflows. Kiln does not operate a first-party decentralized manufacturing marketplace/network. Kiln integrates with third-party providers and external provider/network adapters as integrations are available.
Non-goals: operating a first-party decentralized manufacturing marketplace/network; replacing partner supply-side networks; owning provider marketplaces instead of integrating with them; acting as merchant of record for provider-routed manufacturing orders.
Kiln is a project of Hadron Labs Inc.
AGPL-3.0 License — open source with copyleft. Commercial licensing available for companies that need proprietary use.
By contributing, you agree to the Contributor License Agreement.
Also listed on Smithery.