返回市场
融合-360-MCP-服务器

融合-360-MCP-服务器

作者:AuraFriday6 星标更新:2025-11-21

项目介绍

【技术文档摘要】

Fusion 360 MCP Server 插件

通过AI控制Fusion 360!

此Fusion 360插件连接到Aura Friday MCP-Link服务器,使Fusion 360成为AI代理可以远程控制的工具。

观看演示

点击上方观看AI创建“Fusion Rocks!”的3D演示


🚀 新特性

最新:线程安全架构(2025年11月)

  • 稳定可靠 - 所有Fusion API调用现在都在主线程上执行
  • 零崩溃 - 工作队列系统防止线程问题
  • 集中日志记录 - 所有组件的线程安全诊断
  • 生产就绪 - 在重负载下保持稳定性

Python执行 + MCP工具集成

AI现在可以直接在Fusion 360内部运行任意Python代码,具有完全访问权限:

  • ✅ 整个Fusion 360 API (adsk.core, adsk.fusion, adsk.cam)
  • ✅ 所有已加载的插件(自动访问您的自定义插件!)
  • ✅ SQLite数据库(存储和查询设计数据)
  • ✅ 浏览器自动化(打开文档,提取数据)
  • ✅ 用户弹出窗口(显示结果,获取输入)
  • ✅ 500多个AI模型通过OpenRouter
  • ✅ 本地AI模型(离线推理)
  • ✅ 桌面自动化(Windows控制)

示例:AI分析您的AirfoilTools插件,从1,538个轮廓中找到最佳空气动力学外形,将结果存储在SQLite中,并显示一个弹出窗口——所有这些都只需一个命令!


这是什么

这是一个Fusion 360插件,它通过三种强大的功能赋予AI对Fusion的无限访问权限:

1. 🎯 通用API调用

执行任何Fusion 360 API命令而无需自定义代码:

fusion360.execute({
  "api_path": "design.rootComponent.sketches.add",
  "args": ["design.rootComponent.xYConstructionPlane"]
})

2. 🐍 Python执行(全新!)

运行具有完整Fusion访问权限的任意Python代码:

fusion360.execute({
  "operation": "execute_python",
  "code": """
import adsk.core, adsk.fusion

# 创建草图
sketch = design.rootComponent.sketches.add(design.rootComponent.xYConstructionPlane)

# 存储在数据库中
mcp.call('sqlite', {
    'input': {'sql': 'INSERT INTO designs (name) VALUES (?)', 
              'params': [sketch.name]}
})

# 显示弹出窗口
mcp.call('user', {
    'input': {'operation': 'show_popup', 
              'html': f'<h1>创建了{sketch.name}!</h1>'}
})
"""
})

3. 🔗 MCP工具集成(全新!)

访问Fusion中的10多种内置工具:

  • SQLite数据库
  • 浏览器自动化
  • 用户弹出窗口
  • Python执行
  • AI模型(本地及云端)
  • 桌面自动化
  • 更多!

🎯 AI能做什么

基本操作

  • ✅ 创建具有精确尺寸的参数化草图
  • ✅ 添加文本并将其拉伸成3D
  • ✅ 生成安装孔、支架、机械部件
  • ✅ 执行任何Fusion 360 API命令

高级工作流(全新!)

  • 🔥 访问您的自定义插件 - AI发现并使用任何已加载的插件
  • 🔥 存储设计数据 - 将分析结果保存到SQLite
  • 🔥 查询数据库 - 从您的数据中找到最优设计
  • 🔥 显示结果 - 使用图表、表格、表单显示弹出窗口
  • 🔥 自动化工作流 - 结合Fusion + 数据库 + 浏览器 + AI
  • 🔥 调用AI模型 - 从500多个模型中获取设计建议

实际案例

# AI分析AirfoilTools插件(拥有15,000多名用户!)
# 从1,538个轮廓中找到最佳空气动力学外形
# 将结果存储在SQLite中
# 在弹出窗口中显示结果
# 所有这些都只需一个Python命令!

🛠️ 内置MCP工具

您需要的一切。不需要的则没有。

这些工具随MCP-Link一起提供,并立即可用。无需配置、API密钥或设置。

工具描述
🌐 浏览器自动化Chrome:阅读、点击、输入、导航、提取数据
🧠 SQLite具有语义搜索和嵌入式的数据库
🐍 Python在本地执行代码,具有完整的MCP工具访问权限
🤖 OpenRouter访问500多个AI模型(免费和付费)
🤗 HuggingFace离线运行AI模型(无需互联网)
📚 Context7获取任何库的实时文档
🖥️ 桌面控制Windows应用程序(点击、输入、读取)
💬 用户显示HTML弹出窗口用于表单、确认
🔗 远程让外部系统提供工具(如Fusion!)
🔌 连接器添加任何第三方MCP工具

想要更多? 添加任何第三方MCP工具或构建自己的工具!


📦 安装

先决条件

  1. 下载MCP-Link服务器
    获取最新版本:https://github.com/AuraFriday/mcp-link-server/releases/tag/latest

  2. 克隆此仓库

    git clone https://github.com/AuraFriday/Fusion-360-MCP-Server.git
    
  3. 作为Fusion 360插件加载

    • 打开Fusion 360
    • Shift+S 打开脚本和插件
    • 点击 插件 标签
    • 点击“我的插件”旁边的绿色 + 按钮
    • 导航到克隆的仓库文件夹
    • 选择文件夹并点击 确定
    • 点击 运行 启动插件

配置

插件启动时会自动连接到MCP服务器。检查Fusion 360中的文本命令窗口以查看连接日志。


🎬 快速入门示例

示例1:简单草图(通用API)

# 创建草图
fusion360.execute({
  "api_path": "design.rootComponent.sketches.add",
  "args": ["design.rootComponent.xYConstructionPlane"],
  "store_as": "my_sketch"
})

# 添加矩形
fusion360.execute({
  "api_path": "$my_sketch.sketchCurves.sketchLines.addTwoPointRectangle",
  "args": [
    {"type": "Point3D", "x": 0, "y":  0, "z": 0},
    {"type": "Point3D", "x": 10, "y": 5, "z": 0}
  ]
})

示例2:Python与数据库(全新!)

fusion360.execute({
  "operation": "execute_python",
  "code": """
import adsk.core, adsk.fusion

# 创建安装板
sketch = design.rootComponent.sketches.add(design.rootComponent.xYConstructionPlane)
lines = sketch.sketchCurves.sketchLines
lines.addTwoPointRectangle(
    adsk.core.Point3D.create(0, 0, 0),
    adsk.core.Point3D.create(10, 8, 0)
)

# 添加安装孔
circles = sketch.sketchCurves.sketchCircles
for x, y in [(1, 1), (9, 1), (1, 7), (9, 7)]:
    circles.addByCenterRadius(adsk.core.Point3D.create(x, y, 0), 0.25)

# 存储在数据库中
mcp.call('sqlite', {
    'input': {
        'sql': 'INSERT INTO parts (name, holes) VALUES (?, ?)',
        'params': [sketch.name, 4],
        'database': 'designs.db',
        'tool_unlock_token': '29e63eb5'
    }
})

print(f'创建了{sketch.name},带有4个安装孔')
"""
})

示例3:访问自定义插件(全新!)

fusion360.execute({
  "operation": "execute_python",
  "code": """
import sys

# 查找已加载的插件
addins = [name for name in sys.modules.keys() if 'addin' in name.lower()]
print(f'找到了{len(addins)}个插件')

# 访问AirfoilTools(如果已加载)
if 'AirfoilTools' in str(addins):
    airfoil_main = sys.modules['...AirfoilTools_py']
    foildb = airfoil_main.foildb2020.Foildb2020()
    
    # 找到最佳空气动力学外形
    best = max(foildb, key=lambda x: x['clcd'])
    print(f'最佳升阻比:{best["clcd"]:.2f}')
    
    # 存储在数据库中
    mcp.call('sqlite', {
        'input': {
            'sql': 'INSERT INTO airfoils (name, ld_ratio) VALUES (?, ?)',
            'params': [best['Foil_fn'], best['clcd']],
            'database': 'airfoils.db',
            'tool_unlock_token': '29e63eb5'
        }
    })
"""
})

🏗️ 架构

工作原理

  1. 插件加载 并连接到本地MCP-Link服务器
  2. 注册自身 作为fusion360工具通过反向连接
  3. AI发送命令 包含三种操作类型:
    • 通用API调用(简单操作)
    • Python执行(复杂工作流)
    • MCP工具调用(跨工具集成)
  4. 通用处理器 解析路径,构造对象,执行API调用
  5. Python执行器 运行代码,具有对Fusion环境的真实内联访问权限
  6. 返回结果 给AI,带有完整上下文和类型信息

组件

  • MCP-Link服务器 - 路由AI请求到插件
  • 通用API处理器 - 动态执行任何Fusion API调用
  • Python执行器(全新!) - 运行具有完整访问权限的任意Python代码
  • MCP桥接器(全新!) - 允许Python调用其他MCP工具
  • 上下文管理器 - 存储中间对象以供多步操作使用
  • 增强报告 - 提供详细的成功/错误信息
  • 线程安全代理(全新!) - 确保所有Fusion API调用都在主线程上发生
  • 集中日志记录器(全新!) - 从任何组件进行线程安全的日志记录

🎨 支持模式

API路径

"design.rootComponent.sketches.add"              # 通过应用对象访问
"$sketch.sketchCurves.sketchCircles.addByCenterRadius"  # 使用存储的对象
"adsk.core.Point3D.create"                       # 完整模块路径
"adsk.core.ValueInput.createByString"            # 静态方法

对象构造

{"type": "Point3D", "x": 5, "y": 10, "z": 0}    # 从字典构造
"$my_sketch.originPoint"                         # 引用存储的对象
0                                                 # 枚举值作为整数

上下文存储

"store_as": "my_object"                          # 将结果存储为$my_object
"$my_object.someMethod"                          # 在下一个命令中使用

Python执行(全新!)

"operation": "execute_python"                    # 运行Python代码
"code": "import adsk.core\n..."                  # Python代码字符串
"session_id": "my_session"                       # 持久会话
"persistent": true                               # 变量持久

MCP工具调用(全新!)

"operation": "call_tool"                         # 调用另一个MCP工具
"tool_name": "sqlite"                            # 要调用的工具
"arguments": {"input": {...}}                    # 工具参数

💡 使用场景

AI设计助手

  • 自然语言到CAD:“创建一个带4个孔的安装支架”
  • 设计探索:“尝试这个零件的10种变体”
  • 参数优化:“找到强度的最佳尺寸”

数据驱动的设计(全新!)

  • 查询数据库:“找到Re=500,000的最佳空气动力学外形”
  • 存储分析:“保存此设计的质量和体积”
  • 比较设计:“显示所有重量小于100克的支架”

工作流自动化(全新!)

  • 多工具工作流:创建设计 → 存储在数据库中 → 显示弹出窗口
  • 访问自定义插件:通过AI使用您的现有插件
  • 批处理操作:自动处理100个设计

教育工具

  • 通过AI指导学习Fusion API
  • 具有即时反馈的交互式教程
  • 通过AirfoilTools集成探索空气动力学

CAM自动化

  • AI驱动的刀具路径生成
  • 优化切割参数
  • 批量处理制造任务

🎯 实际案例:AirfoilTools集成

场景:您已经在Fusion中加载了AirfoilTools插件(拥有15,000多名用户)。

AI可以

  1. 自动发现插件
  2. 访问1,538个空气动力学外形轮廓
  3. 找到最佳空气动力学外形(升阻比:505.02!)
  4. 将结果存储在SQLite中
  5. 在Fusion中创建几何图形
  6. 在弹出窗口中显示结果

所有这些都不需要任何自定义集成代码!

参见AUTODESK_DEMO_AIRFOILTOOLS.md以获取完整演示。


📚 文档


🔧 技术细节

核心架构

  • 使用Fusion 360的原生Python API构建
  • 使用服务端发送事件(SSE)进行MCP连接
  • 使用JSON-RPC协议执行命令
  • 真实内联Python执行(无沙箱)
  • 对Fusion性能无影响
  • 所有操作均在本地运行(无云依赖)
  • 自动重新连接,具有指数退避
  • 使用原生消息协议进行服务器发现

线程安全与稳定性

  • 主线程执行:所有Fusion 360 API调用都在Fusion的主UI线程上执行
  • 工作队列系统:后台线程排队工作项以安全地进行主线程处理
  • 自定义事件处理器:使用Fusion的CustomEvent系统安全触发API调用
  • 集中日志记录:线程安全日志缓冲区确保来自任何线程的可靠诊断
  • 防崩溃:健壮的架构即使在重负载下也能防止崩溃

⚠️ 限制

  • 枚举值必须作为整数传递(例如,0表示NewBodyFeatureOperation
  • 一些复杂的对象需要特定的构造模式
  • 当插件重新加载时,上下文会丢失(为了会话隔离而设计)
  • Python执行具有完整的系统访问权限(请负责任地使用!)

🚀 未来改进

  • 集成语义搜索以实现自动文档
  • 批处理操作优化
  • 撤销/重做辅助
  • 扩展枚举处理
  • 更直观的对象构造模式
  • 常用操作的脚本库
  • 视觉工作流构建器

🤝 贡献

想贡献吗? 欢迎PR!这是AI驱动CAD的未来。

贡献者的想法

  • 添加示例工作流
  • 改善错误消息
  • 制作教程视频
  • 使用不同的插件进行测试
  • 与其他CAD工具建立集成

📄 许可证

专有 - 详情见LICENSE文件


👤 作者

AuraFriday创建
已有15,000多名用户信任之前的Fusion 360插件


🔗 链接