CAD连接服务

Fusion 360 MCP Server是一个轻量级服务,连接MCP客户端(如ChatGPT、Claude等)与Autodesk Fusion 360,通过Python插件实现CAD设计自动化。

  • by perkovicluka
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 perkovicluka/fusion-360-mcp-server

使用说明

Fusion 360 MCP服务器

此项目通过轻量级MCP服务器和Fusion Python插件将MCP客户端(例如ChatGPT、Claude等)链接到Autodesk Fusion 360。

ChatGPT和fusion-360-mcp-server生成的台球桌的CAD设计示例:

建筑

  • MCP客户端→ FastMCP服务器(stdio/HTTP) → fusion_client.py (JSON/TCP)→ Fusion插件(FusionMCP.py) → 融合API。
  • 服务器监听HTTP http://0.0.0.0:8000/mcp (用于连接器UI)和外接程序侦听TCP 127.0.0.1:8765 对于命令。

项目布局

  • server/
    • mcp_server.py –FastMCP服务器入口点,注册工具。
    • tools_geometry.py –MCP工具包装器通过TCP调用Fusion。
    • fusion_client.py –Fusion插件的简单TCP JSON客户端。
  • fusion_addin/FusionMCP/
    • FusionMCP.py –Fusion插件:TCP服务器+Fusion API命令处理程序。
    • FusionMCP.manifest –为Fusion添加清单。

先决条件

  • 已安装Autodesk Fusion 360。
  • MCP服务器的Python 3.10+。
  • mcp[cli] 安装在服务器端的虚拟环境中。

设置

  1. 安装Fusion插件

    • macOS:复制 fusion_addin/FusionMCP 到 ~/Library/Application Support/Autodesk/Autodesk Fusion 360/API/AddIns/.
    • Windows:复制到 %APPDATA%\Autodesk\Autodesk Fusion 360\API\AddIns\ (例如。, C:\Users\<you>\AppData\Roaming\Autodesk\Autodesk Fusion 360\API\AddIns\).
    • 在Fusion中:工具→ 脚本和插件→ “加载项”选项卡→ 选择 FusionMCP → 运行(可选“启动时运行”)。
  2. 为MCP服务器创建并激活venv

    cd server
    python3 -m venv .venv
    source .venv/bin/activate      # macOS/Linux
    
    # or
    
    .venv\Scripts\activate         # Windows
    pip install "mcp[cli]"
    
  3. 运行MCP服务器(HTTP用于连接器UI)

    cd server
    . .venv/bin/activate
    python mcp_server.py
    
    • 本地终结点: http://127.0.0.1:8000/mcp (也受约束 0.0.0.0).
    • 对于ChatGPT网络连接器,使用HTTPS隧道(例如。, ngrok http --url=<your-domain> 8000 随着 /mcp 路径)。
    • 确保Fusion已打开,FusionMCP插件正在运行。

融合插件协议(TCP)

  • 加载项正在收听 127.0.0.1:8765.
  • 消息:每个连接一个JSON {"command": "...", "args": {...}}.
  • 响应:JSON {"ok": bool, ...}.

关键MCP工具

几何图形/草图:

  • fusion_create_box(width_cm, depth_cm, height_cm)
  • fusion_create_cylinder(diameter_cm, height_cm)
  • fusion_create_sphere(diameter_cm)
  • fusion_create_rect_plate(width_cm, depth_cm, thickness_cm, fillet_radius_cm=0)
  • fusion_create_sketch_rectangle(width_cm, height_cm, plane="XY")
  • fusion_create_sketch_circle(radius_cm, plane="XY")
  • fusion_create_sketch_on_face(face_index)
  • fusion_create_offset_plane(plane, offset_cm)
  • fusion_create_sketch_circle_at(x_cm, y_cm, radius_cm)
  • fusion_create_sketch_rectangle_at(x_cm, y_cm, width_cm, height_cm) (以x、y为中心)

操作:

  • fusion_extrude_last_profile(distance_cm)
  • fusion_cut_extrude_last_profile(distance_cm)
  • fusion_cut_extrude_last_profile_to_body() (全部;多配置文件安全)
  • fusion_shell_last_body(thickness_cm)
  • fusion_fillet_last_body_edges(radius_cm)
  • fusion_delete_all_bodies()
  • fusion_delete_body(body_index)
  • fusion_move_body(body_index, x_cm, y_cm, z_cm)

检查:

  • fusion_ping()
  • fusion_list_faces() (面部元数据)
  • fusion_get_face_info(face_index) (中心、正常、区域、类型)
  • fusion_get_body_bbox() (所有物体的边界框)

故障排除

  • 如果连接器报告“不安全URL”或404/502,请确保使用 http://127.0.0.1:8000/mcp 本地或HTTPS隧道URL /mcp.
  • “No bodies”错误:首先创建几何图形(例如。, fusion_create_box)或确保尸体存在。
  • 草图相关工具需要现有/活动草图;使用 fusion_create_sketch_on_face 或者首先绘制平面草图。

典型工作流示例

  1. 清洁工作区: fusion_delete_all_bodies.
  2. 创建主体: fusion_create_rect_plate(width_cm=6, depth_cm=2.5, thickness_cm=3, fillet_radius_cm=0.6).
  3. 外壳: fusion_shell_last_body(thickness_cm=0.25).
  4. 检查表面: fusion_list_faces 或 fusion_get_face_info(face_index=6)选择一个平面。
  5. 面部素描: fusion_create_sketch_on_face(face_index=6).
  6. 添加矩形: fusion_create_sketch_rectangle_at(x_cm=0, y_cm=0.4, width_cm=3.5, height_cm=2.3).
  7. 切入: fusion_cut_extrude_last_profile_to_body().
  8. 检查车身: fusion_get_body_bbox().根据需要移动/删除 fusion_move_body / fusion_delete_body.

备注

  • 单位:视为模型单位(在此工作流程中假设为厘米)。
  • 该插件仅使用Fusion的内置Python API(没有外部deps)。
  • 服务器绑定 0.0.0.0:8000 便于隧道掘进;外接程序在本地监听 127.0.0.1:8765.

许可证

MIT(或匹配您的项目许可证)。