FreeCAD MCP 插件将模型控制协议 (MCP) 集成到 FreeCAD 中,通过服务器-客户端架构实现模型创建、宏执行和视图管理的自动化。它提供了一个图形用户界面控制面板和一个命令行客户端来简化 FreeCAD 工作流程,支持诸如创建/运行宏、调整视图以及与外部工具(如 Claude、Cursor、Trace、CodeBuddy)集成的任务。
FreeCAD MCP 插件(v0.1.0)提供了以下功能:
FreeCADMCPPanel),处理如 create_macro、update_macro、run_macro、set_view 和 get_report 等命令(在 freecad_mcp_server.py 中实现)。stdio 或 TCP 发送命令,管理 .FCMacro 文件(创建、更新、运行、验证),并远程控制 FreeCAD(在 freecad_mcp_client.py 中实现)。FreeCAD、FreeCADGui、Part、math)和后执行步骤(重新计算、调整视图)给宏。freecad_mcp_log.txt(例如,%TEMP%\freecad_mcp_log.txt)和图形用户界面报告浏览器(限制100行)。FreeCADMCPWorkbench(在 InitGui.py 中实现)。icon.svg)、示例模型(gear.png、flange.png、boat.png、table.png)和演示动画(freecad.gif、freecad.mp4)。观看演示动画: <img src="https://raw.githubusercontent.com/ATOI-Ming/FreeCAD-MCP/main/assets/freecad.gif" width="900"> 下载演示视频:FreeCAD MCP 演示 MP4
FreeCAD MCP 工作台。FreeCAD_MCP_Show)并点击“启动服务器”。python D:\FreeCAD\Mod\FreeCAD-MCP-main\src\freecad_mcp_client.py --run-macro gear.FCMacro --params '{"radius": 15}'
mcp-server>=1.2.0,httpx>=0.24.1(在 pyproject.toml 中指定)。# 创建并激活 Anaconda 环境
conda create -n freecad_mcp python=3.12
conda activate freecad_mcp
pip install mcp-server>=1.2.0 httpx>=0.24.1
# 或使用系统 Python
python -m pip install mcp-server>=1.2.0 httpx>=0.24.1
pip show mcp-server httpx
确保 mcp-server 版本 >=1.2.0 和 httpx 版本 >=0.24.1。克隆仓库:
git clone https://github.com/ATOI-Ming/FreeCAD-MCP.git
复制到 FreeCAD 模块目录:
将 FreeCAD-MCP 文件夹复制到:
D:\FreeCAD\Mod\FreeCAD-MCP~/.local/share/FreeCAD/Mod/FreeCAD-MCP~/Library/Application Support/FreeCAD/Mod/FreeCAD-MCP# Windows 示例
xcopy FreeCAD-MCP D:\FreeCAD\Mod\FreeCAD-MCP /E /H /C /I
注意:根据您的 FreeCAD 安装路径调整 D:\FreeCAD\Mod。
启动 FreeCAD:
FreeCAD MCP 工作台(图标:assets/icon.svg)。FreeCAD-MCP 是否已加载。验证安装:
FreeCAD_MCP_Show 打开控制面板。%TEMP%\freecad_mcp_log.txt)中的启动消息。配置 MCP 客户端通过 stdio 或 TCP 与 FreeCAD 通信。
创建配置文件:
在 D:\FreeCAD\Mod\FreeCAD-MCP-main\src\ 创建 mcp_config.json:
{
"mcpServers": {
"freecad": {
"disabled": false,
"timeout": 60,
"type": "stdio",
"command": "D:\\Anaconda3\\python.exe",
"args": ["D:\\FreeCAD\\Mod\\FreeCAD-MCP-main\\src\\freecad_mcp_client.py"]
}
}
}
注意:
C:\Anaconda3\python.exe(Windows),/home/<user>/anaconda3/bin/python(Linux),/Users/<user>/anaconda3/bin/python(macOS)。C:\Users\<YourUser>\AppData\Roaming\FreeCAD\Mod\FreeCAD-MCP(Windows),/home/<user>/.local/share/FreeCAD/Mod/FreeCAD-MCP(Linux),/Users/<user>/Library/Application Support/FreeCAD/Mod/FreeCAD-MCP(macOS)。"type": "tcp",添加 "host": "localhost" 和 "port": 9876。运行服务器:
FreeCAD MCP 工作台中,点击 FreeCAD_MCP_Show,然后点击“启动服务器”。conda activate freecad_mcp
python D:\FreeCAD\Mod\FreeCAD-MCP-main\src\freecad_mcp_server.py
验证服务器:
%TEMP%\freecad_mcp_log.txt 中是否有“服务器已启动”的消息。python D:\FreeCAD\Mod\FreeCAD-MCP-main\src\freecad_mcp_client.py --get-report
FreeCAD MCP 工作台(图标:assets/icon.svg)。FreeCAD_MCP_Show 打开控制面板(FreeCADMCPPanel)。%TEMP%\freecad_mcp_log.txt。FreeCAD_MCP_RunMacro,选择一个 .FCMacro 文件,并执行它,自动进行规范化。conda activate freecad_mcp
python D:\FreeCAD\Mod\FreeCAD-MCP-main\src\freecad_mcp_client.py <command>
示例:
--create-macro my_macro --template-type part--run-macro my_macro.FCMacro --params '{"radius": 10}'--set-view '{"view_type": "7"}'--get-report以下工具功能由 freecad_mcp_client.py 提供,通过 stdio 或 TCP(localhost:9876)发送命令,由 freecad_mcp_server.py 处理。
| 功能 | 参数 | 描述 |
|---|---|---|
create_macro | macro_name,template_type | 创建一个 .FCMacro 文件,验证名称(字母、数字、下划线、连字符),支持模板(default、basic、part、sketch)。 |
update_macro | macro_name,code | 更新宏内容,自动添加 FreeCAD、FreeCADGui、Part、math 导入。 |
run_macro | macro_path,params(可选) | 运行宏,规范化代码,重新计算文档,调整到轴测图视图。 |
validate_macro_code | macro_name(可选),code(可选) | 验证宏代码语法,返回成功或错误(带回溯)。 |
set_view | params(例如,{"view_type": "7"}) | 设置视图:1(前面),2(顶部),3(右侧),7(轴测图)。 |
get_report | 无 | 获取服务器日志(从 %TEMP%\freecad_mcp_log.txt 和报告浏览器)。 |
创建宏:
python D:\FreeCAD\Mod\FreeCAD-MCP-main\src\freecad_mcp_client.py --create-macro gear --template-type part
输出:{"status": "success", "result": "宏已创建"}
更新宏:
python D:\FreeCAD\Mod\FreeCAD-MCP-main\src\freecad_mcp_client.py --update-macro gear --code "import FreeCAD, Part\nradius = 10\ngear = Part.makeCylinder(radius, 5)\nPart.show(gear)"
输出:{"status": "success", "result": "宏已更新"}
运行宏:
python D:\FreeCAD\Mod\FreeCAD-MCP-main\src\freecad_mcp_client.py --run-macro gear.FCMacro --params '{"radius": 15}'
输出:{"status": "success", "result": {...}}
验证代码:
python D:\FreeCAD\Mod\FreeCAD-MCP-main\src\freecad_mcp_client.py --validate-macro-code gear --code "import FreeCAD\nApp.newDocument()"
输出:{"status": "success"}
设置视图:
python D:\FreeCAD\Mod\FreeCAD-MCP-main\src\freecad_mcp_client.py --set-view '{"view_type": "7"}'
输出:{"status": "success", "result": "视图已设置为轴测图"}
获取报告:
python D:\FreeCAD\Mod\FreeCAD-MCP-main\src\freecad_mcp_client.py --get-report
输出:{"status": "success", "result": {...}}
自动齿轮模型创建:
--create-macro gear --template-type part--update-macro gear --code "import FreeCAD, Part\nradius = 15\ngear = Part.makeCylinder(radius, 5)\nPart.show(gear)"--run-macro gear.FCMacro --params '{"radius": 15}'
生成法兰模型:
--run-macro flange.FCMacro
基于文本的模型生成:
boat.FCMacro。--run-macro boat.FCMacro
CAD 绘图识别:
table.FCMacro。--run-macro table.FCMacro
批量处理模型:
for macro in gear.FCMacro flange.FCMacro; do
python D:\FreeCAD\Mod\FreeCAD-MCP-main\src\freecad_mcp_client.py --run-macro $macro
done
%TEMP%\freecad_mcp_log.txt。gear.png 和 flange.png。FreeCAD MCP 支持与外部工具集成以增强模型生成:
.FCMacro 文件。
import FreeCAD, Part
radius = 10
gear = Part.makeCylinder(radius, 5)
Part.show(gear)
保存为 gear.FCMacro,运行:--run-macro gear.FCMacro。.FCMacro 文件。
table.FCMacro,运行:--run-macro table.FCMacro。flange.FCMacro,更新:--update-macro flange.FCMacro --code "<code>"。assets/ 目录包含以下资源:
FreeCADMCPWorkbench 图标,在 InitGui.py 和 package.xml 中使用。




