Shirokuma (k tanaka)/freecad-mcp
Built by Metorial, the integration platform for agentic AI.
Shirokuma (k tanaka)/freecad-mcp
Server Summary
Automate design workflows
Generate 3D models from 2D drawings
Control FreeCAD commands remotely
Create custom parts and designs
Interact with FreeCAD interface
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
FreeCAD Addon directory is
%APPDATA%\FreeCAD\Mod\
~/Library/Application Support/FreeCAD/Mod/
~/.FreeCAD/Mod/
or ~/snap/freecad/common/Mod/
(if you install FreeCAD from snap)~/.local/share/FreeCAD/Mod
Please put addon/FreeCADMCP
directory to the addon directory.
git clone https://github.com/neka-nat/freecad-mcp.git
cd freecad-mcp
cp -r addon/FreeCADMCP ~/.FreeCAD/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.
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"
]
}
}
}
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.Made with contrib.rocks.