Server facts
FreeCAD MCP
Project
- Author
- neka-nat
- Repository
- github.com/neka-nat/freecad-mcp
- License
- MIT
- Category
- Design & Creative
Tech
- Runtime / language
- pythonPython
- Transports
- stdio
- Remote available
- No
- Authentication
- Not specified
Activity
- GitHub stars
- 2,903
- Last commit
- Data as of
Tags
- Cad Modeling
- Finite Element Analysis
- Freecad
- Python Automation
Overview
FreeCAD MCP connects Claude Desktop to FreeCAD for creating, changing, and inspecting CAD documents and objects. Its tools include document creation, object editing and deletion, part-library lookup and insertion, and screenshots of the active view. It also exposes arbitrary Python execution inside FreeCAD, giving an assistant access beyond the narrowly named object operations. Demonstrations in the README show a flange, a toy car, and a part produced from a two-dimensional drawing, illustrating the modeling workflows the integration is intended to support.
Installation has two parts: copy the FreeCADMCP addon into the platform's FreeCAD addon directory, then configure the Python MCP process with uvx. After restarting FreeCAD, users select the MCP Addon workbench and start its RPC server. An optional setting persists automatic RPC startup for later sessions. Text-only feedback is available to reduce token use when visual responses are unnecessary. The addon listens locally by default; remote control requires enabling network connections, configuring permitted IP addresses or CIDR ranges, and pointing the MCP process at the remote host. The catalog also includes running CalculiX on an existing FEM analysis and returning stress, displacement, and node-count summaries. This is not a standalone CAD service: an installed addon and reachable FreeCAD RPC session are prerequisites for the assistant's modeling actions.
Install & configure
Requirements
- FreeCAD
- The FreeCADMCP addon installed in the appropriate addon directory
- uvx
- Claude Desktop for the documented client setup
uvx freecad-mcpRestart FreeCAD after installing the addon, choose the MCP Addon workbench, and start its RPC server. --only-text-feedback disables visual feedback. Remote RPC access requires explicit enablement and allowed IPs.
Examples are translated from the published configuration. Supply your own credentials and verify requirements in the upstream README. Remote connectors are shown only where a supported configuration format is known.
Config file · macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
Use Settings → Developer → Edit Config when available. Do not assume a Linux configuration path; check the client documentation for your platform. Remote servers use the app’s connector flow when supported, not the local stdio file shown here. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"freecad-mcp": {
"command": "uvx",
"args": [
"freecad-mcp"
],
"env": {}
}
}
}Config file · Project: .cursor/mcp.json
User: ~/.cursor/mcp.json
The project path is relative to the workspace root. The tilde denotes your user home directory. Use Cursor’s MCP settings to confirm which configuration and scope your installed version is reading. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"freecad-mcp": {
"command": "uvx",
"args": [
"freecad-mcp"
],
"env": {}
}
}
}Config file · Workspace: .vscode/mcp.json
For user scope, use the “MCP: Open User Configuration” command if available. Do not guess a user configuration path across operating systems, profiles, containers, or remote workspaces; check the client documentation. Merge this example with existing settings; do not overwrite unrelated servers.
{
"servers": {
"freecad-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"freecad-mcp"
],
"env": {}
}
}
}Config file · macOS/Linux: ~/.codeium/windsurf/mcp_config.json
Windows: %USERPROFILE%\.codeium\windsurf\mcp_config.json
Open the MCP configuration through Windsurf’s settings when possible to confirm the active file. Paths can differ in managed or future releases; check the client documentation if this location is not present. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"freecad-mcp": {
"command": "uvx",
"args": [
"freecad-mcp"
],
"env": {}
}
}
}Config file · Project scope: .mcp.json at the repository root
The project file uses mcpServers. For user scope, use claude mcp add --scope user rather than assuming .mcp.json in your home directory is the user configuration. Check the client documentation for managed settings and storage details. Merge this example with existing settings; do not overwrite unrelated servers.
{
"mcpServers": {
"freecad-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"freecad-mcp"
],
"env": {}
}
}
}Examples are translated from the published configuration. Supply your own credentials and verify requirements in the upstream README. Remote connectors are shown only where a supported configuration format is known.
Tools
Source: repository README. Tool descriptions are a documented snapshot, not a live capability check.
| Tool | What it does |
|---|---|
| create_document | Start a new CAD document in FreeCAD. |
| create_object | Add a CAD object to a FreeCAD document. |
| edit_object | Change an existing CAD object's properties. |
| delete_object | Remove an object from a FreeCAD document. |
| execute_code | Run arbitrary Python within the FreeCAD application. |
| insert_part_from_library | Insert a reusable component from the FreeCAD parts library. |
| get_view | Capture the current active FreeCAD view as an image. |
| get_objects | List the objects belonging to a document. |
| get_object | Inspect one object within a document. |
| get_parts_list | List available components in the FreeCAD parts library. |
| run_fem_analysis | Run CalculiX for an existing FEM analysis and report stress, displacement, node count, and working directory. |
Names, permissions, and defaults can change. Check the current upstream documentation before granting access.
Use cases
- Create and revise CAD documents and objects conversationally.
- Inspect a model through object data and active-view screenshots.
- Insert reusable components from the FreeCAD parts library.
- Run an existing FEM analysis and review its summary results.
Strengths
- Combines direct object operations with Python execution in FreeCAD.
- Supports part-library access, screenshots, and FEM analysis.
- Includes text-only feedback and persisted RPC auto-start options.
Limitations
- Requires a FreeCAD addon plus a running RPC server.
- The Python execution tool can run arbitrary code inside FreeCAD.
- Remote access requires explicit IP allowlisting and RPC configuration.
Frequently asked questions
Independent listing, not an affiliation or security review. Grant the least access needed and verify the upstream instructions before running code.