mrkeyoor.com_
Tue 08 Sept 16:10 UTC
LLM Toolsevaluationupdated 08 Sept 2026

freecad-mcp review

FreeCAD MCP lets an AI client such as Claude Desktop create and inspect models inside the FreeCAD desktop app. A Python server translates the client's requests into FreeCAD operations, so the model can add parts, edit properties, take views, and run scripts without the user clicking through every command.

Verdict

Our 69 MB install passed all 41 tests, but using FreeCAD MCP still means running a desktop GUI that can execute agent-supplied Python with full FreeCAD privileges. It is a good trial for an experienced FreeCAD user who wants faster conversational iteration and will inspect the resulting geometry. Choose scripted CAD for unattended pipelines, and keep this bridge local unless an IP allowlist meets your network policy.

We ran it

Lab card: what happened when we ran freecad-mcpScreenshot of freecad-mcp (github.com/neka-nat/freecad-mcp)
Install✓ · 36s67 packages · 69 MB
Build✓ · 15s
Tests✓ · 20s41 passed · 0 failed of 41 (pytest)
Known vulns0(pip-audit)
Repo51 files~4,629 lines of source · 7.8 MB · 1 CI workflows · tests dir

Answers from our run

Does freecad-mcp build from source?

Dependencies installed in 36 seconds (67 packages), and the build succeeded in 15 seconds. We cloned commit 3da6db5 into a clean Debian container with 3 CPUs and no project-specific setup.

Do freecad-mcp's tests pass?

Yes: 41 of 41 passed when we ran the project's own test command (pytest). Some failures need services or credentials a bare container does not have.

Does freecad-mcp have known vulnerabilities in its dependencies?

pip-audit found none in the dependency tree at the time of our run.

Who should not use freecad-mcp?

Headless or container-only operators: open issue 14 says the bridge currently requires the full FreeCAD GUI, and issue 127 asks for a startup setting that is easier to automate.

What are the alternatives to freecad-mcp?

FreeCAD, CadQuery, OpenSCAD. Our 69 MB install passed all 41 tests, but using FreeCAD MCP still means running a desktop GUI that can execute agent-supplied Python with full FreeCAD privileges.

Setup3/5Tests pass, but setup spans a manual addon and a live GUI
Docs4/5Desktop paths, remote access, tools, and stuck states are explained
Community4/52,101 stars with 34 active issues and pull requests
Maturity3/5Core bridge works; headless use and typed STEP tools remain open

Who it’s for

FreeCAD users who want an AI assistant to build, inspect, and revise models inside a visible desktop session.
Developers prototyping agent-driven CAD flows who can review every geometry change before saving or exporting.
MCP client users willing to install both a FreeCAD workbench addon and a separate Python server.
Engineers who want scripted access to FreeCAD objects and can write Python when a typed tool is missing.

Who it’s NOT for

Headless or container-only operators: open issue 14 says the bridge currently requires the full FreeCAD GUI, and issue 127 asks for a startup setting that is easier to automate.
Security teams that cannot allow model-supplied code inside a desktop process: the README says execute_code has FreeCAD's full privileges.
Remote deployments that require credential-based RPC authentication: the documented remote control is an IP or CIDR allowlist after binding to 0.0.0.0.
Industrial STEP pipelines that require dedicated, typed import and export operations: issue 66 says those jobs still need custom execute_code snippets.
Users expecting a one-click FreeCAD Addon Manager install: the README requires copying the addon directory by hand, and issue 104 requests the missing package metadata.

Setup reality

Our sandbox install succeeded in 36 seconds, adding 67 packages and using 69 MB on disk. The build passed in 15 seconds. Pytest then passed all 41 tests in 20 seconds, and pip-audit found 0 known vulnerabilities.

Actual use needs FreeCAD, a manually copied workbench addon, an application restart, and an MCP client configured to launch uvx freecad-mcp. The user must start the RPC server from FreeCAD or enable its saved auto-start setting. The repository itself asks for no service credential, though the chosen AI client may.

Python 3.12 or newer is required for the MCP package. A full FreeCAD GUI must stay open, screenshot responses consume model context unless disabled, and remote mode binds to all interfaces behind an IP or CIDR allowlist. FEM runs also need CalculiX. There is no Dockerfile, and headless support remains an open request.

The agent gets 12 FreeCAD tools through one desktop bridge

The published tool list has 12 entries covering documents, objects, screenshots, the parts library, status checks, arbitrary Python, and a CalculiX analysis helper. The MCP process talks to an RPC server loaded by the FreeCAD addon, while modelling work is dispatched onto the application's GUI thread. That arrangement gives an AI client access to the document the user can see. It also keeps FreeCAD itself in the loop, so this is an interactive desktop bridge rather than a separate CAD engine.

The screenshots are useful because an agent can inspect an isometric, front, top, or right view after a change. Every screenshot-capable call also accepts include_screenshot=false, and --only-text-feedback turns images off for the whole session. That choice matters during a long modelling conversation: repeated views consume context even when the operation was only analytical. Text feedback is cheaper, while visual feedback gives the model a chance to notice an obvious shape or orientation error.

Setup needs 2 installs and a running FreeCAD desktop

Installation has 2 moving pieces. The addon/FreeCADMCP directory must be copied into FreeCAD's user addon directory, then FreeCAD must restart before the MCP Addon workbench appears. From that toolbar, the user starts the RPC server or saves an auto-start preference. Separately, Claude Desktop or another MCP client launches the Python side with uvx freecad-mcp. A source checkout can be run with uv when developing the bridge.

Paths differ by platform and FreeCAD version. The README distinguishes FreeCAD 1.0 and 1.1 locations on macOS and Linux, with separate instructions for Snap, Flatpak, Debian, and Arch installs. The Python package requires 3.12 or newer. There is no Addon Manager route in the documented setup, and open issue 104 asks for the package metadata needed to add one. A fresh Windows 1.1 path correction also remains open in issue 116.

What happened when we ran it

Our sandbox installed commit 3da6db5 in 36 seconds, pulling 67 packages and occupying 69 MB. The build completed in 15 seconds. We used a fresh unprivileged Debian container with 3 CPUs, 8 GB of RAM, no secrets, and a Python 3.12 uv image. Those numbers cover the repository package and build. They do not include installing the FreeCAD desktop application, CalculiX, or a model provider.

Pytest passed 41 of 41 tests in 20 seconds. Pip-audit reported 0 known vulnerabilities in the installed Python packages. The 7.8 MB checkout contained 51 files and roughly 4,629 lines of source, with a tests directory and 1 CI workflow. There was no Dockerfile. This is a convincing baseline for a small bridge, although a container test cannot prove that every FreeCAD workbench object behaves correctly inside a live GUI.

Full-privilege Python is the trust boundary

execute_code can reach FreeCAD and FreeCADGui aliases, and variables persist between calls. The README states plainly that this code has FreeCAD's full privileges. That opens operations beyond the typed tools, including workflows the server has not formalized. It also means a mistaken or hostile model response can modify documents, access whatever the desktop process can access, or leave an object in a bad state. Review generated scripts and work on copies of valuable CAD files.

Remote mode raises the exposure. Local RPC listens on localhost by default; enabling remote connections switches the listener to 0.0.0.0 and filters callers through specified IP addresses or CIDR ranges. 127.0.0.1 is the default allowed address. The documented control is network location, with no RPC token or user login described. Keep it on a trusted network, narrow the allowlist, and avoid forwarding the port to the public internet.

Headless use and typed STEP operations remain unfinished

Open issue 14 says the current addon requires the full FreeCAD GUI and asks for headless support. Issue 127 describes a related automation snag: RPC auto-start is saved in a FreeCAD user settings file and must first be enabled through the interface. That is workable on a personal workstation. It is awkward for disposable containers, scheduled jobs, or remote workers where nobody should click a toolbar after launch.

Industrial exchange formats also expose the gap between general code execution and stable tools. Issue 66 reports successful STEP work through custom Python, but asks for dedicated import, export, solid metrics, and view-saving calls after a larger import exceeded a 120-second client timeout. The built-in FEM helper is narrower: it runs CalculiX on an existing analysis and returns stress, displacement, node count, and a working directory. Teams still need their own geometry checks and file workflow.

September code activity is current, with no GitHub release

GitHub recorded the last push on September 5, 2026, at the same commit we tested. The repository had 2,101 stars and 34 combined open issues and pull requests when fetched. A separate search split that queue into 12 issues and 22 pull requests. Issue 127 was opened on September 2, and pull request 130 followed on September 5, so both user reports and proposed changes were active near the latest push.

The latest-release API returned no published GitHub release, while pyproject.toml identifies the package as version 0.1.22. That makes commit pinning more useful than relying on a GitHub release page. The passing 41-test run supports trying the exact revision, but the GUI requirement and unrestricted Python path keep this out of unattended production by default. For a FreeCAD expert sitting in front of the model, those tradeoffs are much easier to accept.

Alternatives

ProjectWhat it isPick it when
FreeCAD gh↗The full parametric CAD application, with Python macros and a console for direct automation.pick this instead when deterministic macros and manual review matter more than natural-language control.
CadQueryA Python framework for building parametric CAD models as code on top of OCCT.pick this instead when models should live as reviewable Python rather than agent-issued desktop commands.
OpenSCADA script-based solid modeller centered on reproducible source files.pick this instead when a small declarative model is easier to maintain than a FreeCAD document.
Blender MCP gh↗An MCP bridge that lets language models operate Blender for 3D content work.pick this instead when the job is visual 3D creation rather than engineering CAD.

What people are saying

  1. [github-trending] neka-nat/freecad-mcp

Sources

  1. FreeCAD MCP README at commit 3da6db5
  2. FreeCAD MCP package metadata
  3. Headless FreeCAD request
  4. RPC auto-start automation request
  5. STEP workflow tool request
  6. FreeCAD Addon Manager metadata request
  7. Windows FreeCAD 1.1 path report

More llm tools reviews

gpt4free · openai-agents-python · notfair-plugin · chat-on-steroids · my-free-code · claude-cookbooks · the whole board →