KiCad MCP Pro
Review, check, edit and export KiCad schematics and PCBs from an MCP client
Model, inspect, render and export parametric CAD parts and assemblies with the ClassCAD engine
Official · AWV Informatik AG TypeScript Local · stdio Design
60 popularity score ★ 183 ↓ 475/wk
Opens the app, which asks before it adds the server.
claude mcp add classcad -- npx -y @classcad/mcp@latest{
"mcpServers": {
"classcad": {
"command": "npx",
"args": [
"-y",
"@classcad/mcp@latest"
]
}
}
}{
"mcpServers": {
"classcad": {
"command": "npx",
"args": [
"-y",
"@classcad/mcp@latest"
]
}
}
}{
"servers": {
"classcad": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@classcad/mcp@latest"
]
}
}
}[mcp_servers.classcad]
command = "npx"
args = ["-y", "@classcad/mcp@latest"]gemini mcp add --scope user classcad npx -- -y @classcad/mcp@latestOpens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
git clone https://github.com/awv-informatik/classcad-ai.git
cd classcad-ai
npm install
npm run buildclaude mcp add classcad -- node '<ABSOLUTE_PATH_TO_CLONE>/packages/mcp/dist/server.js'{
"mcpServers": {
"classcad": {
"command": "node",
"args": [
"<ABSOLUTE_PATH_TO_CLONE>/packages/mcp/dist/server.js"
]
}
}
}{
"mcpServers": {
"classcad": {
"command": "node",
"args": [
"<ABSOLUTE_PATH_TO_CLONE>/packages/mcp/dist/server.js"
]
}
}
}{
"servers": {
"classcad": {
"type": "stdio",
"command": "node",
"args": [
"<ABSOLUTE_PATH_TO_CLONE>/packages/mcp/dist/server.js"
]
}
}
}[mcp_servers.classcad]
command = "node"
args = ["<ABSOLUTE_PATH_TO_CLONE>/packages/mcp/dist/server.js"]gemini mcp add --scope user classcad node -- '<ABSOLUTE_PATH_TO_CLONE>/packages/mcp/dist/server.js'CLASSCAD_SHARE |
Optional: When a session gets a link usable beyond the machine: always (default), ask, or off. |
|---|---|
CLASSCAD_TOKEN |
Optional: Secret access token (ccsk_…) from classcad.ch/account, in place of the browser sign-in on CI or headless machines. |
CLASSCAD_ENGINE |
Optional: Engine policy: auto (default, worker if reachable else local WASM), drogon, or wasm. |
CLASSCAD_WS_URL |
Optional: WebSocket URL of an optional ClassCAD worker; default ws://localhost:9094/. |
CLASSCAD_VIEWER |
Optional: What the user sees: the app (default), readonly, or off. |
CLASSCAD_VIEWER_OPEN |
Optional: Where the app opens: browser, host, or 0 for nowhere. |
CLASSCAD_SNAPSHOT_DIR |
Optional: Folder for snapshot PNGs when no outDir is given; default <tmpdir>/classcad-snapshots. |
CLASSCAD_RELAY_URL |
Optional: Share relay address; off disables sharing. Default is AWV's Cloudflare relay. |
CLASSCAD_MCP_PORT |
Optional: Daemon port on 127.0.0.1; default 9097. |
ClassCAD MCP is AWV Informatik's server for its ClassCAD CAD engine. The assistant writes JavaScript against the engine's API with `run_script`, and the model persists between scripts, so a part can be built up step by step. Other tools read the feature tree, render PNG views (iso, orthographic, section cuts, four-view sheets, hidden-line drawings), and save or load STEP, STL, GLB and OFB files on disk. A set of documentation tools covers the engine's API methods and recipes, and those work without signing in.
The engine runs on your own machine: the package downloads the published ClassCAD WebAssembly build (about 16 MB) on first use and caches it, or it connects to a `classcad-cli worker` if one is reachable at `CLASSCAD_WS_URL`. Every client tab gets its own session inside one shared background daemon on 127.0.0.1:9097, and each session opens the Buerligons CAD app in a browser so the user can watch and edit the same model; `get_selection` lets the assistant act on what the user clicked.
The package (version 0.4.1) registers 21 tools, more than the README's table makes obvious since several rows group four or five tools. `checkpoint` keeps at most 5 undo points in memory and drops the oldest (tools/lifecycle.ts), and `run_script` waits 60 s by default for a script, up to 300 s with `timeoutMs` (tools/script.ts).
| Runtime | Node.js 20+ |
|---|
Node.js 20 or later with npx. A free classcad.ch account, signed in once per machine through a browser link the server shows on first use (or `CLASSCAD_TOKEN` for unattended machines). Internet access on first use to fetch the engine; afterwards it works offline while the cached key is valid. Commercial use, and exports beyond STL/GLB (STEP, OFB), need a paid ClassCAD plan (Solo, Pro or Business). On native Windows, clients must start it as `cmd /c npx -y @classcad/mcp@latest`.
On the Free plan, `save` and the app export only STL and GLB; STEP, OFB and JSON come with Solo and up, and the Free plan is for private use and evaluation only. Tool calls run one at a time per session (docs lookups excepted), so a snapshot waits for a running script. Checkpoints live in the daemon's memory, at most 5 per session. If the local engine crashes or times out, the next command starts on an empty drawing (checkpoints can restore it). The engine tools refuse to run until the machine is signed in.
Suits engineers and developers who want an assistant to produce real parametric solids they can check numerically and visually and export to other CAD software, with the model kept on their own machine. It writes files and opens a browser app, so it fits a desktop setup better than a headless server (where `CLASSCAD_TOKEN` and `CLASSCAD_VIEWER=off` are needed). Anyone who needs STEP output or commercial use must budget for a paid ClassCAD plan; for sketching or 2D diagrams a design-tool server is a lighter choice.
run_scripttreefindinspectsnapshotlist_methodsdescribe_methoddocsaccountviewshareget_selectionset_selectionsaveloadclearcheckpointrestoreloginsession_infouse_session