Skip to main content
Glama
hiromitsdm

cad-mcp

by hiromitsdm

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

Fü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 tools

Ausfü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.py

Um 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

list_assembly_tree

Bauteil-/Baugruppenhierarchie als Baum

get_part_dimensions

Bounding Box (mm) und Volumen (mm³)

find_holes

Zylindrische Bohrungen: Position, Durchmesser, Tiefe (mm)

measure_distance

Euklidischer Abstand zwischen Referenzpunkten des Bauteils (mm)

get_mass_properties

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.

F
license - not found
-
quality - not tested
C
maintenance

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