mcpField
F
Freecad

Freecad

本地服务
github.com/bonninr媒体与设计22684 周前更新

关于 Freecad

FreeCAD MCP 通过 Model Control Protocol 将 FreeCAD 连接到 Claude 等 MCP 兼容工具,使其能够读取并操作 FreeCAD 文档。适合希望借助 AI 辅助进行 CAD 三维设计的用户。

主要功能

  1. 01读取当前文档的对象与场景信息
  2. 02在 FreeCAD 上下文中执行 Python 脚本
  3. 03基于 socket 的服务端与客户端通信
  4. 04以 FreeCAD 工作台形式安装

适用场景

  1. 01借助 AI 辅助完成三维建模
  2. 02通过脚本自动化 FreeCAD 中的重复操作
  3. 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 安装路径。
  • 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()

安装

  1. 克隆代码仓库或下载文件。
  2. 将 freecad_mcp 目录放入 FreeCAD 模块目录:
    • Windows:%APPDATA%/FreeCAD/Mod/
    • Linux:~/.FreeCAD/Mod/
    • macOS:~/Library/Preferences/FreeCAD/Mod/
  3. 重启 FreeCAD,并从工作台选择器中选择“FreeCAD MCP”工作台。

贡献

欢迎通过提交问题或拉取请求参与贡献。我们欢迎你的反馈和贡献!

许可证

本项目采用 MIT 许可证授权。详情请参阅 LICENSE 文件。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。