# cad-mcp-server

STEP file inspection for AI. Measure walls, draft angles, clearances. Returns facts, not guesses.

- **Type:** MCP server
- **Trust:** 85/100 (A), scored on the package rubric
- **Verification:** verified (publisher, @mattmohandiss)
- **Version:** 0.6.1
- **Author:** io.github.mattmohandiss
- **License:** Unknown
- **npm:** cad-mcp-server
- **Source:** https://github.com/mattmohandiss/cad-mcp-server
- **Compatible clients:** claude-code, cursor, copilot, gemini (basis: transport)

## Trust

85/100 (A), scored on the package rubric
- Publisher verified: yes
- 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: 0 days

## Security scan

- **Status:** clean
- **Scanned:** 2026-08-28T18:10:04.390Z
- **Version scanned:** 0.6.1
- **CVEs:** none found by OSV at scan time

## Tools

8 declared. Statically extracted from the shipped source — a floor on the surface, not a census.
- `inspect_step` — Use this FIRST for a compact model overview: dimensions, bounding box, body/face/edge counts, validity, watertight status. Use include[] for bodies, quality, pm
- `find_faces` — Find faces by type, area, radius, normal, quality, or body. Returns IDs, surface types, areas, radii, diameters, axes, normals. Use returned IDs in measure_dist
- `find_edges` — Find edges by curve type, length, radius, or dihedral angle. Returns IDs, curve types, lengths, radii, diameters. Use returned IDs in measure_distance or measur
- `measure_distance` — Measure distance between entity sets. Pass sources[] and targets[] for set-based measurement (e.g. clearance between holes and walls). Use summary="minimum" for
- `measure_thickness` — Measure wall thickness across faces via ray grid sampling. Returns min/max/avg thickness per face. Use direction_mode="normal" (default) or direction_mode="axis
- `measure_draft` — Measure draft angles of faces relative to a pull direction. Returns draft_angle_deg, normal, and undercut flag per face. Positive = good for ejection; negative 
- `measure_geometry` — Ray tests, point analysis, cross-sections, and edge continuity. measurement_type selects the operation: ray, ray_grid, point_analysis, section, or continuity.
- `diff_step` — Compare two STEP files. Returns deltas: volume, surface area, dimensions, face/edge/body counts. Comparison minus baseline.

## Install

**Verdict: install** — No blocking findings and no open coverage gaps — safe to install as configured.
**Config** (claude-code):
```json
"{\n  \"mcpServers\": {\n    \"cad-mcp-server\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"cad-mcp-server\"\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 12, ceiling 30 (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/cad-mcp-server
- Install plan: https://forgeregistry.com/api/v1/packages/cad-mcp-server/install-plan
- Alternatives: https://forgeregistry.com/api/v1/alternatives/cad-mcp-server
- HTML page: https://forgeregistry.com/registry/cad-mcp-server
- 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.
