
b123d-print
io.github.KD5RYNPublished by GitHub account KD5RYNv0.3.17Updated Nov 3, 2026
Vibe CAD for 3D printing: design, check and export printable parts with build123d.
Overview
b123d-print's local MCP server; no sign-in required; STDIO.
No AI overview yet: these facts come from the registry entry and the server itself.
Installation
In SourceWeft
- Open b123d-print in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
b123d-print
[PyPI] [CI] [Docs] [License: MIT]
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).
What you can make
Ask the way you would ask a friend who owns calipers and a CAD program. These were designed this way, and printed:
- "A box for this IR blaster board: the LED pointing out the top, a screw-on lid, two tabs to mount it on the wall." A two-part case, checked against a stand-in of the board so it fits.
- "An outdoor case for this motion sensor. It should slide off a wall plate and keep the rain out." Dovetail rails, a click-in detent, a drain slot, and a cover that prints without supports.
- "An adapter plate: 2-gang box behind, 1-gang smart switch in front." Counterbored screw holes, and a wall check added after the first print broke through a 0.05 mm skin no render showed.
Or remix a model you downloaded (STL, 3MF or STEP) and change it:
- "Here's an L bracket STL I downloaded: turn its two mounting holes into slots and add gussets." The original is loaded as a solid and changed, the checks tell the original's flaws from new ones, and a before/after view shows exactly what moved. (A demo for the docs, not printed yet.)
Before a long print, test the fit with a fit-test template: a thin, quick print cut from the real part.
- "Make a fit-test template of the mounting face so I can check the hole pattern." The assistant shows you the face in red, asks you to confirm, and gives you a 1.2 mm plate with the part's exact holes: minutes to print instead of hours.
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.
Documentation: https://kd5ryn.github.io/b123d-print/
Get started in 2 minutes
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, …):
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:
Or install the Claude Code plugin (server + skill) in one step:
Claude Desktop (Settings → Developer → Edit Config):
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.
What's in it
b123d-printpackage + 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).- Remix — start from someone else's STL, 3MF or STEP:
import_modelmakes 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). - Replicate — copy a physical part, often a molded one: a measurement plan, each dimension
critical or free, molded features changed for FDM with reasons, and
replication_specchecking the model against the readings inMEASURE.md(replicating a physical part). - Fit-test templates — a quick thin print of a face, a slice or a region of the real part (same holes and clearances) to check the hole pattern and the fits before the full print (fit-test templates).
- Design review — after the print checks pass, the assistant reviews the part for a style you pick (functional, modern, least cost, rugged/outdoor, soft/handheld, structural/load-bearing, organic/natural, decorative/vase, toy/kid-safe): rough filament and time estimates, supports, edge treatment, layer steps, water traps, inside corners and walls, small parts for toys, and concrete suggestions from sourced design rules. It changes nothing without your OK (design review).
- The workflow, model-neutral — MCP prompts plus an
AGENTS.mdany 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. - Examples — four parts designed this way and printed, plus calibration coupons for holes,
fits, and overhangs and bridges, in
src/b123d_print/examples/.
Advanced: run it on another machine
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.
Documentation
Status
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.
Credits and license
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.
Source: README.md at commit 250c157
Tools
0Version history
14- v0.3.17LatestNov 3, 2026
- v0.3.16Oct 29, 2026
- v0.3.15Oct 26, 2026
- v0.3.13Oct 25, 2026
- v0.3.12Oct 23, 2026
- v0.3.11Oct 22, 2026
- v0.3.10Oct 21, 2026
- v0.3.9Oct 21, 2026
- v0.3.8Oct 20, 2026
- v0.3.6Oct 20, 2026
- v0.3.5Oct 20, 2026
- v0.3.4Oct 19, 2026
- v0.3.3Oct 19, 2026
- v0.3.2Oct 19, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts