关于 Freecad
FreeCAD MCP 通过 Model Control Protocol 将 FreeCAD 连接到 Claude 等 MCP 兼容工具,使其能够读取并操作 FreeCAD 文档。适合希望借助 AI 辅助进行 CAD 三维设计的用户。
主要功能
- 01读取当前文档的对象与场景信息
- 02在 FreeCAD 上下文中执行 Python 脚本
- 03基于 socket 的服务端与客户端通信
- 04以 FreeCAD 工作台形式安装
适用场景
- 01借助 AI 辅助完成三维建模
- 02通过脚本自动化 FreeCAD 中的重复操作
- 03查看草图几何与约束等文档信息
MCP 相关
该项目通过 MCP 将 FreeCAD 暴露给 Claude 等客户端,主要提供 get_scene_info 与 run_script 两项功能。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
FreeCAD MCP(模型控制协议)
概述
FreeCAD MCP(模型控制协议)通过客户端-服务架构提供了一个简化的接口,用于与 FreeCAD 交互。用户可以通过此接口执行命令,并获取有关当前 FreeCAD 文档和场景的信息。
https://github.com/user-attachments/assets/5acafa17-4b5b-4fef-9f6c-617e85357d44
配置
若要配置 MCP 服务,可以使用 JSON 格式指定服务设置。以下是一个配置示例:
{
"mcpServers": {
"freecad": {
"command": "C:\\ProgramData\\anaconda3\\python.exe",
"args": [
"C:\\Users\\USER\\AppData\\Roaming\\FreeCAD\\Mod\\freecad_mcp\\src\\freecad_bridge.py"
]
}
}
}
配置详情
-
command:用于运行 FreeCAD MCP 服务的 Python 可执行文件路径。此路径可能因操作系统而异:
- Windows:通常可能是
C:\\ProgramData\\anaconda3\\python.exe或C:\\Python39\\python.exe。 - Linux:可能是
/usr/bin/python3或 Python 安装路径。 - macOS:通常是
/usr/local/bin/python3或 Python 安装路径。
- Windows:通常可能是
-
args:传递给 Python 命令的参数数组。第一个参数应为
freecad_bridge.py脚本的路径,该脚本负责处理 MCP 服务逻辑。请根据你的安装情况调整路径。
不同操作系统的示例
Windows
{
"mcpServers": {
"freecad": {
"command": "C:\\ProgramData\\anaconda3\\python.exe",
"args": [
"C:\\Users\\USER\\AppData\\Roaming\\FreeCAD\\Mod\\freecad_mcp\\src\\freecad_bridge.py"
]
}
}
}
Linux
{
"mcpServers": {
"freecad": {
"command": "/usr/bin/python3",
"args": [
"/home/USER/.FreeCAD/Mod/freecad_mcp/src/freecad_bridge.py"
]
}
}
}
macOS
{
"mcpServers": {
"freecad": {
"command": "/usr/local/bin/python3",
"args": [
"/Users/USER/Library/Preferences/FreeCAD/Mod/freecad_mcp/src/freecad_bridge.py"
]
}
}
}
功能
FreeCAD MCP 目前支持以下功能:
1. get_scene_info
- 说明:获取当前 FreeCAD 文档的全面信息,包括:
- 文档属性(名称、标签、文件名、对象数量)
- 详细的对象信息(类型、位置、旋转、形状属性)
- 草图数据(几何图形、约束)
- 视图信息(相机位置、方向等)
2. run_script
- 说明:在 FreeCAD 环境中执行任意 Python 代码。用户可以执行复杂操作、创建新对象、修改现有对象,并使用 FreeCAD 的 Python API 自动化任务。
使用示例
要使用 FreeCAD MCP,可以连接到服务并按如下方式发送命令:
import socket
import json
# Connect to the FreeCAD MCP server
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(('localhost', 9876))
# Example: Get scene information
command = {
"type": "get_scene_info"
}
client.sendall(json.dumps(command).encode('utf-8'))
# Receive the response
response = client.recv(4096)
print(json.loads(response.decode('utf-8')))
# Example: Run a script
script = """
import FreeCAD
doc = FreeCAD.ActiveDocument
box = doc.addObject("Part::Box", "MyBox")
box.Length = 20
box.Width = 20
box.Height = 20
doc.recompute()
"""
command = {
"type": "run_script",
"params": {
"script": script
}
}
client.sendall(json.dumps(command).encode('utf-8'))
# Receive the response
response = client.recv(4096)
print(json.loads(response.decode('utf-8')))
# Close the connection
client.close()
安装
- 克隆代码仓库或下载文件。
- 将
freecad_mcp目录放入 FreeCAD 模块目录:- Windows:
%APPDATA%/FreeCAD/Mod/ - Linux:
~/.FreeCAD/Mod/ - macOS:
~/Library/Preferences/FreeCAD/Mod/
- Windows:
- 重启 FreeCAD,并从工作台选择器中选择“FreeCAD MCP”工作台。
贡献
欢迎通过提交问题或拉取请求参与贡献。我们欢迎你的反馈和贡献!
许可证
本项目采用 MIT 许可证授权。详情请参阅 LICENSE 文件。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。