Featured

Deploy OpenClaw in 60 seconds — 20% off logoDeploy OpenClaw in 60 seconds — 20% off

Launch OpenClaw on Hostinger in about 60 seconds and keep your agent live 24/7. Our referral link gives you 20% off, no coupon code needed.

Launch on Hostinger
Run your Hermes agent on Hostinger, fully managed logoRun your Hermes agent on Hostinger, fully managed

Launch Hermes on Hostinger in one click, fully managed, no VPS knowledge needed. Use code ZACAARON10 for 10% off.

Launch on Hostinger
Crawl and scrape any site into clean data, 10% off logoCrawl and scrape any site into clean data, 10% off

Firecrawl crawls and scrapes any site into clean markdown for your agent. Get 1,000 free credits, and new users get 10% off their first purchase.

Try Firecrawl free
Your own AI agent, running 24/7 with QwikClaw logoYour own AI agent, running 24/7 with QwikClaw

QwikClaw sets up and runs an always-on OpenClaw agent for you. One click, no config files, no server setup.

Deploy now
One API to scrape, enrich, and extract the internet. logoOne API to scrape, enrich, and extract the internet.

Context.dev gives your agents a single API to scrape, enrich, and extract live web data — no proxies, no parsers, no maintenance.

Start building free
SetupClaw: done-for-you OpenClaw for founders & exec teams logoSetupClaw: done-for-you OpenClaw for founders & exec teams

White-glove OpenClaw for founders and exec teams (4–50+ employees): we install, harden, integrate your tools, and maintain it — secured from day one.

Get it set up for you
SEO data APIs for your agent, $1 free credit logoSEO data APIs for your agent, $1 free credit

DataForSEO gives your agent live access to SERP results, keyword data, backlinks, and on-page SEO data through one API. New accounts get a $1 credit, good for up to 20,000 keyword or backlink lookups.

Try DataForSEO free
Reach 47,000+ AI builders

A flat monthly placement in front of developers actively installing AI tools. No lock-in, cancel anytime.

Advertise here

Works with

Claude CodeClaude DesktopCursorVS CodeClineCodex CLIOpenClaw+ any MCP client

Install to Claude Code

This server doesn't publish a one-line install command. Follow the setup in the source repository.

Summary

AI agent control of 3D printers — 273 tools for OctoPrint, Moonraker, Bambu, Prusa, Elegoo

README.md

<!-- mcp-name: io.github.codeofaxel/kiln --> <p align="center"> <img src="docs/assets/kiln-banner-1280x640.svg" alt="Kiln" width="640"> </p>

<p align="center"> <a href="https://pypi.org/project/kiln3d/"><img src="https://img.shields.io/pypi/v/kiln3d" alt="PyPI"></a> <a href="https://pepy.tech/projects/kiln3d"><img src="https://img.shields.io/pepy/dt/kiln3d" alt="PyPI Downloads"></a> <a href="https://pypi.org/project/kiln3d/"><img src="https://img.shields.io/pypi/pyversions/kiln3d" alt="Python"></a> <a href="https://github.com/codeofaxel/Kiln/blob/main/LICENSE"><img src="https://img.shields.io/github/license/codeofaxel/Kiln" alt="License"></a> <a href="https://github.com/codeofaxel/Kiln/blob/main/policies/SIGNING.md"><img src="https://img.shields.io/badge/verified%20by-sigstore%20%2B%20SLSA-0f6fdc?logo=sigstore&logoColor=white" alt="Verified by Sigstore + SLSA"></a> <a href="https://glama.ai/mcp/servers/codeofaxel/kiln"><img src="https://glama.ai/mcp/servers/codeofaxel/kiln/badge?v=2" alt="Kiln MCP server" width="120"></a> </p>

---

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.

pip install kiln3d

<p align="center"> <img src="docs/assets/kiln-demo-loop.svg" alt="A Kiln agent session: the user asks for a coaster with their dog's photo; Kiln designs it, checks it will print, slices, and prints it on a Bambu A1 — done in 41 minutes." width="640"> </p>

<p align="center"> <img src="docs/assets/ash-coaster.jpg" alt="A 3D-printed coaster with a relief portrait of a French bulldog and the name ASH along the bottom edge, held in a hand" width="640"> </p>

<p align="center"> <em>"a coaster with a photo of my dog Ash" — start to finish, from one sentence.</em><br> <a href="https://kiln3d.com/?utm_source=github&utm_medium=readme#demo">Watch the demo →</a> </p>

<p align="center"> <sub>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.</sub> </p>

Quick Start

Three steps. Then ask your AI to make something.

1. Install

pip install kiln3d

2. Connect your AI — Kiln sets itself up inside Claude Desktop, Claude Code, and Codex:

kiln signin        # create your free account
kiln install-mcp   # connects Kiln to your AI apps

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:

<details> <summary><strong>Manual MCP config (any client, no sign-in needed)</strong></summary>

{
  "mcpServers": {
    "kiln": {
      "command": "python3",
      "args": ["-m", "kiln", "serve"]
    }
  }
}

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. </details>

3. Ask — paste a sentence like this into your agent. Kiln does the rest:

I have a Bambu A1, 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 doctor checks your whole setup and tells you exactly what to fix. kiln self-update upgrades in place when a new release lands.

<details> <summary><strong>Prefer to drive it yourself? (CLI tour)</strong></summary>

# Discover printers on your network (mDNS + HTTP probe)
kiln discover

# Add your printer (see the printer table under "Supported Printers")
kiln auth --name my-printer --host http://octopi.local --type octoprint --api-key YOUR_KEY
# Other types:
# kiln auth --name prusa  --host http://192.168.1.100      --type prusalink --api-key YOUR_KEY
# kiln auth --name klipper --host http://192.168.1.100:7125 --type moonraker
# kiln auth --name bambu  --host 192.168.1.100             --type bambu --access-code LAN_CODE --serial SERIAL

kiln status                       # Printer state + job progress
kiln upload model.gcode           # Upload a file
kiln print model.gcode            # Start printing
kiln slice model.stl --print-after  # Slice an STL and print in one step
kiln print *.gcode --queue        # Batch print
kiln wait                         # Monitor a running print
kiln snapshot --save photo.jpg    # Webcam snapshot
kiln history --status completed   # Print history

# Every command supports --json for agent consumption
kiln status --json

Global option: --printer <name> targets a specific printer per command. The full command reference is in Project Docs. </details>

<details> <summary><strong>Connect a specific agent (Claude Code, Claude Desktop, env vars)</strong></summary>

Claude Code — install the plugin (one-time: install uv first if you don't have it — it's free and takes one line):

claude plugin marketplace add codeofaxel/Kiln
claude plugin install kiln@kiln

Or wire it by hand — add to .claude/settings.json (project) or ~/.claude/settings.json (global):

{
  "mcpServers": {
    "kiln": { "command": "kiln", "args": ["serve"] }
  }
}

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:

{
  "mcpServers": {
    "kiln": {
      "command": "python3",
      "args": ["-m", "kiln", "serve"],
      "env": {
        "KILN_PRINTER_HOST": "http://192.168.1.100",
        "KILN_PRINTER_API_KEY": "your_key",
        "KILN_PRINTER_TYPE": "prusalink"
      }
    }
  }
}

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:

export KILN_OPENROUTER_KEY=sk-or-...
kiln agent --model openai/gpt-4o
kiln agent --model meta-llama/llama-3.1-70b-instruct --tier essential

Tool tiers auto-match model capability: essential (16 tools) for smaller models, standard (61 tools) for mid-range, full (133 tools) for stronger models. All <!-- KILN_MCP_TOOL_COUNT:OLD --> 887 tools are available over MCP via kiln serve. </details>

<details> <summary><strong>Platform &amp; printer setup notes (Linux/WSL 2, Ethernet-only, Bambu)</strong></summary>

Prerequisites by printer type

| 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 or OrcaSlicer 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.

Linux / WSL 2

pipx installs Kiln into its own isolated environment and puts kiln on your PATH. (The pip package is kiln3d; the CLI command is kiln.)

sudo apt install pipx && pipx ensurepath
git clone https://github.com/codeofaxel/Kiln.git && cd Kiln
pipx install ./kiln
sudo apt install prusa-slicer            # optional: slicing for printing
sudo snap install openscad --edge        # optional: the design engine (current build)
kiln verify

# Update / uninstall
git pull && pipx install --force ./kiln
pipx uninstall kiln3d

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).

Ethernet-only printers (no Wi-Fi)

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:

curl http://<ip>/api/version                              # OctoPrint
curl http://<ip>:7125/server/info                         # Moonraker / Creality (local Moonraker)
curl -H "X-Api-Key: YOUR_KEY" http://<ip>/api/v1/status   # Prusa Link
# Bambu uses MQTT — ensure port 8883 is reachable:  nc -zv <ip> 8883

kiln auth --name my-printer --host http://<ip> --type prusalink --api-key YOUR_KEY

If PrusaSlicer isn't on your PATH: export KILN_SLICER_PATH=/path/to/prusa-slicer.

Bambu TLS &amp; webcam

Kiln pins the printer certificate (TOFU) on first connection in ~/.kiln/bambu_tls_pins.json. Overrides:

export KILN_BAMBU_TLS_MODE=ca         # strict CA/hostname (usually fails on stock self-signed printers)
export KILN_BAMBU_TLS_MODE=insecure   # legacy, no validation — trusted LANs only
export KILN_BAMBU_TLS_FINGERPRINT=0123abcd...   # explicit SHA-256 pin

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. </details>

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.

Why Kiln?

  • One control plane, any printer — OctoPrint, Moonraker, Creality, Bambu Lab, Prusa Link, Elegoo, Serial. Manage a mixed fleet from one place.
  • No printer? No problem — Outsource jobs to Craftcloud's 150+ manufacturing services through the hosted proxy, or use direct mode with your own provider credentials.
  • AI-native — <!-- KILN_MCP_CAPABILITY_COUNT:OLD --> 894 MCP capabilities and <!-- KILN_CLI_COUNT:OLD --> 235 CLI commands built for AI agents. Not a web UI with an API bolted on.
  • Describe it, print it — Natural-language to physical object pipeline: text or sketch → AI generation → validation → slice → print.
  • Decorate anything — QR codes, photos, logos, text, SVGs, and procedural textures (tiger stripe, marble, camo, wood grain, honeycomb) embossed or debossed onto any model with one command.
  • Manuals included — Multi-part prints can generate printable PDF assembly manuals with Bill of Materials, isometric step renders, mating arrows, and pause-and-check verification gates. (Business)
  • Resume, don't restart — Cancelled or failed print? Resume from the exact layer it stopped on any supported FDM printer. No filament wasted. (Pro)
  • Modify mid-print — Add decorations, append features, or swap materials on a live print with atomic revert if anything goes wrong. (Pro)
  • Smart material routing — 25 materials, 45 brand-specific filament profiles (Bambu, Prusament, Polymaker, and more) across 11 material families. Intent-based recommendations with printer capability awareness.
  • Prints don't fail silently — Cross-printer learning, automatic failure recovery, closed-loop AI generation feedback (failed prints auto-improve future generations), preflight safety checks on every job.
  • Doomed prints stopped early — Too big for the build plate, or a material your hotend can't melt? Caught before filament is wasted, rotated to fit when possible, one-command override. Pro shows the fix: true usable area, cleanest split, or the material to switch to.
  • Search → Slice → Print — Search and download 3D models from MyMiniFactory and Cults3D (search only), auto-slice with PrusaSlicer or OrcaSlicer, print — all from one agent conversation.
  • Safety at scale — 51 named per-printer safety profiles, G-code validation, heater watchdog, tamper-proof audit logs. Enterprise adds encrypted G-code at rest with key rotation, lockable profiles, RBAC, SSO, fleet site grouping, per-project cost tracking, and PostgreSQL HA.

Supported Printers

| 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 (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. |

<!-- BEGIN SUPPORTED PRINTERS (auto-generated by scripts/generate_supported_printers.py) --> Kiln ships tuned profiles for 59 models across 15 brands — Creality, Bambu Lab, QIDI, Elegoo, Prusa Research, Sovol, AON3D, Voron, AnkerMake, Artillery, FlashForge, INTAMSYS, RatRig, SparkX, Vision Miner. See the full searchable list → <!-- END SUPPORTED PRINTERS -->

Architecture

graph TD
    A["🤖 AI Agent<br/><sub>Claude · GPT · Custom</sub>"]
    A -->|"CLI or MCP"| B["⚙️ Kiln<br/><sub>CLI + MCP Server</sub>"]

    B --> C["🖨️ Your Printers"]
    B --> F["🏭 Fulfillment"]
    B --> D["🛒 Marketplaces"]
    B --> V["📐 Designs (versioned)<br/><sub>Pro+</sub>"]

    C --> E1["OctoPrint"]
    C --> E2["Moonraker"]
    C --> E3["Creality"]
    C --> E4["Bambu"]
    C --> E5["Prusa Link"]
    C --> E6["Elegoo"]

    F --> F1["Craftcloud"]

    D --> I["MyMiniFactory"]
    D --> J["Cults3D"]

    V --> V1["Branches"]
    V --> V2["Signed Releases"]
    V --> V3["Cloud Sync"]

    style A fill:#1a1a2e,stroke:#e94560,color:#fff
    style B fill:#16213e,stroke:#0f3460,color:#fff
    style C fill:#0f3460,stroke:#e94560,color:#fff
    style F fill:#0f3460,stroke:#27ae60,color:#fff
    style D fill:#0f3460,stroke:#533483,color:#fff
    style V fill:#0f3460,stroke:#f59e42,color:#fff
    style E1 fill:#2d2d44,stroke:#e94560,color:#fff
    style E2 fill:#2d2d44,stroke:#e94560,color:#fff
    style E3 fill:#2d2d44,stroke:#e94560,color:#fff
    style E4 fill:#2d2d44,stroke:#e94560,color:#fff
    style E5 fill:#2d2d44,stroke:#e94560,color:#fff
    style F1 fill:#2d2d44,stroke:#27ae60,color:#fff
    style I fill:#2d2d44,stroke:#533483,color:#fff
    style J fill:#2d2d44,stroke:#533483,color:#fff
    style V1 fill:#2d2d44,stroke:#f59e42,color:#fff
    style V2 fill:#2d2d44,stroke:#f59e42,color:#fff
    style V3 fill:#2d2d44,stroke:#f59e42,color:#fff

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.

Git for 3D

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:

  1. Outcome-correlated branches. Every branch is tagged with empirical print results — success rate, warp, adhesion, cost — so cross-branch A/B is automatic, not anecdotal.
  2. 3-way semantic mesh merge. Z-level / pocket / bounding-box conflict zones rendered as visual diffs, not text patches. Manufacturing tolerance, not character offsets.
  3. Signed releases with mesh re-fingerprinting. Ed25519 signatures over a release manifest pinned to an exact mesh; verification re-computes the fingerprint to detect tamper after release.

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):

flowchart TD
    subgraph tree_coaster["📐 my-coaster · design"]
        v0[v0: initial]
        v1[v1: emboss-1mm<br/>83% success]
        v2[v2: emboss-2mm<br/>92% success · warp 2%]
        v3[v3: emboss-3mm<br/>warp 5%]
        v4[v4: merge winner]
        rel[🔏 1.0.0]
        v0 --> v1
        v0 --> v2
        v0 --> v3
        v2 --> v4
        v4 --> rel
    end
    classDef root fill:#f3f4f6,stroke:#374151,color:#111
    classDef released fill:#ffd60a,stroke:#111,stroke-width:3px,color:#111
    classDef experiment fill:#e0e7ff,stroke:#6366f1,color:#1e1b4b
    classDef failed fill:#fecaca,stroke:#b91c1c,color:#7f1d1d
    class v0 root
    class v1 experiment
    class v2 experiment
    class v3 failed
    class v4 experiment
    class rel released
    style tree_coaster fill:#ffffff,stroke:#e5e7eb,stroke-width:1px

| 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.

What Agents Can Do

The Kiln MCP server (kiln serve) exposes <!-- KILN_MCP_TOOL_COUNT:OLD --> 887 tools to agents, plus prompts and resources for <!-- KILN_MCP_CAPABILITY_COUNT:OLD --> 894 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:

| Theme | Example tools | |-------|---------------| | Control | printer_status · start_print · monitor_print · pause_print · cancel_print · emergency_stop · send_gcode (validated) | | Make | generate_model (text → 3D) · slice_and_print · analyze_printability · auto_orient_model · decorate_surface (QR/photo/logo/texture) | | Find &amp; outsource | search_all_models · download_and_upload · fulfillment_quote · fulfillment_order | | Recover &amp; learn | retry_print_with_fix · resume_interrupted_print (Pro) · predict_print_failure · get_printer_insights · diagnose_print_failure_live | | Versioning (Pro+) | save_design_version · diff_design_versions · get_proven_recipe · check_design_regression | | Fleet &amp; safety | fleet_status · submit_job · preflight_check · list_safety_profiles · validate_gcode_safe |

The complete tool catalog, grouped by subsystem, lives in Project Docs.

<details> <summary>MCP resources (read-only context for agents)</summary>

| 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) | </details>

Capabilities

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 and OrcaSlicer 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 &amp; 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.

Pricing

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/month free, $0.25 min / $200 max per order), shown transparently in every quote.

| 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, fulfillment, 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.

Safety

Kiln is safety-first infrastructure for controlling physical machines:

  • Pre-flight checks validate printer state, temperatures, and files before every print
  • G-code validation blocks dangerous commands (firmware reset, unsafe temperatures)
  • Temperature limits enforce safe maximums (300 °C hotend, 130 °C bed)
  • Confirmation required for destructive operations (cancel, raw G-code)
  • Optional authentication with scope-based API keys for multi-user setups
  • Structured errors ensure agents always know when something fails

Packages

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 |

Development

# Create a virtualenv first (required on modern Ubuntu/Debian/WSL)
python3 -m venv .venv && source .venv/bin/activate

pip install -e "./kiln[dev]"
pip install -e "./octoprint-cli[dev]"

cd kiln && python3 -m pytest tests/ -v
cd ../octoprint-cli && python3 -m pytest tests/ -v

Run in Docker

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.

<details> <summary><strong>Configuration reference (auth, webhooks, discovery, plugins)</strong></summary>

Authentication (optional)

Optional API-key auth for MCP tools, disabled by default. Scopes: read, write, admin. Read-only tools never require auth.

export KILN_AUTH_ENABLED=1
export KILN_AUTH_KEY=your_secret_key
export KILN_MCP_AUTH_TOKEN=your_secret_key   # clients provide their key here

Webhooks

Register HTTP endpoints for real-time event notifications:

register_webhook(url="https://example.com/hook", events=["job.completed", "print.failed"])

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.

Printer discovery

kiln discover   # mDNS/Bonjour + HTTP subnet probing

Finds OctoPrint, Moonraker/Creality, Bambu, Elegoo, and Prusa Link printers. If discovery returns nothing, register directly by IP with kiln auth.

Third-party plugins

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. </details>

<details> <summary><strong>Modules (for contributors)</strong></summary>

| 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) 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 <!-- KILN_CLI_COUNT:OLD --> 235 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. </details>

Documentation

| Document | Description | |----------|-------------| | Project Docs | Complete reference (CLI, MCP tools, adapters, config) |

<details> <summary>Brand assets</summary>

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. </details>

Support Development

Kiln is free, open-source software. If you find it useful, consider sending a tip:

  • Solana: kiln3d.sol
  • Ethereum: kiln3d.eth

Positioning

Messaging 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.

License

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.

See related servers & alternatives →

Related MCP servers

Browse all →

Related guides

Hand-picked reading to help you choose and use AI & ML servers.