npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@fingerskier/pi-build123d

v2026.5.7

Published

build123d CAD MCP plugin for Pi with a self-bootstrapping Python server

Downloads

233

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 models
    • export_stl — Export to STL (for 3D printing)
    • export_step — Export to STEP (for CAD interchange)
    • render_image — Render PNG/SVG images from multiple view angles
    • list_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:

  1. Write build123d code using the execute_build123d tool
  2. Show you model properties (size, volume, topology)
  3. Render images with render_image
  4. 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 tests

Running Tests

pip install -e ".[dev]"
pytest

Security

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