freecad mcp
This server allows you to control FreeCAD remotely via Claude Desktop to create and manipulate 3D models and documents. You can:
Create new FreeCAD documents and manage existing ones
Create, edit, and delete various 3D objects (like boxes, cylinders, circles)
Set object properties including dimensions, placement, and color
Execute Python code within the FreeCAD environment
Insert parts from the FreeCAD parts library
Capture screenshots from standard viewpoints (Isometric, Front, Top)
List objects within documents and retrieve their properties
Access the parts library and get available parts list
Allows control of FreeCAD from Claude Desktop, enabling AI agents to interact with and manipulate CAD models and designs programmatically through FreeCAD's functionality.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@freecad mcpcreate a simple flange with 6 bolt holes"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
FreeCAD MCP
This repository is a FreeCAD MCP that allows you to control FreeCAD from Claude Desktop.
Demo
Design a flange

Design a toy car

Design a part from 2D drawing
Input 2D drawing

Demo

This is the conversation history. https://claude.ai/share/7b48fd60-68ba-46fb-bb21-2fbb17399b48
Related MCP server: freecad-mcp
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/ModArch / 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)
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 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.

Auto-Start RPC Server
By default, the RPC server must be started manually each time FreeCAD opens. To start it automatically:
Open the FreeCAD MCP menu (switch to the MCP Addon workbench first)
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"
]
}
}
}Screenshots can also be controlled per tool call instead of globally: every tool that returns a screenshot accepts an optional include_screenshot parameter (pass false to get text-only feedback, e.g. for analytical scripts or intermediate steps) and an optional view_name parameter to orient the screenshot ("Isometric" by default, or "Front", "Top", "Right", etc.). The --only-text-feedback flag always wins: when it is set, no screenshots are returned regardless of include_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"
]
}
}
}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:
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 is127.0.0.1.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/24127.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 --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 existingFem::FemAnalysisand return summary results (max von Mises stress, max displacement, node count, working directory). Auto-creates aSolverCcxToolsif the analysis has none. Seeexamples/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 optional include_screenshot (default true) and view_name (default "Isometric") parameters to suppress or reorient the returned image per call.
Contributors
Made with contrib.rocks.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- Alicense-qualityDmaintenanceA FreeCAD addon that implements the Model Context Protocol (MCP) to enable communication between FreeCAD and Claude AI through Claude Desktop.218MIT
- Alicense-qualityAmaintenanceMCP server to control FreeCAD from Claude — parametric modeling, sketches, CAM toolpaths, geometry inspection, and more via 33 tools.20GNU Lesser General Public v2.1 only
- AlicenseAqualityDmaintenanceEnables to control FreeCAD from Claude Desktop through MCP, allowing CAD operations like creating and editing objects, taking screenshots, and executing Python code.11MIT
- AlicenseAqualityBmaintenanceEnables Claude Desktop to control FreeCAD for 3D CAD modeling, including creating, editing, and deleting objects, executing Python code, and running FEM analyses.14MIT
Related MCP Connectors
Augments MCP Server - A comprehensive framework documentation provider for Claude Code
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to interact with yo…
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/neka-nat/freecad-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server