An MCP (Model Context Protocol) server that enables integration between AI assistants (Claude, GPT, and other MCP-compatible tools) and FreeCAD, allowing AI-assisted development and debugging of 3D…
FreeCAD Robust is an MCP project maintained in the spkane/freecad-addon-robust-mcp-server repository. The maintainer describes its purpose as “An MCP (Model Context Protocol) server that enables integration between AI assistants (Claude, GPT, and other MCP-compatible tools) and FreeCAD, allowing AI-assisted development and debugging…”. Read the project documentation for the complete scope.
The project provides a local client configuration using freecad-mcp. Follow the repository’s build and installation steps before copying it, and replace example paths with the paths on your own computer.
The example declares FREECAD_MODE. Secret-looking values have been replaced with placeholders. Required and optional labels are shown only when the documentation states them.
Project documentation · Repository · Discovery listing. This profile records the public documentation checked on 2026-10-08.
Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.
| Tool | What it does |
|---|---|
| execute_python | Execute arbitrary Python code in FreeCAD's context |
| get_freecad_version | Get FreeCAD version, build date, and Python version |
| get_connection_status | Check MCP bridge connection status and latency |
| get_console_output | Get recent FreeCAD console output (up to N lines) |
| get_mcp_server_environment | Get Robust MCP Server environment (OS, hostname, instance_id) |
| list_documents | List all open documents with metadata |
| get_active_document | Get information about the active document |
| create_document | Create a new FreeCAD document |
| open_document | Open an existing .FCStd file |
| save_document | Save a document to disk |
| close_document | Close a document (with optional save) |
| recompute_document | Force recomputation of all objects |
| create_object | Create a generic FreeCAD object by type ID |
| create_box | Create a Part::Box with length, width, height |
| create_cylinder | Create a Part::Cylinder with radius, height, angle |
| create_sphere | Create a Part::Sphere with radius |
| create_cone | Create a Part::Cone with two radii and height |
| create_torus | Create a Part::Torus (donut) with radii and angles |
| create_wedge | Create a Part::Wedge (tapered box) |
| create_helix | Create a Part::Helix curve for sweeps and threads |
| list_objects | List all objects in a document |
| inspect_object | Get detailed object info (properties, shape, etc.) |
| edit_object | Modify properties of an existing object |
| delete_object | Delete an object from a document |
| set_placement | Set object position and rotation |
| scale_object | Scale an object uniformly or non-uniformly |
| rotate_object | Rotate an object around an axis |
| copy_object | Create a copy of an object |
| mirror_object | Mirror an object across a plane (XY, XZ, YZ) |
| boolean_operation | Fuse, cut, or intersect objects |
| get_selection | Get currently selected objects |
| set_selection | Select specific objects by name |
| clear_selection | Clear all selections |
| create_partdesign_body | Create a PartDesign::Body container |
| create_sketch | Create a sketch on a plane or face |
| add_sketch_rectangle | Add a rectangle to a sketch |
| add_sketch_circle | Add a circle to a sketch |
| add_sketch_line | Add a line (with optional construction flag) |
| add_sketch_arc | Add an arc by center, radius, and angles |
| add_sketch_point | Add a point (useful for hole centers) |
| pad_sketch | Extrude a sketch (additive) |
| pocket_sketch | Cut into solid using a sketch (subtractive) |
| revolution_sketch | Revolve a sketch around an axis (additive) |
| groove_sketch | Revolve a sketch around an axis (subtractive) |
| create_hole | Create parametric holes with optional threading |
| loft_sketches | Create a loft through multiple sketches |
| sweep_sketch | Sweep a profile along a spine path |
| linear_pattern | Create linear pattern of a feature |
| polar_pattern | Create polar/circular pattern of a feature |
| mirrored_feature | Mirror a feature across a plane |
| fillet_edges | Add fillets (rounded edges) |
| chamfer_edges | Add chamfers (beveled edges) |
| get_screenshot | Capture a screenshot of the 3D view |
| set_view_angle | Set camera to standard views (Front, Top, etc.) |
| fit_all | Zoom to fit all objects in view |
| zoom_in | Zoom in by a factor |
| zoom_out | Zoom out by a factor |
| set_camera_position | Set camera position and look-at point |
| set_object_visibility | Show/hide objects |
| set_display_mode | Set display mode (Shaded, Wireframe, etc.) |
| set_object_color | Set object color as RGB values |
| list_workbenches | List available FreeCAD workbenches |
| activate_workbench | Switch to a different workbench |
| undo | Undo the last operation |
| redo | Redo a previously undone operation |
| get_undo_redo_status | Get available undo/redo operations |
| export_step | Export to STEP format (ISO CAD exchange) |
| export_stl | Export to STL format (3D printing) |
| export_3mf | Export to 3MF format (modern 3D printing) |
| export_obj | Export to OBJ format (Wavefront) |
| export_iges | Export to IGES format (older CAD exchange) |
| import_step | Import a STEP file |
| import_stl | Import an STL file as mesh |
| list_macros | List all available FreeCAD macros |
| run_macro | Execute a macro by name |
| create_macro | Create a new macro file |
| read_macro | Read macro source code |
| delete_macro | Delete a user macro |
| create_macro_from_template | Create macro from template (basic, part, etc.) |
| list_parts_library | List parts in FreeCAD's parts library |
| insert_part_from_library | Insert a part from the library |
{
"mcpServers": {
"freecad": {
"command": "freecad-mcp",
"env": {
"FREECAD_MODE": "xmlrpc"
}
}
}
}From the project documentation. Replace placeholders and example paths before connecting.
| Variable | Description | Required |
|---|---|---|
| FREECAD_MODE | Declared in the maintainer’s client configuration. | Check documentation |
Read, search and edit files inside allowed directories with the Model Context Protocol reference Filesystem server.
Retrieve version-aware library documentation and code examples with Context7 MCP, using resolve-library-id and query-docs.
Use Microsoft’s Playwright MCP server to navigate pages, inspect accessibility snapshots, fill forms and capture browser screenshots.
Connect GitHub MCP to repositories, issues and pull requests with GitHub’s hosted service or a locally run server.
Use the Supabase MCP server to inspect database schemas, query project data and retrieve docs through a project-scoped connection.
Search Linear issues and projects, inspect work context and manage updates through Linear’s hosted MCP server with OAuth.