Vibe CAD for 3D printing: design, check and export printable parts with build123d.
Runs on your machine from its package; the steps are below.

At most: creates or changes data: records, files, settings.
Odel charges nothing per call. The publisher may charge for its own service.
Runs locally over stdio
This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).
Run
uvx b123d-print
MCP client config
{
"mcpServers": {
"b123d-print": {
"command": "uvx",
"args": [
"b123d-print"
]
}
}
}Vibe CAD for 3D printing. Tell your AI assistant what you need, in plain words, with a photo and a few caliper readings. It designs the part, looks at it from every side, checks it for printing problems and hands you a file for your slicer. No CAD skills needed, and it works with any assistant that supports MCP: Claude, Gemini CLI, Cursor, VS Code Copilot, Codex and more (which clients, and how to connect each).
Ask the way you would ask a friend who owns calipers and a CAD program. These were designed this way, and printed:
Or remix a model you downloaded (STL, 3MF or STEP) and change it:
Before a long print, test the fit with a fit-test template: a thin, quick print cut from the real part.
Measuring something big, curved or awkward? Measuring for the AI shows which tool to use, how to photograph it with a scale, and a copy-paste measurement sheet and table of offsets (stations along a datum) that hand the numbers over without ambiguity.
And the everyday things: a spacer, a knob, a bracket, a cable clip, a replacement for a broken part you can measure. Then keep talking to it: "make it 5 mm taller", "add a hole for an M4 screw", "the lid is too tight". Every dimension stays a named number in a short build123d script, so each change is exact, and you get STEP files to keep editing in other CAD if you want.
![]() | ![]() |
| Two-part box for an IR transceiver board, with the board stand-ins | Section through the LED: lid cone, board, clearances |
![]() | ![]() |
| Outdoor sensor case: dovetail back plate + support-free cover | Wall plate: section just past the face, where the wall check looks |
![]() | ![]() |
| Remix: a downloaded bracket, before and after | Where the remix differs: red cut, grey added |
Documentation: https://kd5ryn.github.io/b123d-print/
b123d-print's MCP server is a plug-in that gives your AI assistant CAD tools. It runs on your own computer.
The easy way: paste this into your AI assistant (Claude Code, Claude Desktop, Cursor, Gemini CLI, Codex, …):
Install the b123d-print MCP server for me. It runs with
`uvx --from b123d-print b123d-print-mcp --workspace <folder>`
where <folder> is a folder for my parts, such as ~/parts.
Install uv first if it is missing (https://docs.astral.sh/uv/).
Add the server to your MCP settings, tell me when to restart you,
and after the restart check that its tools (list_parts, new_part,
build_part, ...) are available.
It will probably ask to run a few commands (to install uv and add the server): that is expected.
By hand:
Install uv, which fetches Python and everything else b123d-print needs.
Add the server. Claude Code:
claude mcp add b123d-print -- uvx --from b123d-print b123d-print-mcp --workspace ~/parts
Or install the Claude Code plugin (server + skill) in one step:
/plugin install b123d-print --marketplace KD5RYN/b123d-print
Claude Desktop (Settings → Developer → Edit Config):
{
"mcpServers": {
"b123d-print": {
"command": "uvx",
"args": ["--from", "b123d-print", "b123d-print-mcp", "--workspace", "/Users/you/parts"]
}
}
}
Cursor, VS Code, Gemini CLI, Codex and others: Connect your MCP client.
Restart the assistant.
Tell it your printer: ask "Set up b123d-print for my printer" (the setup_workspace
prompt; b123d-print setup in a terminal): printer, material, export formats, style, then the
calibration coupons.
Then ask: "Design a 40 mm round spacer, 10 mm tall, with an M3 hole." The files land in
your parts folder under parts/<name>/out/; the file for your slicer is in out/print/
(what to save). The first start downloads a
few hundred MB and can take a few minutes (Troubleshooting).
The assistant checks its work by looking at its renders, so use a client that passes tool
images to the model (Claude Desktop and Claude Code do).
Follow a whole session: your first part, a shelf bracket from install to print, and remix a downloaded STL.
Scope: parts for FDM 3D printing, nothing else. Everything is built around a printed part: print orientation with the bed at Z=0, hole compensation, mating clearance, calibration coupons, and print checks built on sourced FDM design rules. It is not a general CAD framework.
b123d-print package + CLI — export, 6-view renders, colored multi-part cross-sections,
and print checks: overlap between mating parts, overhang and bridges in print
orientation, thin features and wall thickness around cuts, holes (round tops that
sag), bed-edge fillets, gaps between moving parts, probes ("is the roof closed?").b123d-print-mcp — an MCP server, so it works from
Claude Desktop, Claude Code, Gemini CLI, Cursor, VS Code, Codex and other MCP clients. Part
scripts are model-written code: they run in a sandbox with a timeout and no network.compare — measure a part against a reference STL, 3MF or STEP: size, volume and surface
differences, a 0–100 score, pass/fail, and a deviation view
(comparing parts).import_model makes a mesh a solid
(coplanar triangles merged), the checks tell the original's problems from the ones the remix
added, and a before/after view shows the change
(remixing a part).AGENTS.md any agent can
read. The rules come from real prints; one exists because a part broke through a 0.05 mm skin
that no render showed.src/b123d_print/examples/.Not needed for most people. To keep the parts on a home server and design from a laptop, use SSH; for many agents sharing one server (eval runs, a team), HTTP with a named token per tool; for the strongest isolation (also on Windows), Docker. Which mode? compares them.
| Start here | Tutorial: your first part · Tutorial: remix a downloaded STL |
| Getting started | Quick start · MCP clients (Claude Desktop, Claude Code, claude.ai, ChatGPT, Gemini CLI, Antigravity, OpenCode, Qwen Code, pi, Cursor, VS Code, Codex, Grok, Windsurf, Zed, LM Studio) · CLI and Python |
| Advanced | Which mode? · Remote over SSH · Over the network (HTTP) · Docker |
| Using it | How a session goes · Measuring for the AI · MCP tools and prompts · Output formats · From part to print · Settings · Hole compensation · Printer profiles · The checks · Sandbox · Comparing parts · Remixing a part · Fit-test templates |
| Part scripts | The part script · Checks API · Examples · Workflow rules · Design rules (sourced) |
| More | FAQ · Reference · Updating · Troubleshooting · Contributing · Agent evals · Credits and licenses |
0.x — early. The part-script convention may still change. CI tests macOS, Ubuntu and
Windows, the built package via uvx, and the Docker image on every push. On Windows the server
runs natively for local use, but without an OS sandbox (process isolation and an audit hook
only); use WSL2 or Docker for isolation. SSH mode's server side is macOS and Linux only; Windows
works as an SSH or HTTP client. Platforms and status.
b123d-print is a thin layer over build123d, Open CASCADE Technology (via OCP), lib3mf, OrcaSlicer's printer data, bd_warehouse and py_gearworks for part scripts, matplotlib, NumPy, the MCP Python SDK and uv. Details and redistribution notes: THIRD_PARTY.md.
MIT © KD5RYN and contributors.