Model or dataset
neka-nat/freecad-mcp avatar
neka-nat/freecad-mcp

freecad-mcp: Driving FreeCAD from an MCP Client Through an RPC Addon

FreeCAD MCP(Model Context Protocol) server

2,344 stars293 forksPythonMIT

At a glance

What is it?
A two-part bridge that lets Claude Desktop and other MCP clients create models, run Python scripts and run FEM analyses inside a live FreeCAD session. The split between an in-FreeCAD addon and a uvx-launched server is the design decision that shapes everything else.
Who is it for?
Adopt freecad-mcp if you already run FreeCAD interactively and want an MCP client to drive modelling, script execution or FEM work in that same session; the addon-inside-FreeCAD design is what makes that possible. Do not adopt it if you need headless batch CAD with no GUI process, or if you cannot install the addon into FreeCAD's addon directory.
Can I use it commercially?
Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
Is it still maintained?
Yes. The repository last received commits 5 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on September 15, 2026, and from our analysis. They are not legal advice.

DEEP OPEN-SOURCE ANALYSIS

The problem freecad-mcp addresses: an agent that cannot touch the CAD session

Most code-generation assistants can write a FreeCAD Python snippet. None of them can see whether the resulting solid is valid, whether a fillet collapsed an edge, or what documents are already open. The gap is not code generation, it is feedback. freecad-mcp closes that gap by exposing a running FreeCAD instance to an MCP client, so the client can create and edit models, run Python scripts, inspect documents and run FEM analyses against the live session. The intended user is someone who already works in FreeCAD's GUI and wants an assistant to operate it, not someone looking for a standalone CAD library. That distinction matters because the whole architecture assumes FreeCAD is open and reachable.

Two components, one localhost RPC channel

The README describes freecad-mcp as two components: an addon that runs inside FreeCAD and an MCP server launched by the client. The addon lives in addon/FreeCADMCP and, once copied into FreeCAD's addon directory, adds an MCP Addon workbench with a FreeCAD MCP toolbar and a Start RPC Server button. That button is what opens the RPC endpoint the server talks to. The MCP server itself is a Python package invoked through uvx, so the client starts it as a subprocess and it connects back to the RPC server in FreeCAD. Connections default to localhost. The data flow is therefore client to MCP server to RPC endpoint to the FreeCAD process, with FreeCAD as the thing that actually executes geometry operations. Nothing in the README suggests the server embeds a geometry kernel of its own, which is why FreeCAD must stay open with the RPC server running for any of this to work.

Getting it running: clone, copy, start, configure

The quick start assumes FreeCAD and uv or uvx are already installed. First clone the repository, then copy the addon into FreeCAD's addon directory and restart FreeCAD:

git clone https://github.com/neka-nat/freecad-mcp.git cd freecad-mcp

After the restart, select the MCP Addon workbench and click Start RPC Server in the FreeCAD MCP toolbar. On the client side, add an entry to claude_desktop_config.json:

{ "mcpServers": { "freecad": { "command": "uvx", "args": ["freecad-mcp"] } } }

Restart Claude Desktop, keep FreeCAD open with its RPC server running, and ask Claude to create a model. The README points to docs/installation.md for platform-specific addon directory commands and screenshots, and to docs/configuration.md for auto-start, text feedback and remote connections. Those three configuration areas are worth reading before you go further: auto-start removes the manual button click, and the remote connection option implies the localhost default is a setting rather than a hard constraint.

What the tools actually cover, including FEM

The README lists four capabilities: create and edit models, run Python scripts, inspect documents, and run FEM analyses. Code execution is documented separately in docs/execution.md, which the README says covers GUI execution, background jobs, headless scripts and timeout troubleshooting. That page is the one to read closely, because the distinction between GUI execution and background jobs determines whether a long-running script blocks the session or returns control. The FEM support is the least conventional part of the tool set: most MCP integrations stop at file manipulation, and running an analysis means driving FreeCAD's own FEM workbench rather than shelling out to a solver. The README does not state which solver backends are supported, so treat the FEM claim as scoped to whatever FreeCAD's FEM workbench offers in your installation.

The live-session dependency is also the main limitation

Because the addon runs inside FreeCAD and the server connects over RPC, every operation requires an interactive FreeCAD process with the RPC server started. There is no documented mode in the supplied material for driving FreeCAD without that process, and the README's own instruction to keep FreeCAD open with its RPC server running is not a suggestion. If your workflow is batch geometry generation on a build machine, or you want CAD operations to survive a crash of the desktop session, this is the wrong tool. The execution documentation mentions headless scripts, so some form of non-GUI execution exists, but the README does not explain how that interacts with the RPC requirement, and I cannot confirm it from the material. A second constraint is installation: the addon must be copied into FreeCAD's addon directory, which is a manual step with platform-specific paths. Anyone expecting a pip install to be sufficient will be disappointed. There are also no releases retrieved for this repository, so versioning is whatever the main branch contains at the time you clone it.

Where it sits against a plain Python scripting setup

The obvious alternative is skipping MCP entirely and writing FreeCAD Python scripts that you run yourself, either through the GUI's macro editor or from the command line. That approach has no addon to install and no RPC server to keep alive, and it works in CI. The difference is the feedback loop. A script run by hand returns whatever it prints; freecad-mcp exposes the document state back to the model, which is what lets a client inspect a document before deciding what to change next. If your tasks are fixed and repeatable, scripts are simpler and more portable. If the task is exploratory and you want the assistant to look at the model between steps, the RPC round trip is the feature you are paying for. The README also notes ADK and LangChain integrations in docs/examples.md, which suggests the MCP server is not tied to Claude Desktop alone, though the quick start only documents the Claude Desktop configuration.

Maintenance, licensing and what to check before committing

The project is MIT licensed, which permits commercial use and modification provided the licence notice is preserved; that is a description of the licence text, not legal advice, and you should read the LICENSE file in the repository yourself. The repository is not archived and the last push recorded is 2026-09-10, so the main branch is active, but no releases were retrieved, which means there is no tagged version to pin to. Pinning to a commit hash is the safer choice if you depend on it. Maintenance cost concentrates in two places: the addon has to be reinstalled when you upgrade FreeCAD if the addon directory changes, and the MCP server runs through uvx, so client-side updates follow whatever the package index serves rather than a version you control in the config. Before adopting, confirm three things in order: that the addon loads and the MCP Addon workbench appears after restart, that Start RPC Server establishes a connection the server can reach on localhost, and that a trivial request such as creating a box returns a result in your client. If the second step fails, nothing downstream will work, and the troubleshooting material lives in docs/execution.md rather than the README.

Editorial conclusion

Adopt freecad-mcp if you already run FreeCAD interactively and want an MCP client to drive modelling, script execution or FEM work in that same session; the addon-inside-FreeCAD design is what makes that possible. Do not adopt it if you need headless batch CAD with no GUI process, or if you cannot install the addon into FreeCAD's addon directory. Verify first that your FreeCAD installation accepts the addon under addon/FreeCADMCP, that the MCP Addon workbench appears and its Start RPC Server button connects, and that your client launches uvx freecad-mcp before you change any client configuration beyond claude_desktop_config.json.

Official sources

  1. Issues
  2. License: MIT
  3. neka-nat/freecad-mcp on GitHub
  4. README
Community notes

Community notes