@fingerskier/pi-build123d
v2026.5.7
Published
build123d CAD MCP plugin for Pi with a self-bootstrapping Python server
Downloads
233
Maintainers
Readme
build123d-claude-plugin
A Claude Code plugin and MCP server for creating 3D CAD models using build123d, a Python parametric CAD library built on the OpenCascade kernel.
Features
- AI-assisted CAD modeling — Claude writes build123d code, executes it, and exports artifacts
- MCP server with 7 tools for the full CAD workflow:
execute_build123d— Run build123d code to create 3D modelsexport_stl— Export to STL (for 3D printing)export_step— Export to STEP (for CAD interchange)render_image— Render PNG/SVG images from multiple view angleslist_models/get_model_info/delete_model— Session management
- Sandboxed execution — Code runs in a restricted namespace (no filesystem/network access)
- CLAUDE.md reference — Comprehensive build123d API guide for Claude
Installation
pip install -e .Dependencies
- Python 3.10+
- build123d (and OpenCascade via cadquery-ocp)
- mcp (Model Context Protocol SDK)
- CairoSVG (optional, for PNG rendering)
- Pillow (fallback image support)
Setup with Claude Code
Add the MCP server to your Claude Code configuration:
{
"mcpServers": {
"build123d": {
"command": "build123d-mcp",
"args": ["--output-dir", "./cad-output"]
}
}
}Or run from source:
{
"mcpServers": {
"build123d": {
"command": "python",
"args": ["-m", "build123d_mcp.server", "--output-dir", "./cad-output"]
}
}
}Usage
Once configured, ask Claude to create CAD models:
"Create a box with rounded edges, 40x30x20mm with 3mm fillets"
"Design a parametric enclosure for a Raspberry Pi with screw mounting holes"
"Make an L-bracket with mounting holes and export it as STL for 3D printing"
Claude will:
- Write build123d code using the
execute_build123dtool - Show you model properties (size, volume, topology)
- Render images with
render_image - Export to STL/STEP when you're ready
Project Structure
├── CLAUDE.md # Build123d reference for Claude
├── pyproject.toml # Python package config
├── src/build123d_mcp/
│ ├── server.py # MCP server & tool definitions
│ ├── executor.py # Sandboxed code execution engine
│ ├── exporter.py # STL/STEP export + model properties
│ └── renderer.py # SVG/PNG image rendering
├── examples/ # Example build123d scripts
│ ├── simple_box.py
│ ├── enclosure.py
│ └── bracket.py
└── tests/ # Unit testsRunning Tests
pip install -e ".[dev]"
pytestSecurity
The code executor enforces these constraints:
- Allowed imports:
build123d,math,typing,collections,itertools,functools,dataclasses,enum - Blocked builtins:
open,exec,eval,__import__,compile,exit,input, and others - AST validation: Dangerous patterns (disallowed imports, dunder access) are rejected before execution
- Timeout: 60-second execution limit
License
MIT
