MCP server wrapping build123d for interactive 3D CAD
Project description
build123d-mcp
An MCP (Model Context Protocol) server that exposes build123d CAD operations as tools, enabling AI assistants to build, inspect, and iterate on 3D geometry interactively.
Why
When using an AI to write build123d scripts, the AI writes blind — it cannot see the geometry it produces. This server closes the feedback loop: the AI can create geometry, render views, query dimensions, and catch errors incrementally rather than writing complete scripts and hoping they are correct.
Tools
execute— run build123d Python code in a persistent session; useshow(shape, name)to register named partsrender_view— render one or more shapes as PNG; supports assembly compositing, high-quality tessellation, and cross-section clip planesmeasure— query bounding box, volume, surface area, minimum wall thickness, or clearance between two named bodiesexport— export as STEP, STL, or both in one call; targets a named object or the current shapesave_snapshot/restore_snapshot— checkpoint and recover geometric state without re-running prior codereset— clear the session back to empty state
See llms.md for full tool reference and usage patterns.
Requirements
- uv
- An MCP-compatible client (Claude Code, Claude Desktop, Cursor, etc.)
All Python dependencies (build123d, pyvista, etc.) are installed automatically by uv.
Installation
No clone needed. Install directly from PyPI:
pip install build123d-mcp
Or just use uvx — it fetches and runs the package in one step with no prior install required (see below).
Adding to MCP clients
The server runs over stdio — the client launches it as a subprocess using uvx build123d-mcp.
Claude Code
Add to your project's .mcp.json (or ~/.claude/mcp.json for global use):
{
"mcpServers": {
"build123d-mcp": {
"command": "uvx",
"args": ["build123d-mcp"]
}
}
}
Restart Claude Code after editing. The tools appear automatically once connected.
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"build123d-mcp": {
"command": "uvx",
"args": ["build123d-mcp"]
}
}
}
Restart Claude Desktop after saving.
Cursor
Open Settings → MCP and add a new server entry, or edit ~/.cursor/mcp.json:
{
"mcpServers": {
"build123d-mcp": {
"command": "uvx",
"args": ["build123d-mcp"]
}
}
}
VS Code (GitHub Copilot / Continue)
For Continue extension, add to .continue/config.json:
{
"mcpServers": [
{
"name": "build123d-mcp",
"command": "uvx",
"args": ["build123d-mcp"]
}
]
}
For GitHub Copilot with MCP support, add to .vscode/mcp.json in your workspace:
{
"servers": {
"build123d-mcp": {
"type": "stdio",
"command": "uvx",
"args": ["build123d-mcp"]
}
}
}
System prompt
For best results, paste the contents of default_prompt.md as a system prompt in your AI client. This tells the assistant to work incrementally, verify geometry after each step, and use the tools in the right order.
Status
Active development (v0.1.0).
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file build123d_mcp-0.2.0.tar.gz.
File metadata
- Download URL: build123d_mcp-0.2.0.tar.gz
- Upload date:
- Size: 178.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
dcb3fa76300eb9faef373835f199016a405bb10f847e61caa7909d7ede405db2
|
|
| MD5 |
9c4e7696f939e352e56f2c00e978f656
|
|
| BLAKE2b-256 |
8fd16cd26c11b5e3b3d69b3b26bafa98eeabcfb28eebf9be9fc1a192deaa94f2
|
Provenance
The following attestation bundles were made for build123d_mcp-0.2.0.tar.gz:
Publisher:
publish.yml on pzfreo/build123d-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
build123d_mcp-0.2.0.tar.gz -
Subject digest:
dcb3fa76300eb9faef373835f199016a405bb10f847e61caa7909d7ede405db2 - Sigstore transparency entry: 1427350079
- Sigstore integration time:
-
Permalink:
pzfreo/build123d-mcp@c2e7cb2e2fdb57036d82f56ebee1bbd2675eebe8 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/pzfreo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c2e7cb2e2fdb57036d82f56ebee1bbd2675eebe8 -
Trigger Event:
release
-
Statement type:
File details
Details for the file build123d_mcp-0.2.0-py3-none-any.whl.
File metadata
- Download URL: build123d_mcp-0.2.0-py3-none-any.whl
- Upload date:
- Size: 17.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4d66ea948be3b932b5930fdf6c96689f91504e754dc75722396535119069f8a1
|
|
| MD5 |
c46f5202351e7e096cc6fe628402a03a
|
|
| BLAKE2b-256 |
33375264ebaf5d31e5d8b1f16bbf670746ab5dbaf0b441da75b7808231c1a4e4
|
Provenance
The following attestation bundles were made for build123d_mcp-0.2.0-py3-none-any.whl:
Publisher:
publish.yml on pzfreo/build123d-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
build123d_mcp-0.2.0-py3-none-any.whl -
Subject digest:
4d66ea948be3b932b5930fdf6c96689f91504e754dc75722396535119069f8a1 - Sigstore transparency entry: 1427350237
- Sigstore integration time:
-
Permalink:
pzfreo/build123d-mcp@c2e7cb2e2fdb57036d82f56ebee1bbd2675eebe8 -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/pzfreo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@c2e7cb2e2fdb57036d82f56ebee1bbd2675eebe8 -
Trigger Event:
release
-
Statement type: