ClassCAD MCP

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

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Claude CodeTerminal
claude mcp add classcad -- npx -y @classcad/mcp@latest
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "classcad": {
      "command": "npx",
      "args": [
        "-y",
        "@classcad/mcp@latest"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "classcad": {
      "command": "npx",
      "args": [
        "-y",
        "@classcad/mcp@latest"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "classcad": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@classcad/mcp@latest"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.classcad]
command = "npx"
args = ["-y", "@classcad/mcp@latest"]
Gemini CLITerminal
gemini mcp add --scope user classcad npx -- -y @classcad/mcp@latest
Local (from source)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

FirstTerminal
git clone https://github.com/awv-informatik/classcad-ai.git
cd classcad-ai
npm install
npm run build
Claude CodeTerminal
claude mcp add classcad -- node '<ABSOLUTE_PATH_TO_CLONE>/packages/mcp/dist/server.js'
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "classcad": {
      "command": "node",
      "args": [
        "<ABSOLUTE_PATH_TO_CLONE>/packages/mcp/dist/server.js"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "classcad": {
      "command": "node",
      "args": [
        "<ABSOLUTE_PATH_TO_CLONE>/packages/mcp/dist/server.js"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "classcad": {
      "type": "stdio",
      "command": "node",
      "args": [
        "<ABSOLUTE_PATH_TO_CLONE>/packages/mcp/dist/server.js"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.classcad]
command = "node"
args = ["<ABSOLUTE_PATH_TO_CLONE>/packages/mcp/dist/server.js"]
Gemini CLITerminal
gemini mcp add --scope user classcad node -- '<ABSOLUTE_PATH_TO_CLONE>/packages/mcp/dist/server.js'

Settings 9

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.

What it does

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).

What it needs

RuntimeNode.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`.

Limits

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.

Who it suits

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.

Tools 21

run_script
Runs a JavaScript script against the ClassCAD API; the model persists between calls
tree
Returns the model's structure tree
find
Searches tree nodes by class or name
inspect
Shows full detail of one node with its parent chain
snapshot
Renders the model to PNG: standard views, section cuts, four-view sheet, hidden-line drawing
list_methods
Lists the engine's API methods
describe_method
Gives the reference and pitfalls for one API method
docs
Fetches documentation and recipes in bulk
account
Reads the signed-in account's plan and what it permits
view
Returns the session's app link and opens the app
share
Creates or withdraws a link that lets someone on another machine join the session
get_selection
Reads what the user has selected in the app
set_selection
Highlights faces, edges or objects in the app for the user
save
Exports STEP, STL, GLB or OFB to a file path or as base64
load
Opens an OFB, STEP or STL file from disk or base64 into the session
clear
Empties the current drawing
checkpoint
Stores an in-memory undo point under a label
restore
Brings the drawing back to a stored checkpoint
login
Signs the machine in to classcad.ch, or out
session_info
Reports engine, app and share links, participants and sign-in state
use_session
Switches engine or joins another app's session by invite

Similar servers