使用说明
DAMaya MCP (Technical Artist Suite)
基于 Model Context Protocol (MCP) 协议的 Autodesk Maya TA 联动控制台与自动化工具集,支持外部 AI 客户端(如 Claude、Cursor、VS Code)与 Maya 本地会话的深度交互。
🌟 核心特性
- 图形化控制面板 (PySide):内置独立的控制面板窗口,兼容 PySide2 与 PySide6,具备双状态灯心跳监控(CommandPort 端口及外部 Server 进程)、可视化 TA 工具箱、以及带有日志导出功能的控制台。
- Maya 顶栏菜单集成:自动在 Maya 主窗口菜单栏中注册
DAMaya MCP原生菜单,支持一键打开面板、管理服务生命周期、或直接运行高频诊断。 - 智能化自动启动:自带注册表感知安装器,支持开机自动打开 Maya 通信端口并智能托管 MCP 守护进程,可一键撤回安装,无损保留用户其他
userSetup.py配置。 - 标准化代码执行器:提供核心级工具
execute_python_code。执行代码自动包裹于 Maya 的事务块(Undo Chunk)中,支持撤销(Ctrl+Z),完全兼容code与python_code参数别名,完美规避 AI 客户端的调用校验崩溃。 - 智能选择降级容错:关键诊断工具全部支持缺省参数调用。当外部未指定目标节点时,自动默认降级应用 Maya 场景中的当前选择,实现极高的人机协同流畅度。
🚀 快速开始
0. 前置要求
- Python 3.10+:独立安装的 Python(后台 MCP 服务由其驱动,与 Maya 内置 Python 无关),推荐 3.11+。
- Autodesk Maya:任意带有 PySide 的现代版本。
- 一个 MCP 客户端:Claude Desktop、Cursor 或 VS Code 等。
1. 创建虚拟环境并安装依赖
在项目根目录下,创建 .venv 虚拟环境并安装 requirements.txt 中的依赖:
Windows(PowerShell / CMD):
python -m venv .venv
.venv\Scripts\python.exe -m pip install -r requirements.txt
macOS / Linux:
python -m venv .venv
.venv/bin/python -m pip install -r requirements.txt
💡 说明:
mcp、pydantic等后台服务依赖都隔离安装在这个.venv中,避免污染系统 Python。步骤 3 的generate_mcp_config.py在检测到.venv缺失时也会自动创建并安装依赖,因此即便跳过本步骤也能兜底;但手动先完成一遍能更早暴露环境问题。
2. 自动挂载至 Maya 启动链
在项目根目录下,使用 Python 运行安装器:
python install_maya_mcp.py
注:安装程序会自动定位您的 Maya 脚本目录,并安全、幂等地修改 userSetup.py,无损保留您原有的配置。
3. 生成 MCP 客户端配置
在项目根目录下运行配置辅助程序:
python generate_mcp_config.py
注:该脚本会复用(或自动创建).venv 并确保依赖已安装,然后在终端打印标准的 JSON 配置块及常用存放路径,并保持窗口开启以便复制粘贴。
4. 重启 Maya
重启 Maya 后,系统会自动:
- 开启 TCP 通信端口(默认
:7022,可通过项目根config.json的commandport_port修改); - 启动顶栏主菜单
DAMaya MCP; - 根据配置自动引导外部后台 MCP 守护进程。
⚙️ 补充:
install_maya_mcp.py与generate_mcp_config.py本身只用 Python 标准库,用系统python运行即可;真正需要依赖的是后台 MCP 服务main.py,它由.venv中的 Python 驱动。
🛠️ TA 工具箱列表
Perception (场景感知)
execute_python_code(code=None, python_code=None):核心标准化通道,用于在事务块内安全执行任意 Python 代码。同时支持code与遗留命名python_code参数。get_scene_summary():快速扫描大纲节点,统计真实 Mesh、Joint、Camera、Constraint、Material 数量(已过滤 Intermediate 中间体节点)。get_selection_context():查询当前选择对象的数量、列表及首选节点类型。get_node_attributes(node_name=None):检索指定节点的属性集(可键控/自定义属性及类型)。若未指定参数,默认应用 Maya 当前选择。query_scene_topology(pattern="*", node_type="transform"):深度查询节点拓扑、连接细节及 DAG 父子层级(自动跳过非 DAG 节点)。search_nodes_by_attribute(attr_name, value_pattern=None):精准/模糊搜索场景中带有特定自定义属性的节点。capture_viewport(output_name="ai_capture.jpg"):后台生成当前视口的 playblast 截图。