FreeCAD MCP 控制服务

FreeCAD MCP 是一款将 FreeCAD 接入 Claude Desktop 的 MCP 服务,通过创建/编辑对象、执行 Python 代码、导入零件库和获取视图截图等能力,让用户以自然语言完成 3D 模型设计与自动化建模任务。

  • by DaveEdge1
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 DaveEdge1/freecad-mcp

使用说明

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

Install addon

FreeCAD Addon directory is

  • Windows: %APPDATA%\FreeCAD\Mod\
  • Mac: ~/Library/Application\ Support/FreeCAD/Mod/
  • Linux:
    • Ubuntu: ~/.FreeCAD/Mod/ or ~/snap/freecad/common/Mod/ (if you install FreeCAD from snap)
    • Debian: ~/.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.

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

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.

Contributors

Made with contrib.rocks.