Fusion 360 MCP Server 安装指南
此项目包括:GitHub Copilot/Claude 从MCP (Model Context Protocol) 经过Fusion 360 中所述的工具,调整墙的布局和几何形状。
🚀 新机能:动的API実行
adsk.core、adsk.fusion、adsk.cam 全部API的支持!
以前需要为每个功能创建函数,但是新的 execute_fusion_code 使用工具Python编码Fusion 360中所述修改相应参数的值。
# 例: カスタムスケッチとパス押し出しを作成
sketch = root.sketches.add(root.xYConstructionPlane)
sketch.sketchCurves.sketchLines.addByTwoPoints(
Point3D.create(0, 0, 0),
Point3D.create(10, 0, 0)
)
# ... 任意のFusion API操作体系结构
┌─────────────────┐ ┌──────────────────────┐ ┌─────────────────────┐
│ GitHub Copilot │────>│ MCP Bridge Server │────>│ Fusion 360 Add-in │
│ / Claude │ MCP │ (mcp_bridge_server) │HTTP │ (fusion_mcp_server)│
└─────────────────┘ └──────────────────────┘ └─────────────────────┘安装过程
1. Python安装依赖包
cd E:\work\FusionCAD_MCP
pip install -r requirements.txt2. Fusion 360 Add-in 安装
fusion_mcp_server打开文件夹Fusion 360 的,之Add-ins 复制到文件夹:
- 窗户: %APPDATA%\Autodesk\Autodesk Fusion 360\API\AddIns\
- Fusion 360 启动,从脚本和插件(SHIFT+S)
fusion_mcp_server执行
- HTTP服务器 http://127.0.0.1:8080 启动
3. VS Code / Claude Desktop 中的MCP 设置
VS Code (GitHub Copilot) 在…的情况下
.vscode/settings.json 添加:
{
"github.copilot.chat.codeGeneration.useInstructionFiles": true,
"mcp": {
"servers": {
"fusion-cad": {
"command": "python",
"args": ["E:\\work\\FusionCAD_MCP\\mcp_bridge_server.py"],
"env": {
"FUSION_HTTP_HOST": "localhost",
"FUSION_HTTP_PORT": "8080"
}
}
}
}
}Claude Desktop 在…的情况下
%APPDATA%\Claude\claude_desktop_config.json 添加:
{
"mcpServers": {
"fusion-cad": {
"command": "python",
"args": ["E:\\work\\FusionCAD_MCP\\mcp_bridge_server.py"],
"env": {
"FUSION_HTTP_HOST": "localhost",
"FUSION_HTTP_PORT": "8080"
}
}
}
}可用工具
🆕 动态API工具
工具名称|说明| |---------|------| | execute_fusion_code |任意Python编码Fusion 360执行 | get_fusion_api_info | API的文档信息 | get_fusion_state 获取当前文档/模型的状态
execute_fusion_code 使用方法
代码中可用的预定义变量:
app: adsk.core.Application 实例ui: adsk.core.UserInterface 实例design:当前Designroot:根组件Point3D,Vector3D,Matrix3D,ObjectCollection,ValueInput:常用型
# 例1: 全ボディの情報を取得
result = []
for body in root.bRepBodies:
result.append({
'name': body.name,
'volume': body.volume,
'faces': body.faces.count
})
# 例2: パラメータを操作
params = design.userParameters
param = params.itemByName('width')
if param:
param.expression = '50 mm'
# 例3: カスタム形状を作成
sketch = root.sketches.add(root.xYConstructionPlane)
lines = sketch.sketchCurves.sketchLines
# L字型を描画
lines.addByTwoPoints(Point3D.create(0, 0, 0), Point3D.create(3, 0, 0))
lines.addByTwoPoints(Point3D.create(3, 0, 0), Point3D.create(3, 1, 0))
lines.addByTwoPoints(Point3D.create(3, 1, 0), Point3D.create(1, 1, 0))
lines.addByTwoPoints(Point3D.create(1, 1, 0), Point3D.create(1, 2, 0))
lines.addByTwoPoints(Point3D.create(1, 2, 0), Point3D.create(0, 2, 0))
lines.addByTwoPoints(Point3D.create(0, 2, 0), Point3D.create(0, 0, 0))
# 押し出し
prof = sketch.profiles.item(0)
extrudes = root.features.extrudeFeatures
extInput = extrudes.createInput(prof, fusion.FeatureOperations.NewBodyFeatureOperation)
extInput.setDistanceExtent(False, ValueInput.createByReal(1))
extrudes.add(extInput)
result = "L-shaped extrusion created!"创建基本形状(方便快捷方式)
工具名称|说明|必需参数| |---------|------|---------------| | create_cube 创建立方体size (mm) | | create_cylinder 创建圆柱体radius, height (mm) | | create_box | 直方体を作成 | width, depth, height (mm) | | create_sphere 创建球体radius (mm) | | create_cone 创建圆锥体radius, height (mm) | | create_sq_pyramid |四角锥を作成|side_length, height (mm) | | create_tri_pyramid |正三角锥を作成|side_length, height (mm) |
选択操作
工具名称|说明|必需参数| |---------|------|---------------| | select_body 选择一个实体body_name | | select_bodies 选择两个实体body_name1, body_name2 | | select_edges 选择边body_name, edge_type (all/circular) |
编集操作
工具名称|说明|必需参数| |---------|------|---------------| | add_fillet 添加圆角radius (mm) | | move_selection |选択を移动|x_dist, y_dist, z_dist (mm) | | rotate_selection 旋转选择axis, angle, cx, cy, cz |
布尔运算
工具名称|说明|必需参数| |---------|------|---------------| | combine_selection |计算选定的两个主体|operation (join/cut/intersect) | | combine_by_name |指定名称的布尔运算|target_body, tool_body, operation |
履歴操作
工具名称|说明| |---------|------| | undo |撤消| | redo 重新开始
使用例
基本用法
「Fusion 360 で 20mm の立方体を作成して」
「半径10mm、高さ30mmの円柱を作って MyCylinder と名前を付けて」
「MyCube と MyCylinder を結合して」动的API実行
「Fusion 360 でスプライン曲線を使ったカスタム形状を作成して」
「現在のモデルの全パラメータを表示して」
「選択したフェイスにテキストを刻印して」
「STEPファイルをエクスポートして」API 引用
动态API使用时,请参照以下Autodesk请参阅官方文档:
故障排除
MCP服务器无法连接
- Python 和mcp 确认是否安装了软件包
- Fusion 360 的,之Add-in 确认是否正在运行(HTTP服务器是否启动)
http://localhost:8080/health访问确认动作
命令未执行
- Fusion 360 确认的文本命令选项板是否输出了日志
- Add-in 检查错误日志
动态代码失败
get_fusion_state确认当前状态get_fusion_api_info使用API查看文档- 检查错误消息并修改代码
