使用说明
项目简介
BOA Control Max MCP服务器是一个桥梁,旨在通过Model Context Protocol (MCP) 标准协议,使得AI工具能够与Autodesk 3ds Max软件进行交互。它允许AI工具,如Cursor等,通过发送符合MCP协议的请求,在3ds Max中执行MaxScript和Python代码,从而实现场景控制、自动化建模等功能。该项目由两部分组成:HTTP服务器作为MCP接口,以及运行在3ds Max内部的TCP服务器,两者协同工作,完成代码的远程执行和结果返回。
主要功能点
- MCP协议支持: 实现了Model Context Protocol服务器,可以被任何兼容MCP协议的客户端(如Cursor)调用。
- 远程代码执行: 支持在3ds Max中远程执行 MaxScript 和 Python 代码。
- 工具注册: 注册了 'executeMxsCode' 和 'executePyCode' 两个工具,允许客户端指定语言和代码内容来执行。
- 标准化接口: 通过MCP协议提供标准化的接口,方便AI工具集成和调用3ds Max的功能。
- SSE结果流: 使用Server-Sent Events (SSE) 技术实时推送代码执行结果。
安装步骤
-
克隆仓库:
git clone https://github.com/franciscohermida/boa-control-max.git cd boa-control-max -
安装依赖: 确保已安装 Node.js 和 pnpm,然后运行:
pnpm install -
启动开发服务器:
pnpm run dev这将启动 HTTP 服务器和 MCP 服务器。
-
启动 3ds Max TCP 服务器: 在 3ds Max 的 Python 脚本编辑器中执行以下脚本,启动 TCP 服务器:
import sys sys.path.append(r'C:\path\to\boa-control-max\packages\max-server\src\max-utils') # 将 'C:\path\to\boa-control-max' 替换为你的 boa-control-max 仓库的实际路径 import maxPyTcpServer server = maxPyTcpServer.MaxMCPServer() server.start()注意: 你需要将 'C:\path\to\boa-control-max' 替换为 'boa-control-max' 仓库在你的本地文件系统中的实际路径。为了方便,可以将 'boa-control-max' 仓库放在一个固定的、容易访问的位置。
服务器配置
对于 MCP 客户端(例如 Cursor),你需要配置 MCP 服务器连接信息。以下是一个 '.cursor/mcp.json' 配置示例,你需要根据实际情况进行调整。
{ "servers": [ { "name": "BOA Control Max MCP Server", "command": "pnpm", "args": [ "run", "dev" ], "serverTransport": "stdio" } ] }
配置参数说明:
- 'name': MCP 服务器的名称,可以自定义,用于在客户端中标识服务器。
- 'command': 启动 MCP 服务器的命令。这里使用 'pnpm',因为项目使用 pnpm 管理包。
- 'args': 启动命令的参数。 'run dev' 是 'package.json' 中定义的启动开发服务器的脚本。
- 'serverTransport': 服务器传输协议,这里使用 'stdio' (标准输入/输出),这是 '@modelcontextprotocol/sdk/server/stdio.js' 使用的传输方式。
重要提示: 'command' 和 'args' 需要确保能够正确启动 'packages/max-mcp-server/src/server.ts' 文件中定义的 MCP 服务器。 如果你的环境配置不同,可能需要调整 'command' 和 'args'。 确保在运行 Cursor 等 MCP 客户端之前,已经成功启动了 HTTP 服务器和 3ds Max TCP 服务器。
基本使用方法
- 确保 3ds Max 软件已打开,并且 TCP 服务器脚本已经在 3ds Max 的 Python 环境中成功运行。
- 启动 BOA Control Max MCP 服务器 (如果尚未启动)。
- 在 MCP 客户端(如 Cursor)中启用并配置 "BOA Control Max MCP Server"。
- 在 MCP 客户端中,你可以使用注册的工具 'executeMxsCode' 和 'executePyCode' 来执行 MaxScript 或 Python 代码。 例如,在 Cursor 中,你可以使用 '@executeMxsCode' 或 '@executePyCode' 这样的语法,并提供 'code' 参数来指定要执行的代码。
示例 (在 Cursor 中使用):
@executePyCode code="import pymxs; rt = pymxs.runtime; sphere = rt.Sphere(); sphere.radius = 20" 创建一个半径为20的球体
请参考 MCP 客户端的文档,了解如何更详细地使用 MCP 服务器提供的工具。
信息
分类
桌面与硬件