Skip to main content

build123d-mcp

PyPI version Downloads Python CI License: Apache 2.0 MCP Registry build123d-mcp MCP server

Install in VS Code Add to Cursor

Give your AI CAD eyes.

build123d-mcp is not a standalone chatbot or CAD program. It is a CAD toolbox that an AI/LLM app can use through MCP.

With an LLM app such as Claude, Cursor, VS Code, Continue, Cline, or Codex CLI, build123d-mcp lets the assistant create build123d CAD models, render previews, measure geometry, fix mistakes, and export files such as STEP, STL, SVG, and DXF. Instead of writing a whole CAD script blindly, the assistant can build a part in small steps and check the result as it goes.

On the public CADGenBench leaderboard in June 2026, using build123d-mcp raised the same model's score from 0.360 to 0.457 and CAD validity from 88% to 100%.

Pick Your Setup

Most users should start with the local MCP server setup:

  • You use Claude, Cursor, VS Code, Continue, Cline, or Codex CLI on your own machine.
  • Your AI app starts build123d-mcp as a local subprocess.
  • You do not need to clone this repository.

Use GitHub Codespaces instead if you want a browser-only trial or a ready-made development workspace with Copilot Chat, Python, uv, and the CAD dependencies already installed.

Use HTTP mode only for advanced deployments where you are hosting the MCP server yourself.

Quick Start

You need:

  • uv
  • An AI/LLM app that supports MCP, such as Claude Code, Claude Desktop, Cursor, VS Code, Continue, Cline, or Codex CLI

No repository clone is needed for normal use. First check that the package can start:

uv tool run --python 3.12 build123d-mcp@latest --version

Then add the same command to your AI app's MCP config. The common pieces are:

command: uv
args:    ["tool", "run", "--python", "3.12", "build123d-mcp@latest"]

Python 3.11, 3.12, 3.13, and 3.14 are supported. The examples use 3.12 because it is a conservative default, and uv can download it if you do not already have it installed.

Connect To Your AI App

The pieces are:

  • The LLM app is where you chat with the assistant.
  • MCP is the connection that lets the assistant call tools.
  • build123d-mcp is the CAD tool server the assistant calls.

The server normally runs over stdio. Your AI app starts it as a local subprocess when it needs the CAD tools.

Claude Code

Add this to your project's .mcp.json, or to ~/.claude/mcp.json for global use:

{
  "mcpServers": {
    "build123d-mcp": {
      "command": "uv",
      "args": ["tool", "run", "--python", "3.12", "build123d-mcp@latest"]
    }
  }
}

Restart Claude Code after editing.

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json on macOS, or %APPDATA%\Claude\claude_desktop_config.json on Windows:

{
  "mcpServers": {
    "build123d-mcp": {
      "command": "uv",
      "args": ["tool", "run", "--python", "3.12", "build123d-mcp@latest"]
    }
  }
}

Restart Claude Desktop after saving.

Cursor

Open Settings -> MCP and add a new server entry, or edit ~/.cursor/mcp.json:

{
  "mcpServers": {
    "build123d-mcp": {
      "command": "uv",
      "args": ["tool", "run", "--python", "3.12", "build123d-mcp@latest"]
    }
  }
}

VS Code, Continue, Cline, Codex CLI

Use the same command and arguments in whichever MCP config your AI app or extension reads. The exact filename varies by app, but the server command is the same:

command: uv
args:    ["tool", "run", "--python", "3.12", "build123d-mcp@latest"]

For GitHub Copilot MCP support in VS Code, this repository includes a .vscode/mcp.json for development checkouts and Codespaces. For another workspace, the config looks like this:

{
  "servers": {
    "build123d-mcp": {
      "type": "stdio",
      "command": "uv",
      "args": ["tool", "run", "--python", "3.12", "build123d-mcp@latest"]
    }
  }
}

First Test Prompt

Once your AI app is connected to the server, ask your assistant something concrete:

Use build123d-mcp to make a 60 mm x 40 mm x 6 mm mounting plate with two
5 mm through holes 40 mm apart. Render it, measure it, then export STEP and STL.

The useful loop is:

  1. Build one feature at a time.
  2. Render or measure after important steps.
  3. Validate before export.
  4. Export the final part.

If something goes wrong, ask the assistant to inspect last_error, repair the script, and try the next smaller step.

Good prompts usually ask the assistant to use the MCP tools explicitly and to verify the result before exporting. For example:

Use build123d-mcp. Build this incrementally, render after the main features,
measure the final dimensions, run validate(), and export STEP if it passes.

Try It In GitHub Codespaces With Copilot

You can also run the project in a browser with GitHub Codespaces:

Open in GitHub Codespaces

For a beginner, this is the closest path to "GitHub-hosted LLM + MCP":

  • GitHub Codespaces gives you VS Code in the browser.
  • GitHub Copilot Chat gives you the LLM assistant.
  • build123d-mcp runs inside the codespace as the MCP CAD tool server.

You need GitHub Copilot access for the LLM part. The codespace itself gives you a throwaway workspace with the project already checked out and the right Python/CAD dependencies installed. It is useful when you want to:

  • Try the project without changing your laptop setup
  • Run the tests before making a contribution
  • Use Copilot Chat and build123d-mcp together in the same browser workspace

GitHub's docs cover:

This repository includes a dev container that installs Python 3.12, uv, and the Linux display packages needed for headless rendering. It also installs the GitHub Copilot VS Code extensions and includes a workspace MCP config at .vscode/mcp.json.

When the codespace opens, it runs:

uv sync --all-groups

To check the development install:

uv run build123d-mcp --version
uv run pytest

To use Copilot with the local CAD server:

  1. Open the codespace.
  2. Wait for setup to finish.
  3. Open Copilot Chat and choose Agent mode.
  4. Open .vscode/mcp.json and start the build123d-mcp server if VS Code has not started it already.
  5. Ask the first test prompt from the previous section.

The Codespaces MCP config points at the local checkout rather than the PyPI package:

{
  "servers": {
    "build123d-mcp": {
      "type": "stdio",
      "command": "uv",
      "args": ["run", "build123d-mcp"]
    }
  }
}

Codespaces is a good fit for trying the project, contributing, or using GitHub Copilot and build123d-mcp in one remote environment. For desktop AI apps on your own machine, the normal uv tool run ... build123d-mcp@latest setup is simpler because those apps expect to start the MCP server locally.

What It Can Do

build123d-mcp gives an assistant tools to:

  • Execute build123d code in a persistent CAD session
  • Render PNG, SVG, and DXF previews
  • Measure volume, area, bounding boxes, topology, and centers of mass
  • Find holes, bosses, countersinks, and hole patterns
  • Check printability, fit/alignment comparisons, and export validity
  • Import STEP/STL files for comparison
  • Export STEP, STL, DXF, SVG, or multiple formats at once
  • Save and restore session snapshots
  • Produce 2D engineering drawing previews

For the complete tool and resource reference, see llms.md.

Guidance For Assistants

The server includes workflow guidance that helps assistants use the CAD loop properly. This is especially useful in coding agents that read project guidance files.

After connecting the server, ask your assistant to call install_skill for the workflow you need:

install_skill(target="agents-md", skill="modeling")
install_skill(target="agents-md", skill="drawing")
install_skill(target="agents-md", skill="repair")

install_skill also supports target="claude", "cursor", and "windsurf". Use skill="modeling" for 3D parts, skill="drawing" for engineering drawings, and skill="repair" when a solid fails validation.

You can also paste default_prompt.md into your AI app as a system prompt.

Developer Setup

For local development:

git clone https://github.com/pzfreo/build123d-mcp.git
cd build123d-mcp
uv sync --all-groups
uv run build123d-mcp --version
uv run pytest

To run the server from this checkout in an AI app, use:

command: uv
args:    ["run", "build123d-mcp"]

See CONTRIBUTING.md for contribution guidelines.

Advanced Use

The default stdio transport gives each app process its own isolated session. HTTP mode is available for web, container, or remote deployments:

uv tool run --python 3.12 "build123d-mcp[http]@latest" \
  --transport http --host 127.0.0.1 --port 8000

HTTP-capable apps then connect to:

http://localhost:8000/mcp

HTTP mode has no built-in authentication and uses one shared CAD session unless the host provides per-request session middleware. Do not expose it to multiple users directly.

Other advanced topics:

Status

Active development.

Release files for build123d-mcp 0.3.87

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for build123d-mcp 0.3.87
File Size Uploaded
build123d_mcp-0.3.87.tar.gz 7.8 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for build123d-mcp 0.3.87
File Interpreter ABI Platform
build123d_mcp-0.3.87-py3-none-any.whl Python 3 none any Details

Total release size: 8.2 MB

Release files / build123d_mcp-0.3.87.tar.gz

Download URL build123d_mcp-0.3.87.tar.gz
Size 7.8 MB
Tags Source
SHA-256 checksum
How to use checksums
35b70487aba6b70b50a09f2491343c65246754f06204aec59f059c91adde8fba
BLAKE2b-256 checksum
How to use checksums
3c4c74b3a6345e9776f1e25f195cffe139546b0210aeaa4f5a7fba5721b15e6f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release files / build123d_mcp-0.3.87-py3-none-any.whl

Download URL build123d_mcp-0.3.87-py3-none-any.whl
Size 348.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
88ee44d23c0f9174754622777a727398542bc9ee859e10a69a0f4ee8d4e1bf0d
BLAKE2b-256 checksum
How to use checksums
dc3ceae1ab2cb134cbdb14f1d170a75ec9ec79b083171b5769901b90c1fb4e1b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 24, 2026.

Transparency log

Release history Release notifications | RSS feed

0.3.89

2 release files

0.3.88

2 release files

This release

0.3.87 This release

2 release files

0.3.86

2 release files

0.3.85

2 release files

0.3.83

2 release files

0.3.80

2 release files

0.3.79

2 release files

0.3.78

2 release files

0.3.59

2 release files

0.3.58

2 release files

0.3.57

2 release files

0.3.56

2 release files

0.3.55

2 release files

0.3.54

2 release files

0.3.53

2 release files

0.3.52

2 release files

0.3.51

2 release files

0.3.50

2 release files

0.3.49

2 release files

0.3.48

2 release files

0.3.47

2 release files

0.3.46

2 release files

0.3.45

2 release files

0.3.44

2 release files

0.3.43

2 release files

0.3.27

2 release files

0.3.26

2 release files

0.3.25

2 release files

0.3.24

2 release files

0.3.23

2 release files

0.3.22

2 release files

0.3.21

2 release files

0.3.20

2 release files

0.3.19

2 release files

0.3.18

2 release files

0.3.17

2 release files

0.3.16

2 release files

0.3.15

2 release files

0.3.9

2 release files

0.3.7

2 release files

0.3.5

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page