cad-mcp
cad-mcp
Ein MCP-Server, der LLMs CAD-Geometrie-Analysen für STEP-Dateien zur Verfügung stellt. Laden Sie eine STEP-Datei hoch, stellen Sie Geometrie-Fragen in natürlicher Sprache und erhalten Sie überprüfbare Antworten. Basiert auf build123d (OCCT-basiert) und dem MCP Python SDK. Läuft lokal mit Claude Code.
Installation
Erfordert Python 3.12, arm64 (Apple Silicon) oder x86-64.
git clone https://github.com/your-org/cad-mcp.git
cd cad-mcp
python3.12 -m venv venv
venv/bin/pip install -r requirements.txtFühren Sie einen Smoke-Test der Installation durch:
venv/bin/python smoke_test.py # loads bracket.step, checks bbox
venv/bin/python verify_server.py # connects over MCP stdio, calls all toolsAusführung
Der Server startet automatisch, wenn Claude Code dieses Verzeichnis öffnet (eine .mcp.json ist enthalten). Um ihn manuell zu starten:
venv/bin/python server.pyUm eine andere STEP-Datei zu verbinden, übergeben Sie deren absoluten Pfad bei jedem Tool-Aufruf – ein Neustart des Servers ist nicht erforderlich.
Tools
Tool | Rückgabe |
| Bauteil-/Baugruppenhierarchie als Baum |
| Bounding Box (mm) und Volumen (mm³) |
| Zylindrische Bohrungen: Position, Durchmesser, Tiefe (mm) |
| Euklidischer Abstand zwischen Referenzpunkten des Bauteils (mm) |
| Masse (kg), Massenschwerpunkt (mm), Trägheitsmomente (kg·mm²) |
Demo
Fünf Fragen zu fixtures/bracket.step (100 × 60 × 10 mm Aluminiumhalterung, vier M5-Durchgangsbohrungen) in Claude Code mit verbundenem MCP-Server.
Ist bracket.step ein Einzelteil oder eine Baugruppe?
Tool: list_assembly_tree
{
"root": {
"type": "part",
"name": "part_root",
"part_id": "root",
"children": []
}
}Einzelteil. part_id: "root" wird an alle anderen Tools übergeben.
Was sind die Gesamtabmessungen und das Volumen?
Tool: get_part_dimensions
{
"part_id": "root",
"bbox_mm": { "x": 100.0, "y": 60.0, "z": 10.0 },
"volume_mm3": 59117.5266
}100 × 60 × 10 mm. Das Volumen ist das Nettovolumen (nur Material) — Brutto abzüglich der vier Bohrungen.
Wie viele Bohrungen und welche Größe?
Tool: find_holes
{
"holes": [
{ "center_x_mm": -42.0, "center_y_mm": -22.0, "center_z_mm": 0.0,
"diameter_mm": 5.3, "depth_mm": 10.0, "axis": [0.0, 0.0, 1.0] },
{ "center_x_mm": 42.0, "center_y_mm": -22.0, "center_z_mm": 0.0,
"diameter_mm": 5.3, "depth_mm": 10.0, "axis": [0.0, 0.0, 1.0] },
{ "center_x_mm": -42.0, "center_y_mm": 22.0, "center_z_mm": 0.0,
"diameter_mm": 5.3, "depth_mm": 10.0, "axis": [0.0, 0.0, 1.0] },
{ "center_x_mm": 42.0, "center_y_mm": 22.0, "center_z_mm": 0.0,
"diameter_mm": 5.3, "depth_mm": 10.0, "axis": [0.0, 0.0, 1.0] }
]
}Vier M5-Durchgangsbohrungen (5,3 mm) an den Ecken, alle senkrecht zur XY-Ebene.
Wie groß ist der Raumdiagonale-Abstand von Ecke zu Ecke?
Tool: measure_distance mit selector_a: "bbox_min", selector_b: "bbox_max"
{
"distance_mm": 117.047,
"point_a": { "part_id": "root", "selector": "bbox_min",
"x_mm": -50.0, "y_mm": -30.0, "z_mm": 0.0 },
"point_b": { "part_id": "root", "selector": "bbox_max",
"x_mm": 50.0, "y_mm": 30.0, "z_mm": 10.0 }
}√(100² + 60² + 10²) = 117,047 mm. Beide aufgelösten Punkte sind zur Nachvollziehbarkeit enthalten.
Masse und Massenschwerpunkt bei Aluminium?
Tool: get_mass_properties mit density_kg_m3: 2700.0
{
"mass_kg": 0.159617,
"volume_mm3": 59117.5266,
"center_of_mass_mm": { "x_mm": 0.0, "y_mm": 0.0, "z_mm": 5.0 },
"moments_of_inertia_kg_mm2": {
"Ixx": 48.772745,
"Iyy": 132.122917,
"Izz": 178.235373
}
}≈ 160 g. Massenschwerpunkt am geometrischen Schwerpunkt (0, 0, 5) — zu erwarten bei einer symmetrischen Halterung mit symmetrischen Bohrungen.
This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hiromitsdm/cad-mcp0'
If you have feedback or need assistance with the MCP directory API, please join our Discord server