Skip to main content

Add your description here

Project description

MseeP.ai Security Assessment Badge

FreeCAD MCP

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

Demo

Design a flange

demo

Design a toy car

demo

Design a part from 2D drawing

Input 2D drawing

input

Demo

demo

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

Install addon

FreeCAD Addon directory is

  • 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/
  • Linux:
    • Ubuntu: ~/.FreeCAD/Mod/ or ~/snap/freecad/common/Mod/ (if you install FreeCAD from snap)
    • Debian: ~/.local/share/FreeCAD/Mod
    • Arch / CachyOS (FreeCAD 1.1 from extra/freecad): ~/.local/share/FreeCAD/v1-1/Mod/

Please put addon/FreeCADMCP directory to the addon directory.

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

# For Linux (Ubuntu/Debian)
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 macOS (FreeCAD 1.1)
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.

workbench_list

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

start_rpc_server

Auto-Start RPC Server

By default, the RPC server must be started manually each time FreeCAD opens. To start it automatically:

  1. Open the FreeCAD MCP menu (switch to the MCP Addon workbench first)
  2. Check Auto-Start Server

The setting is saved to freecad_mcp_settings.json and 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 unchecking Auto-Start Server in the same menu.

Setting up Claude Desktop

Pre-installation of the uvx is required.

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

For user.

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

If you want to save token, you can set only_text_feedback to true and use only text feedback.

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

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"
      ]
    }
  }
}

Remote Connections

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

1. Enable remote connections in FreeCAD

In the FreeCAD MCP toolbar:

  1. Check Remote Connections — the RPC server will bind to 0.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 the Allowed IPs field. By default this is 127.0.0.1.

  2. Click Configure Allowed IPs and enter a comma-separated list of IP addresses or CIDR subnets that are allowed to connect, e.g.:

    192.168.1.100, 10.0.0.0/24
    

    127.0.0.1 is 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 --host flag with the IP address or hostname of the machine running FreeCAD:

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

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

Tools

  • 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 the parts 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.
  • run_fem_analysis: Run the CalculiX solver on an existing Fem::FemAnalysis and return summary results (max von Mises stress, max displacement, node count, working directory). Auto-creates a SolverCcxTools if the analysis has none. See examples/cantilever_fem.py for an end-to-end usage example.

Contributors

Made with contrib.rocks.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

freecad_mcp-0.1.19.tar.gz (51.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

freecad_mcp-0.1.19-py3-none-any.whl (14.9 kB view details)

Uploaded Python 3

File details

Details for the file freecad_mcp-0.1.19.tar.gz.

File metadata

  • Download URL: freecad_mcp-0.1.19.tar.gz
  • Upload date:
  • Size: 51.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.15

File hashes

Hashes for freecad_mcp-0.1.19.tar.gz
Algorithm Hash digest
SHA256 08c02777c7ceff2d7011de7457be2fb377e0180e90f967ac7128b9046fb0124a
MD5 17dfa229a485dee8b301f5ba77264808
BLAKE2b-256 466b7640024af2adcc8726918a4fb5297184ba30af6e7b92b8209c3a692e5241

See more details on using hashes here.

File details

Details for the file freecad_mcp-0.1.19-py3-none-any.whl.

File metadata

File hashes

Hashes for freecad_mcp-0.1.19-py3-none-any.whl
Algorithm Hash digest
SHA256 6a6566722510aa4409630eff1ead6905ff50b4bfba104dc6f24a0d85cbfb30c1
MD5 b99d9c400da03a8c092a26dcda0923c6
BLAKE2b-256 82b32d1e9ae82878d8a0931147df83e7c153138cf9d24816810c59ae475a5a0e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page