3D建模服务器

FreeCAD MCP服务器是一个使AI助手能够与FreeCAD交互进行3D建模和CAD操作的工具,支持基本几何创建、布尔运算、文档管理和自定义脚本执行。

  • by lucygoodchild
  • TypeScript
  • 本地部署
  • 9 星标
  • 更新于
在 GitHub 查看 lucygoodchild/freecad-mcp-server

使用说明

FreeCAD MCP服务器

模型上下文协议(MCP)服务器,使AI助手能够与FreeCAD交互进行3D建模和CAD操作。

特性

  • 基本几何图形创建:创建具有指定尺寸的长方体、圆柱体、球体
  • 布尔运算:在对象之间执行并集、剪切和常用操作
  • 文档管理:保存文档和列出对象
  • 自定义脚本执行:在FreeCAD环境中执行任意Python脚本
  • 交叉平台的:支持Windows、macOS和Linux

先决条件

  1. FreeCAD安装:从安装FreeCAD freecad.org
  2. Node.js:版本18或更高版本
  3. TypeScript:用于发展

安装

  1. 克隆此存储库:
git clone https://github.com/lucygoodchild/freecad-mcp-server.git
cd freecad-mcp-server
  1. 安装依赖项:
npm install
  1. 构建项目:
npm run build
  1. 配置FreeCAD路径(如果需要):
    • 服务器尝试自动检测FreeCAD安装
    • 默认路径:
      • 窗户: C:\Program Files\FreeCAD 0.21\bin\FreeCAD.exe
      • macOS: /Applications/FreeCAD.app/Contents/MacOS/FreeCAD
      • Linux: /usr/bin/freecad

用法

运行服务器

npm start

克劳德桌面

将以下内容添加到MCP客户端配置中(~/库/应用程序支持/Claude/Claude_desktop_config.json): { “mcpServers”:{ “freecad mcp服务器”:{ “command”:“node”, “args”:[“/path/to/free-cad-mcp/build/index.js”] } } } 确保将“/path/to/free-cad-mcp/build/index.js”替换为实际路径,并在更改后重新启动Claude

可用工具

create_box

创建具有指定尺寸的矩形框。

{
  "name": "create_box",
  "arguments": {
    "length": 50,
    "width": 30,
    "height": 20,
    "name": "MyBox"
  }
}

create_cylinder

创建具有指定半径和高度的圆柱体。

{
  "name": "create_cylinder", 
  "arguments": {
    "radius": 10,
    "height": 50,
    "name": "MyCylinder"
  }
}

create_sphere

创建具有指定半径的球体。

{
  "name": "create_sphere",
  "arguments": {
    "radius": 15,
    "name": "MySphere"
  }
}

boolean_operation

在两个对象之间执行布尔运算。

{
  "name": "boolean_operation",
  "arguments": {
    "operation": "union",
    "object1": "Box",
    "object2": "Cylinder",
    "result_name": "Combined"
  }
}

操作: union, cut, common

save_document

保存当前FreeCAD文档。

{
  "name": "save_document",
  "arguments": {
    "filename": "my_model.FCStd",
    "path": "/path/to/save"
  }
}

list_objects

列出当前文档中的所有对象。

{
  "name": "list_objects",
  "arguments": {}
}

execute_python_script

在FreeCAD环境中执行自定义Python脚本。

{
  "name": "execute_python_script",
  "arguments": {
    "script": "box = doc.addObject('Part::Box', 'CustomBox')\nbox.Length = 100"
  }
}

与AI助手集成

该服务器实现了模型上下文协议,使其与启用MCP的AI助手兼容。AI可以:

  1. 生成三维模型:通过组合基本形状创建复杂的几何图形
  2. 参数化设计:根据要求修改尺寸和参数
  3. 装配创建:使用布尔运算构建多零件部件
  4. 设计自动化:通过脚本执行复杂的建模工作流

AI交互示例

  • “创建内径为20mm、外径为40mm的轴承箱”
  • “制作一个M6螺纹的螺栓,长50mm”
  • “设计一个简单的支架,以固定相距30mm的两根10mm的杆”

发展

项目结构

src/
  index.ts          # Main server implementation
build/              # Compiled JavaScript output
package.json        # Dependencies and scripts
tsconfig.json       # TypeScript configuration

建筑

npm run build

发展模式

npm run dev

故障排除

未找到FreeCAD

  • 验证FreeCAD是否已安装并可从命令行访问
  • 更新 freecadPath 如果需要,在服务器构造函数中
  • 检查FreeCAD可执行文件是否具有适当的权限

脚本执行错误

  • 确保FreeCAD Python环境具有所需的模块
  • 检查脚本语法-Python脚本在FreeCAD的Python解释器中执行
  • 使用 list_objects 在布尔运算之前验证对象名称