# @classcad/mcp

ClassCAD MCP server: build, verify and export 3D CAD parts and assemblies with the ClassCAD engine, running locally

- **Type:** MCP server
- **Trust:** 85/100 (A), scored on the package rubric
- **Verification:** verified (build provenance)
- **Version:** 0.6.1
- **Author:** io.github.awv-informatik
- **License:** MIT
- **npm:** @classcad/mcp
- **Source:** https://github.com/awv-informatik/classcad-ai
- **Compatible clients:** claude-code, cursor, copilot, gemini (basis: transport)

## Trust

85/100 (A), scored on the package rubric
- Publisher verified: no
- Build provenance: verified attestation
- npm trusted publishing (OIDC): yes
- Install scripts: nothing suspicious found
- Prompt-injection scan: not run
- Obfuscation scan: not run
- Evidence age: 1 day

## Security scan

- **Status:** warnings
- **Scanned:** 2026-10-22T07:30:18.403Z
- **Version scanned:** 0.6.1
- **CVEs:** none found by OSV at scan time

## Tools

20 declared. Statically extracted from the shipped source — a floor on the surface, not a census.
- `account` — The signed-in classcad.ch account: its plan (and until when), whether it allows commercial use, which exports,
- `login` — Sign this machine in to ClassCAD (a free classcad.ch account; Google, GitHub or email). Call it RIGHT AFTER installing the MCP. Not signed in: the first call op
- `list_methods` — Search/list the v1.<domain>.<method> surface. `search` as a string: one BM25-ranked list over method name + summary (whole words),
- `describe_method` — Full documentation for ONE key — prefer docs([...]) to fetch everything you need in a single round;
- `clear` — Empty the drawing (v1.common.clear), to start over in it: a drawing persists between requests, part.create refuses a second root, and anything built on the old 
- `save` — Write the current drawing to a file, or return it as base64. Formats: STP (STEP, exact geometry), STL (triangles), GLB (binary glTF: triangles with colours, for
- `load` — Load a drawing, replacing the current one: from a file on disk (`path`) or from base64-encoded content. Formats: STP (STEP), STL, OFB, JSON.
- `checkpoint` — Save the WHOLE drawing state under a label (in-memory, server-side — cheap and instant).
- `restore` — Replace the drawing with a previously checkpointed state (clear + reload). Without a label,
- `session_info` — Return ClassCAD MCP session status: the drawing's id, the link of the app docked into this session (app) or of the read-only 3D view (viewer), the link the sess
- `use_session`
- `run_script` — Execute JavaScript against the CAD session — THE tool for any build involving computation,
- `view` — The live 3D view of this session's model: returns its link and brings it up in the user's browser. The view follows every change, turns and zooms, has light and
- `share` — A link to this session's app that works from ANYWHERE: for another person, or for the user on another device (the link `view` returns works on this machine only
- `get_selection` — What the user has selected in the app docked into this session: faces, edges and vertices of a body, or objects of the model tree (sketch entities, dimensions, 
- `set_selection` — Selects things in the app docked into this session, so the user sees what you mean: faces, edges or vertices by their `graphicId` (from getGeometryIds, pick res
- `snapshot` — Render the current drawing as an inline PNG (also written to disk: outDir, else $CLASSCAD_SNAPSHOT_DIR, else <tmpdir>/classcad-snapshots).
- `tree` — Return the cached drawing structure tree. Pass refresh=true to force a fresh server fetch first.
- `find` — Search the cached structure tree by class and/or name substring. Returns slim records (id, class, name, parent).
- `inspect` — Return the full record for a single tree node by ID, including members and children.

## Install

**Verdict: install** — No blocking findings and no open coverage gaps — safe to install as configured.
**Config** (claude-code):
```json
"{\n  \"mcpServers\": {\n    \"mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@classcad/mcp\"\n      ]\n    }\n  }\n}"
```

## Blast radius

Contained to moderate — no credential declaration found, from the publisher, the upstream registry, or the README. Known so far: runs on your machine; read-only tool surface.
- Floor 13, ceiling 31 (tier: unknown)
- `unknown` means the floor and ceiling land in different bands — not measured enough to name one. It does not mean low.
- This is impact, not likelihood. A high radius is not a defect: a filesystem server is supposed to write files. It is never part of the trust score.

## Machine-readable views of this entry

- Signed JSON: https://forgeregistry.com/api/v1/packages/%40classcad%2Fmcp
- Install plan: https://forgeregistry.com/api/v1/packages/%40classcad%2Fmcp/install-plan
- Alternatives: https://forgeregistry.com/api/v1/alternatives/%40classcad%2Fmcp
- HTML page: https://forgeregistry.com/registry/%40classcad%2Fmcp
- MCP: POST https://forgeregistry.com/api/mcp → `forge_get_package` / `forge_install_plan`

## About this document

Generated by Forge (https://forgeregistry.com) — a compact rendering of the same record served, signed, at the JSON URL above. Trust and scan facts are the registry's own measurements; anything Forge did not measure is named as unmeasured rather than omitted.
