Returning a view by default is what makes CAD workable through a text channel at all — you see the box you just made, from the orientation you asked for, and turn the screenshots off for intermediate steps. Beneath the object tools sits arbitrary Python inside the running application, which puts the whole FreeCAD API within reach when the create and edit calls cannot express what you want. The FEM path is the one place the server expects homework done first: the analysis container, material and mesh have to exist before a solve.
A server that drives a running FreeCAD: it creates and edits objects in open documents, executes Python inside the application, and returns a rendered view of the model with each change.
- Documents created, listed, and reloaded from disk when something outside the GUI — a headless freecadcmd script, for instance — has edited the .FCStd file
- Objects created, edited and deleted by type, covering the Part::, Draft::, PartDesign:: and Fem:: families, with properties supplied at creation
- A screenshot of the model returned with each change by default, from a named view: Isometric, Front, Top, Right, Back, Left, Bottom, Dimetric or Trimetric
- Include_screenshot=False on any of those calls when the step is intermediate and the picture is not worth the tokens
- Python executed inside FreeCAD, either inline or on a background thread for long computations that touch neither the GUI nor the document tree
- The parts library addon listed and a part inserted from it by relative path
- A CalculiX solve run over an existing analysis container, returning summary results
FreeCAD installed and open, since every tool acts on its documents and returns views of its viewport. The bridge lives inside FreeCAD: put the freecad_mcp directory in FreeCAD's Mod folder — %APPDATA%/FreeCAD/Mod on Windows, ~/.FreeCAD/Mod on Linux, ~/Library/Preferences/FreeCAD/Mod on macOS — then restart FreeCAD and select the FreeCAD MCP workbench. Inserting from the library needs the parts library addon installed. A solve expects the document to already hold a Part-derived solid, an analysis container, an assigned material and a mesh, plus CalculiX to run it. MIT.
One command — uvx freecad-mcp
