MCP server for FreeCAD 3D design automation. Exposes tools to validate FreeCAD connection, execute Python macros in real-time, capture 3D views, inspect documents, export parts to STEP/STL, validate STL meshes, and open files in slicers.
FreeCAD MCP server has significant definition quality gaps. Tool names are action-oriented (ping_, run_, screenshot_, list_, get_, export_, validate_, open_) which is good. However, descriptions are inconsistent in quality and length. Most critically, parameter descriptions are sparse or missing entirely. For example, run_macro has only 2 parameters with descriptions, but no output schema documentation. The server exposes dangerous operations (run_macro executes arbitrary Python code) without confirmation patterns or clear risk documentation. No tool has documented return schemas, making it impossible for LLMs to plan downstream operations. Error handling is minimal, no recovery guidance, no categorization of retryable vs fatal errors.
Pide a FreeCAD exportar el objeto activo a STEP y STL.
Retorna información geométrica detallada de un objeto del documento activo.
Lista los objetos del documento activo con su geometría básica.
Abrir archivos en el laminador (BambuStudio/OrcaSlicer).
Comprueba si FreeCAD GUI está corriendo con el servidor RPC activo.
Ejecuta un script o bloque de código en FreeCAD GUI en tiempo real.
Re-ejecuta una macro del repositorio (por ruta) dentro de FreeCAD GUI. Pensado para iterar en tiempo real: cierra los documentos de la ejecución anterior, preserva la cámara y devuelve un resumen geométrico del documento resultante en la misma llamada.
No output schemas documented for any tool. LLMs cannot infer what fields to expect or plan downstream operations. run_macro, run_macro_file, list_objects, get_object_info, screenshot_active_view all return data but schema is invisible.
run_macro accepts arbitrary Python code with no confirmation, dry-run, or sandboxing. This is a critical security and safety issue, agents can delete files, corrupt FreeCAD state, or cause irreversible damage. No error recovery guidance if execution fails.
Parameter descriptions are minimal or missing. run_macro_file has 4 parameters but only 2 have descriptions (macro_path, timeout_sec). reset_documents and keep_camera lack descriptions explaining their purpose and default behavior.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 42 | 2026-07-28+ | v2 |
Captura la vista 3D activa de FreeCAD y la devuelve como imagen PNG.
Valida mallas STL utilizando el script local.
No error handling or recovery guidance. Tools return success/failure but do not explain what went wrong or what the LLM should do next. E.g., if ping_freecad fails, should the agent retry, check FreeCAD status, or restart the RPC server?
Input schemas present but incomplete. Parameters like 'view' in screenshot_active_view declare enum values in description ('current', 'isometric', 'front', etc.) but schema does not enforce them as JSON Schema enum constraint. LLMs may hallucinate invalid values.