diff_step
Compare two STEP files. Returns deltas: volume, surface area, dimensions, face/edge/body counts. Comparison minus baseline.
Inspect, measure and compare STEP files locally — dimensions, wall thickness, draft angles, clearances and revision diffs.
LABSCO SUMMARY
The measurements come from Open CASCADE rather than from a model's impression of the shape, which is the difference between a design review and a guess. It is read-only by construction — it will report the wall thickness face by face and flag the undercut, and leave changing it to you.
An MCP server that reads STEP files with the Open CASCADE kernel on your own machine. It answers geometry questions with measurements rather than estimates — bounding box and volume, face and edge queries, thickness and draft, clearance between entity sets — and it never modifies the model. No CAD licence and no cloud upload.
Node.js 24 or newer and a STEP file exported from SolidWorks, FreeCAD, Fusion 360, CATIA or any other CAD system. Clients run npx -y cad-mcp-server over stdio. The OCCT kernel is bundled, so there is no CAD software, licence, Docker or cloud API involved, and the files stay on your machine.
One command — npx -y cad-mcp-server
USE CASES
Get the overview, then check wall thickness and draft angles against the pull direction and flag undercuts.
Find the holes and the walls as entity sets and measure the closest pair between them.
Query the cylindrical faces by radius and axis, then run a ray test to tell blind from through.
Diff the STEP files and read the deltas in volume, dimensions and feature counts.
Query the edges by curve type and radius and read the minimum.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
diff_stepCompare two STEP files. Returns deltas: volume, surface area, dimensions, face/edge/body counts. Comparison minus baseline.
find_edgesFind edges by curve type, length, radius, or dihedral angle. Returns IDs, curve types, lengths, radii, diameters. Use returned IDs in measure_distance or measure_geometry.
find_facesFind faces by type, area, radius, normal, quality, or body. Returns IDs, surface types, areas, radii, diameters, axes, normals. Use returned IDs in measure_distance, measure_thickness, measure_draft, or measure_geometry.
inspect_stepUse this FIRST for a compact model overview: dimensions, bounding box, body/face/edge counts, validity, watertight status. Use include[] for bodies, quality, pmi, inertia, or topology detail.
measure_distanceMeasure distance between entity sets. Pass sources[] and targets[] for set-based measurement (e.g. clearance between holes and walls). Use summary="minimum" for the closest pair only.
measure_draftMeasure draft angles of faces relative to a pull direction. Returns draft_angle_deg, normal, and undercut flag per face. Positive = good for ejection; negative = undercut.
measure_geometryRay tests, point analysis, cross-sections, and edge continuity. measurement_type selects the operation: ray, ray_grid, point_analysis, section, or continuity.
measure_thicknessMeasure wall thickness across faces via ray grid sampling. Returns min/max/avg thickness per face. Use direction_mode="normal" (default) or direction_mode="axis".
BEFORE YOU INSTALL
8 tools when we connected.
CONTEXT COST
Rated by the size of the 8 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
Add the block to your client, or run the command directly.
{
"mcpServers": {
"cad-mcp-server": {
"command": "npx",
"args": [
"-y",
"cad-mcp-server"
]
}
}
}npx -y cad-mcp-server