Autodesk Fusion 360的主控程序(MCP)服务器,支持远程控制和自动化Fusion 360操作。
该项目实现了一个客户端-服务器架构,允许外部应用程序与Fusion 360进行交互。服务器作为客户端与Fusion 360 API之间的桥梁,实现了命令的远程执行和模型信息的检索。
项目由三个主要组件组成:
server.py):一个独立的Python服务器,监听来自客户端的连接,并与Fusion 360通信。client.py):一个Python客户端库,连接到MCP服务器并提供发送命令和接收响应的方法。fusion360_mcp_addin.py):一个Fusion 360插件,连接到MCP服务器并提供与Fusion 360 API的实际集成。克隆此仓库或将文件复制到您希望的位置。
确保安装了Python 3.6+。
基本功能不需要额外的Python包,因为实现仅使用标准库模块。
若要启用LLM功能,请安装可选的openai包:
pip install openai
fusion360_mcp_addin.py、client.py和resources目录的整个文件夹复制到您的Fusion 360 插件目录中。确保resources/MCPIcon文件夹包含所需的图标文件(32x32-normal.png和16x16-normal.png)。Shift+S或在“设计”工作区下的“实用工具”中找到它)。python server.py
默认情况下,服务器将在127.0.0.1:8080上监听。如果需要,可以在代码中修改主机和端口。如果您计划使用LLM集成,请设置OPENAI_API_KEY环境变量。
您可以使用提供的客户端实现连接到服务器并与Fusion 360进行交互:
from client import MCPClient
# 创建并连接客户端
client = MCPClient('127.0.0.1', 8080)
if client.connect():
# 获取模型信息
client.get_model_info()
# 执行Fusion 360命令
client.execute_fusion_command('create_circle', {
'center': [0, 0, 0],
'radius': 10
})
# 完成后断开连接
client.disconnect()
服务器和客户端通过TCP套接字上的简单基于JSON的协议进行通信。每个消息都是一个至少具有type字段的JSON对象,该字段指示消息类型。
fusion_command:在Fusion 360中执行命令get_model_info:请求当前模型的信息command_result:包含命令执行结果的响应model_info:包含模型信息的响应llm_request:请求配置的LLM生成文本llm_result:包含LLM输出的响应您可以扩展服务器和插件以支持更多功能:
本项目根据MIT许可证发布。详情见LICENSE文件。
欢迎贡献!请随时提交Pull Request。