Parcad

Parametric CAD as code: model 3D-printable parts on an exact B-rep kernel, measured.

LLM Mart 1 views 5 listing impressions
Transport
Not stated
Package
—
Registry id
io.github.ierehon1905/parcad

No install snippet on purpose. A working MCP config is a command, its arguments and an environment block — the last two are where API keys live, so this catalogue never stores them and cannot publish them. Follow the link above for the authors' own instructions.

mcp

Parametric CAD you write as code — for people, and for agents.

Status: 0.0.7, experimental. One author, and the DSL still moves. Every operation is checked against measured geometry (eval/cases/), but none of it has had the years of abuse that make a CAD kernel trustworthy. Measure a part before you machine it.

A bracket built by the script below, in the parcad viewport

const plate = box(80, 60, 8).tag("plate");
const wall = box(8, 60, 40).at(-36, 0, 20).tag("wall");

const body = union(plate, wall, { blend: 6 });          // the blend is the fillet
const drilled = body.cut(...grid(2, 2, 36, 40).map(([x, y]) => cylinder(3, 32).at(x, y)));

return drilled
  .edges({ curve: "circle", role: "hole", adjacentTo: { faceNormal: "+z" } })
  .expect({ count: 4 })                                  // a build error, not a surprise
  .fillet(0.8);

You never name an edge by index. You describe it — the circular rims that open onto the top face — and the description still works after you move a hole.

Fillet, chamfer, blended union, intersect, loft, sweep, helix, revolve, shell, draft, polar pattern and mirror, each built by the exact kernel

One graph, one exact kernel

Your script builds a small JSON graph, and an exact kernel reads it — OpenCASCADE: real faces and edges, STEP export, and a refusal rather than an approximation when it cannot do something faithfully. The graph is what keeps today's script working after tomorrow's kernel swap.

The same manifold block cut open on a plane, cut faces in orange

Parts get measured, not assumed — volume, wall thickness, whether two bores actually meet. An agent gets the same numbers over MCP, with no screen to look at.

And when it does look, it gets pictures made for reading: views that share one scale, sections through the inside, and every surface coloured by the tag that built it.

What an agent is shown: four views at one scale, two sections, and faces coloured by tag

It is aimed at small mechanical parts — brackets, flanges, manifolds, heat sinks, the things you print or machine one of. examples/ is twenty-two.

Why not CadQuery, build123d or OpenSCAD

Those are good, and much older. Three differences. Selectors are descriptive and checked — .expect({ count: 4 }) turns a selector that silently started matching three edges into a build error, which is the failure mode that makes code-CAD fragile. What you see, what you measure and what you export come off one exact B-rep, so the preview and the STEP file are one model, not two projects. And measurement is an output rather than something you eyeball, which is what makes the MCP surface real instead of a wrapper.

Install it

With Homebrew, on macOS or Linux (Linux from 0.0.6), which installs the host and no window:

brew tap ierehon1905/parcad
brew trust ierehon1905/parcad
brew install parcad

Then add it to your agent, which starts parcad when it needs it. To use the app yourself, run parcad serve and open http://127.0.0.1:4242 — the whole app is there, in your browser.

On Windows, from 0.0.6, the desktop app through winget:

winget install ParCAD.ParCAD

Nothing on the Homebrew path is quarantined. The same parcad is the headless driver (parcad part.js), and a client of the running host: parcad tools lists what an agent can call over MCP and parcad call <tool> calls it from a shell.

Or the desktop app, from Releases:

platform download
macOS, Apple silicon ParCAD-aarch64-apple-darwin.zip — unzip, drag to Applications
Linux x86_64 .deb or .AppImage
Windows x86_64 .msi or -setup.exe

From the project's README.

Related servers

Read-only discovery for NeuralNg Angular components, APIs, packages, icons and theme recipes.

14 views

MCP server for Geargrafx PC Engine / TurboGrafx-16 emulator

14 views

Plant phenotyping via PlantCV — returns traits plus the segmentation overlay they came from

12 views

Umami v3 MCP for Cloud or self-hosted analytics, with read-only, privacy-conscious defaults.

12 views