Skip to main content
Glama
ferocknew

Fusion360 LLM Assistant

by ferocknew

Fusion360 LLM 建模助手

一个基于 FastMCP 和 Fusion 360 API 的语义化建模系统,让大语言模型可以通过自然语言进行 3D 建模操作。

正确的协议层次:

  1. LLM ↔ MCP服务器: JSON-RPC over stdio/SSE (MCP协议)

  2. MCP服务器 ↔ Fusion360插件: HTTP API (内部实现)

  3. Fusion360插件 ↔ Fusion360软件: Python API (本地调用)

功能特点

  • 🗣️ 自然语言建模: 使用自然语言描述创建 3D 模型

  • 🔧 API 集成: 直接调用 Fusion 360 原生 API

  • 实时处理: 快速响应和执行建模命令

  • 🤖 AI 驱动: 利用大语言模型理解用户意图

  • 📦 易于安装: 通过 PyPI 分发,使用 uvx 执行

Related MCP server: Blender Open MCP

安装与配置

1. 环境要求

  • Python 3.11+

  • Fusion 360 (最新版本)

  • FastMCP

  • 支持的 LLM API (如 OpenAI, Qwen 等)

2. 安装方式

项目已发布到 PyPI,可以通过以下方式安装和运行:

# 使用 uvx 直接运行(推荐) uvx --from fusion360-mcp fusion360_mcp --help

4. Fusion 360 插件安装

重要端口说明

  • MCP 服务器: 无端口,被动被调用 (通过 stdio 或 MCP 协议)

  • Fusion 360 插件HTTP服务端口: 9000 (固定) - 接收工具模块的HTTP请求

⚠️ 请确保端口 9000 没有被其他应用占用,这是 Fusion 360 插件内置HTTP服务器的专用端口。

安装步骤

  1. 打开 Fusion 360

  2. 进入 工具 > 附加模块 > 开发

  3. 点击 "+" 按钮添加插件

  4. 选择 addin/fusion360_mcp_addin/ 文件夹(包含 .py 和 .manifest 文件)

  5. 勾选插件以启动

  6. 插件启动后会显示确认消息,服务地址为: http://localhost:9000

验证插件运行

# 检查插件是否正常运行 curl http://localhost:9000/api/health # 预期响应 {"status": "healthy", "message": "Fusion 360 插件运行正常"}

5. LLM 配置

配置您的 LLM API 密钥和服务端点:

LLM_API_KEY=your_api_key_here LLM_ENDPOINT=https://api.your-llm-service.com MCP_SERVER_URL=http://localhost:8000

支持的 Fusion 360 工具

系统提供以下 Fusion 360 操作方法:

  • create_document: 在 Fusion 360 中创建新文档

  • create_object: 在 Fusion 360 中创建新对象

  • edit_object: 在 Fusion 360 中编辑对象

  • delete_object: 在 Fusion 360 中删除对象

  • execute_code: 在 Fusion 360 中执行任意 Python 代码

  • insert_part_from_library: 从零件库中插入零件

  • get_view: 获取活动视图的截图

  • get_objects: 获取文档中的所有对象

  • get_object: 获取文档中的特定对象

  • get_parts_list: 获取零件库中的零件列表

使用方法

基本工作流程

  1. 安装项目

    # 安装项目 pip install -e .
  2. 启动 Fusion 360 并加载插件

    • 确保插件正在端口 9000 运行

    • 验证: curl http://localhost:9000/api/health

  3. 配置 LLM 客户端 (Claude)

    { "mcpServers": { "fusion360": { "command": "uvx", "args": ["fusion360-mcp"] } } }
  4. 测试工具模块 (开发用)

    # 快速测试工具函数 python tests/test_simple_integration.py
  5. 使用方式

    • LLM 客户端通过 MCP 协议调用我们的服务器

    • MCP 服务器内部调用 Fusion 360 插件完成建模

    • 无需手动启动 MCP 服务器 (由 LLM 客户端调用)

端口占用检查

如果遇到端口冲突,可以检查端口使用情况:

# 检查端口 9000 (Fusion 360 插件HTTP服务) netstat -an | grep 9000 lsof -i :9000 # 使用项目提供的端口检查脚本 python scripts/check_ports.py

注意:

  • MCP 服务器本身没有端口,是被动被调用的

  • 只有 Fusion 360 插件需要端口 9000

  • 如端口被占用,需要释放该端口

示例命令

"创建一个高度为 100mm,直径为 50mm 的圆柱体" "在 XY 平面上绘制一个边长为 80mm 的正方形,并拉伸 30mm" "创建一个立方体,尺寸为 100x50x200mm,然后在中心钻一个直径 20mm 的孔" "创建一个齿轮,模数为 2,齿数为 20"

API 接口

MCP 服务器端点

  • POST /model/create - 创建新模型

  • POST /feature/add - 添加特征

  • POST /modify/parameters - 修改参数

  • GET /model/status - 获取模型状态

请求示例

{ "command": "create_cylinder", "parameters": { "height": 100, "diameter": 50, "position": [0, 0, 0] }, "metadata": { "request_id": "uuid-string", "timestamp": "ISO-timestamp" } }

许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情

联系方式

项目链接: https://github.com/yourusername/fusion360_mcp

注意事项

端口管理

  • 端口 8000: MCP 服务器端口(可配置)- 提供MCP协议服务,供LLM客户端连接

  • 端口 9000: Fusion 360 插件HTTP服务端口(固定)- 插件内置的HTTP服务器,接收MCP服务器请求

  • 启动前请确保这两个端口未被其他应用占用

通信流程

  1. LLM客户端MCP服务器 (端口8000,MCP协议)

  2. MCP服务器Fusion 360插件HTTP服务 (端口9000,HTTP协议)

  3. Fusion 360插件Fusion 360软件 (本地API调用)

连接要求

  • MCP 服务器与 Fusion 360 插件必须在同一台机器上运行

  • 两个服务都使用 localhost 地址,确保防火墙不阻止本地连接

  • 插件启动后会在 Fusion 360 中显示确认消息

开发环境

  • 确保 Fusion 360 已正确配置开发环境

  • 插件需要在 Fusion 360 的开发模式下运行

  • 某些复杂建模操作可能需要手动调整

  • 建议在测试环境中验证所有操作

故障排除

如果遇到连接问题:

  1. 检查端口是否被占用: lsof -i :8000lsof -i :9000

  2. 确认 MCP 服务器正在运行: curl http://localhost:8000/health

  3. 确认 Fusion 360 插件已启动: curl http://localhost:9000/api/health

  4. 查看 Fusion 360 开发控制台的错误信息

相关文档

-
security - not tested
F
license - not found
-
quality - not tested

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ferocknew/fusion360_mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server