cad-mcp
cad-mcp
Un servidor MCP que expone el razonamiento de geometría CAD sobre archivos STEP a LLMs. Suelta un archivo STEP, haz preguntas de geometría en lenguaje natural y obtén respuestas verificables. Construido sobre build123d (respaldado por OCCT) y el SDK de Python para MCP. Se ejecuta localmente con Claude Code.
Instalación
Requiere Python 3.12, arm64 (Apple Silicon) o 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.txtPrueba de funcionamiento de la instalación:
venv/bin/python smoke_test.py # loads bracket.step, checks bbox
venv/bin/python verify_server.py # connects over MCP stdio, calls all toolsEjecución
El servidor se inicia automáticamente cuando Claude Code abre este directorio (se incluye .mcp.json). Para iniciarlo manualmente:
venv/bin/python server.pyPara conectar un archivo STEP diferente, pasa su ruta absoluta en cualquier llamada a la herramienta; no es necesario reiniciar el servidor.
Herramientas
Herramienta | Devuelve |
| Jerarquía de piezas/ensamblajes como un árbol |
| Caja delimitadora (mm) y volumen (mm³) |
| Orificios cilíndricos: posición, diámetro, profundidad (mm) |
| Distancia euclidiana entre puntos de referencia de la pieza (mm) |
| Masa (kg), centro de masa (mm), momentos de inercia (kg·mm²) |
Demostración
Cinco preguntas realizadas sobre fixtures/bracket.step (soporte de aluminio de 100 × 60 × 10 mm, cuatro orificios de paso M5) en Claude Code con el servidor MCP conectado.
¿Es bracket.step una sola pieza o un ensamblaje?
Herramienta: list_assembly_tree
{
"root": {
"type": "part",
"name": "part_root",
"part_id": "root",
"children": []
}
}Pieza única. part_id: "root" se pasa a todas las demás herramientas.
¿Cuáles son las dimensiones generales y el volumen?
Herramienta: 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. El volumen es neto (solo material): bruto menos los cuatro orificios.
¿Cuántos orificios hay y de qué tamaño son?
Herramienta: 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] }
]
}Cuatro orificios pasantes de paso M5 (5,3 mm) en las esquinas, todos normales al plano XY.
¿Cuál es la distancia diagonal espacial de esquina a esquina?
Herramienta: measure_distance con 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. Ambos puntos resueltos se incluyen para su trazabilidad.
¿Masa y centro de masa en aluminio?
Herramienta: get_mass_properties con 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. Centro de masa en el centroide geométrico (0, 0, 5): esperado para un soporte simétrico con orificios simétricos.
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