What it takes off you is the translation step: a shape described in words becomes a typed FreeCAD object with its properties set, and the screenshot that comes back means the next instruction is given against what is actually on screen. The escape hatch is real Python inside FreeCAD, so anything the typed calls do not cover is still reachable — with a background variant for work that would otherwise block the GUI.
A control surface for a running FreeCAD session. An addon inside FreeCAD exposes an RPC server; this server talks to it, so objects are created and edited by name inside a named document, and most calls return a screenshot of the result so the model sees what it just changed.
- A new document, the list of open documents, and a reload that picks up edits made to the file outside the GUI process
- An object created by FreeCAD type — Part, Draft, PartDesign or Fem — with its properties set at creation
- Property edits on an existing object, and deletion of one
- The objects in a document, or one object's properties, so the model can see what it can change
- A screenshot of the active view, oriented by name — Isometric by default, or Front, Top, Right and the rest — and optionally suppressed per call
- A part inserted from the parts library addon by its relative path, and the list of what that library holds
- Arbitrary Python executed inside FreeCAD, and a second variant that runs in the background for long computations that touch neither the GUI nor the document tree
- A CalculiX run on an existing analysis container, returning max von Mises stress, max displacement, node count and the working directory
- A text-only mode, --only-text-feedback, when the screenshots are costing more context than they are worth
Uv, and FreeCAD open with its GUI. Copy the addon's FreeCADMCP directory into FreeCAD's Mod folder, restart FreeCAD, switch to the MCP Addon workbench and click Start RPC Server — nothing connects until that server is running, and Auto-Start Server in the same menu makes it come up on its own. To drive FreeCAD on another machine, tick Remote Connections, list the callers under Allowed IPs, and pass --host. `insert_part_from_library` needs the parts library addon installed, and `run_fem_analysis` needs the document to already hold the solid, the analysis container, an assigned material and a mesh.
One command — uvx freecad-mcp
