FreeCAD MCP

by neka-nat

1.3k stars
2.5k downloads
Not rated
GitHub

About

A server to interact with FreeCAD models using the Model Context Protocol (MCP).

Details

Author
neka-nat
GitHub stars
1,254
Downloads
2,530
Categories
Developer Tools, Other

- Create, edit, and delete FreeCAD objects via natural language
- Execute arbitrary Python code in FreeCAD’s environment
- Insert parts from the FreeCAD parts library
- Capture screenshots of the active 3D view
- Run CalculiX FEM analysis and retrieve summary results
- Support for remote connections over a network
- Auto-start RPC server on FreeCAD launch

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name FreeCAD MCP
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install the FreeCAD MCP addon by copying the addon/FreeCADMCP directory to your FreeCAD Mod folder (paths differ by OS). Then restart FreeCAD, switch to the “MCP Addon” workbench, and click “Start RPC Server” in the toolbar. Configure Claude Desktop by editing claude_desktop_config.json to use uvx freecad-mcp as the MCP server command. Optionally enable auto-start of the RPC server via the FreeCAD MCP menu, or set up remote connections with --host and allowed IPs.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

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

McpServers

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

This repository is a FreeCAD MCP that allows you to control FreeCAD from Claude Desktop.

This is the conversation history.https://claude.ai/share/7b48fd60-68ba-46fb-bb21-2fbb17399b48

- Windows:%APPDATA%\FreeCAD\Mod\
- Mac:

- FreeCAD 1.1:~/Library/Application\ Support/FreeCAD/v1-1/Mod/
- FreeCAD 1.0:~/Library/Application\ Support/FreeCAD/v1-0/Mod/

- Ubuntu:~/.FreeCAD/Mod/or~/snap/freecad/common/Mod/(if you install FreeCAD from snap)
- Debian:~/.local/share/FreeCAD/Mod
- Arch / CachyOS (FreeCAD 1.1 fromextra/freecad):~/.local/share/FreeCAD/v1-1/Mod/
- Flatpak:~/.var/app/org.freecad.FreeCAD/data/FreeCAD/v1-1/Mod/

Please putaddon/FreeCADMCPdirectory to the addon directory.

git clone https://github.com/neka-nat/freecad-mcp.git cd freecad-mcp # For Linux (Ubuntu/Debian) mkdir -p ~/.FreeCAD/Mod/ cp -r addon/FreeCADMCP ~/.FreeCAD/Mod/ # For Linux (Arch/CachyOS, FreeCAD 1.1 from extra/freecad) mkdir -p ~/.local/share/FreeCAD/v1-1/Mod/ cp -r addon/FreeCADMCP ~/.local/share/FreeCAD/v1-1/Mod/ # For Linux (Flatpak) mkdir -p ~/.var/app/org.freecad.FreeCAD/data/FreeCAD/v1-1/Mod/ cp -r addon/FreeCADMCP ~/.var/app/org.freecad.FreeCAD/data/FreeCAD/v1-1/Mod/ # For macOS (FreeCAD 1.1) mkdir -p ~/Library/Application\ Support/FreeCAD/v1-1/Mod/ cp -r addon/FreeCADMCP ~/Library/Application\ Support/FreeCAD/v1-1/Mod/

When you install addon, you need to restart FreeCAD. You can select "MCP Addon" from Workbench list and use it.

And you can start RPC server by "Start RPC Server" command in "FreeCAD MCP" toolbar.

By default, the RPC server must be started manually each time FreeCAD opens. To start it automatically:
- Open theFreeCAD MCPmenu (switch to the MCP Addon workbench first)
- CheckAuto-Start Server

The setting is saved tofreecad_mcp_settings.jsonand persists across sessions. On the next FreeCAD launch, the RPC server will start automatically once the application finishes loading.

You can disable it at any time by uncheckingAuto-Start Serverin the same menu.

Pre-installation of theuvxis required.

And you need to edit Claude Desktop config file,claude_desktop_config.json.

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

If you want to save token, you can setonly_text_feedbacktotrueand use only text feedback.

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

Screenshots can also be controlled per tool call instead of globally: every tool that returns a screenshot accepts an optionalinclude_screenshotparameter (passfalseto get text-only feedback, e.g. for analytical scripts or intermediate steps) and an optionalview_nameparameter to orient the screenshot ("Isometric" by default, or "Front", "Top", "Right", etc.). The--only-text-feedbackflag always wins: when it is set, no screenshots are returned regardless ofinclude_screenshot.

For developer. First, you need clone this repository.

git clone https://github.com/neka-nat/freecad-mcp.git
{ "mcpServers": { "freecad": { "command": "uv", "args": [ "--directory", "/path/to/freecad-mcp/", "run", "freecad-mcp" ] } } }

By default the RPC server does not accept remote connections and listens onlocalhost. To control FreeCAD from another machine on your network:
-

CheckRemote Connections— the RPC server will bind to0.0.0.0(all interfaces) on the next restart. For security reasons, it only accepts connections from the IP addresses or CIDR subnets specified in theAllowed IPsfield. By default this is127.0.0.1.

ClickConfigure Allowed IPsand enter a comma-separated list of IP addresses or CIDR subnets that are allowed to connect, e.g.:

127.0.0.1is always the default. Invalid entries are rejected with an error dialog. Restart the RPC server after changing these settings.

2. Point the MCP server at the remote host

Pass the--hostflag with the IP address or hostname of the machine running FreeCAD:

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

The--hostvalue is validated on startup — it must be a valid IPv4/IPv6 address or hostname.

- create_document: Create a new document in FreeCAD.
- create_object: Create a new object in FreeCAD.
- edit_object: Edit an object in FreeCAD.
- delete_object: Delete an object in FreeCAD.
- execute_code: Execute arbitrary Python code in FreeCAD.
- insert_part_from_library: Insert a part from theparts library.
- get_view: Get a screenshot of the active view.
- get_objects: Get all objects in a document.
- get_object: Get an object in a document.
- get_parts_list: Get the list of parts in the
parts library.
- get_rpc_status: Report RPC and GUI-dispatch health without using the FreeCAD GUI thread.
- run_fem_analysis: Run the CalculiX solver on an existingFem::FemAnalysisand return summary results (max von Mises stress, max displacement, node count, working directory). Auto-creates aSolverCcxToolsif the analysis has none. See
examples/cantilever_fem.pyfor an end-to-end usage example.

Tools that return a screenshot (create_object,edit_object,delete_object,execute_code,insert_part_from_library,get_objects,get_object,run_fem_analysis) accept optionalinclude_screenshot(defaulttrue) andview_name(default"Isometric") parameters to suppress or reorient the returned image per call.

If a GUI-thread operation exceeds its timeout after it has started, the bridge returnsGUI_DISPATCH_STUCKand rejects later GUI operations immediately. Useget_rpc_statusto identify the operation that is still running. FreeCAD GUI work cannot be force-cancelled safely; if the status does not return tohealthyafter the operation finishes, restart FreeCAD.

After anexecute_codeexception on a FreeCAD development build, inspect any newFeaturePythonobject before mutating or deleting it. In particular, do not continue with an object whose requiredProxywas never installed, as touching that broken object can wedge FreeCAD's GUI thread.

This is a web browser that enables your coding agent, such as Claude Code, to visit websites on your behalf and assist you in identifying bugs or creating UI test cases.

Create crafted UI components inspired by the best 21st.dev design engineers.

Bring agent evaluations, observability, and synthetic test set generation directly into your IDE for free with Galileo's new MCP server

An MCP server to help AI assistants to answer questions and generate AccelByte Extend SDK code more effectively .

MCP server for AI Diagram Maker — generate beautiful software engineering diagrams directly inside Cursor, Claude Desktop, Claude Code, or any MCP-compatible AI agent

ALAPI MCP Tools,Call hundreds of API interfaces via MCP

AI-powered SVG animation generator that transforms static files into animated SVG components using the Allyson platform

MCP server that gives AI assistants on-demand access to 1,500+ amCharts docs, ~300 code examples, and 1000+ class API references.

APIMatic MCP Server is used to validate OpenAPI specifications using APIMatic. The server processes OpenAPI files and returns validation summaries by leveraging APIMatic’s API.

One shared context layer for AI agents and humans — live API specs, DB schemas, and versioned contracts across repos so every agent and teammate works from the same source of truth.

Build and deploy full-stack Next.js apps with 98 tools for React, AWS, and MongoDB

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.