使用说明
融合MCP服务器
Autodesk Fusion 360的MCP(模型上下文协议)服务器,用TypeScript编写,使用Hono部署在Cloudflare Workers上。
特性
此MCP服务器提供以下与Autodesk Fusion 360设计交互的功能:
🗂️ 数据管理
- 列出中心/项目/设计 -浏览Fusion团队内容,包括中心(团队)、项目和设计
- 获取顶级文件夹 -访问项目中的顶级文件夹
📦 导出与下载
- 导出到STL/STEP/OBJ -将设计转换为各种格式,以实现3D打印和CAD互操作性
- 下载IPT/F3D/Fusion档案 -直接访问原始源CAD文件
⚙️ 设计自动化
- 读取和修改参数 -更改设计中的参数值(需要设计自动化工作项)
- 运行Fusion工作项 -使用Autodesk Design Automation在服务器端执行脚本以自动化CAD操作
🔔 网络钩子
- 创建Webhooks -设置设计更改时的通知
- 列出Webhooks -查看所有已注册的webhooks
- 删除Webhooks -删除webhook订阅
先决条件
- 具有API证书的Autodesk Forge/APS帐户
- Cloudflare Workers帐户(可用免费层)
- Node.js 18+用于本地开发
设置
1.安装依赖项
pnpm install
2.配置Autodesk Forge凭据
您需要设置Autodesk Forge(现在为Autodesk平台服务)API凭据:
- 首选 锻造门户
- 创建应用程序
- 记下您的客户端ID和客户端密码
为了地方发展,创建一个 .dev.vars 文件:
FORGE_CLIENT_ID=your_client_id_here
FORGE_CLIENT_SECRET=your_client_secret_here
对于生产部署,请使用Wrangler设置机密:
wrangler secret put FORGE_CLIENT_ID
wrangler secret put FORGE_CLIENT_SECRET
3.发展
运行开发服务器:
pnpm run dev
服务器将在以下时间可用 http://localhost:8787
4.建造
将TypeScript编译为JavaScript:
pnpm run build
5.部署到Cloudflare Workers
pnpm run deploy
用法
MCP协议
服务器在以下位置实现模型上下文协议 /mcp 终点。发送具有以下结构的POST请求:
列出可用工具
{
"method": "tools/list"
}
调用工具
{
"method": "tools/call",
"params": {
"name": "list_hubs",
"arguments": {}
}
}
可用工具
1. list_hubs
列出用户可用的所有Fusion Team中心。
论据: 无
2. list_projects
列出中心中的所有项目。
论据:
hubId(string,必填):集线器ID
3. list_designs
在项目文件夹中列出设计。
论据:
projectId(string,必填):项目IDfolderId(字符串,必填):文件夹ID
4. get_top_folders
获取项目中的顶级文件夹。
论据:
hubId(string,必填):集线器IDprojectId(string,必填):项目ID
5. export_design
将设计导出为STL、STEP或OBJ格式。
论据:
urn(string,必填):设计URN(base64编码)format(字符串,必填):导出格式-其中之一stl,step,obj
6. get_export_status
检查设计导出/翻译的状态。
论据:
urn(string,必填):设计URN
7. download_derivative
下载导出的文件衍生品。
论据:
urn(string,必填):设计URNderivativeUrn(string,必填):清单的派生URN
8. create_workitem
创建并运行Fusion WorkItem以执行脚本和修改参数。
论据:
activityId(字符串,必填):设计自动化活动IDinputFileUrl(字符串,必填):输入Fusion文件的URLoutputFileUrl(string,必填):上传输出的签名URLparameters(对象,可选):设计中要修改的参数
9. get_workitem_status
获取正在运行的WorkItem的状态。
论据:
workItemId(string,必填):工作项ID
10. create_webhook
创建一个webhook,以便在设计更改时接收通知。
论据:
system(字符串,可选):系统名称(默认值:“data”)event(字符串,必填):事件名称(例如,“dm.version.added”)callbackUrl(字符串,必填):接收通知的URLscope(对象,可选):webhook的作用域筛选器
11. list_webhooks
列出所有已注册的webhooks。
论据:
system(字符串,可选):系统名称筛选器event(字符串,可选):事件名称筛选器
12. delete_webhook
删除webhook。
论据:
system(字符串,必填):系统名称event(字符串,必填):事件名称hookId(字符串,必填):要删除的Webhook ID
13. download_file
下载Fusion文件(F3D、IPT或存档)。
论据:
projectId(string,必填):项目IDitemId(字符串,必填):项目IDversionId(字符串,可选):版本ID(如果未提供,则使用最新版本)
Webhook端点
服务器提供 /webhook 从Autodesk Forge接收webhook通知的端点:
POST https://your-worker.workers.dev/webhook
使用以下命令创建Webhook时配置此URL create_webhook 工具。
建筑
- 荣誉 -Cloudflare Workers的快速、轻量级web框架
- Autodesk Forge/APS API -用于访问Fusion 360数据的RESTful API
- 模型上下文协议 -人工智能模型交互的标准化协议
- Cloudflare员工 -无服务器边缘计算平台
API范围要求
服务器需要以下Forge API作用域:
data:read-从数据管理中读取数据data:write-将数据写入数据管理data:create-创建新数据bucket:read-从OSS bucket读取bucket:create-创建OSS存储桶
常见用例
1.浏览团队内容
// List hubs
{ "method": "tools/call", "params": { "name": "list_hubs" } }
// List projects in a hub
{ "method": "tools/call", "params": { "name": "list_projects", "arguments": { "hubId": "b.xxx" } } }
// Get folders
{ "method": "tools/call", "params": { "name": "get_top_folders", "arguments": { "hubId": "b.xxx", "projectId": "b.xxx" } } }
2.导出3D打印设计
// Start export to STL
{
"method": "tools/call",
"params": {
"name": "export_design",
"arguments": {
"urn": "dXJuOmFkc2sud2lwcHJvZDpmcy5maWxlOnZmLnlvdXJfdXJuP3ZlcnNpb249MQ",
"format": "stl"
}
}
}
// Check export status
{ "method": "tools/call", "params": { "name": "get_export_status", "arguments": { "urn": "..." } } }
// Download the STL file
{ "method": "tools/call", "params": { "name": "download_derivative", "arguments": { "urn": "...", "derivativeUrn": "..." } } }
3.修改设计参数
// Create a workitem to modify parameters
{
"method": "tools/call",
"params": {
"name": "create_workitem",
"arguments": {
"activityId": "your.activity+prod",
"inputFileUrl": "https://...",
"outputFileUrl": "https://...",
"parameters": {
"Width": 100,
"Height": 50,
"Depth": 25
}
}
}
}
开发说明
- OAuth令牌被缓存并自动刷新
- 所有API调用都需要有效的Forge凭据
- WorkItems需要在您的Forge帐户中设置设计自动化
- Webhooks需要一个可公开访问的回调URL
许可证
麻省理工学院
