首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
首页
学习
活动
专区
圈层
工具
MCP广场
MCP广场 >详情页
freecad_mcp2025-05-290分享
github
一个FreeCAD插件,通过实现模型上下文协议(MCP)来启用FreeCAD和Claude AI之间通过Claude Desktop进行通信。
By bonninr
2025-05-290
github
详情内容

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.exeC:\\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

# 连接到FreeCAD MCP服务器
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(('localhost', 9876))

# 示例:获取场景信息
command = {
    "type": "get_scene_info"
}
client.sendall(json.dumps(command).encode('utf-8'))

# 接收响应
response = client.recv(4096)
print(json.loads(response.decode('utf-8')))

# 示例:运行脚本
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'))

# 接收响应
response = client.recv(4096)
print(json.loads(response.decode('utf-8')))

# 关闭连接
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文件。

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档