Maya 影视动画与建模 MCP 服务器 (Maya MCP Server)
Maya MCP Server 允许 AI 智能体通过模型上下文协议 (MCP),使用日常自然语言直接与 Autodesk Maya 建立深度交互并进行全方位控制。这一集成使创作者能够通过提示词驱动 3D 辅助建模、场景程序化构建、材质赋予与动效资产编排。
该服务器是由资深开发者 Patrick Palmer 创建并开源的第三方独立工具,非 Autodesk 官方或 Griptape 官方维护项目。
第三方开源服务免责提示
该 MCP 服务器未获得 Griptape 或 Autodesk Maya 的官方商业背书。在将其接入工作流时请自行评估操作边界,并确保在执行前对重要工程做好物理备份。
前置运行环境 (Prerequisites)
在正式接入 Maya MCP 服务器前,请确保满足以下条件:
- 已安装 Autodesk Maya 2023 或更新版本;
- 宿主机安装了 Python 3.10 或更新版本;
- 已克隆并搭建好 Maya MCP 服务端本地虚拟环境(详见下文安装向导)。
部署与配置向导 (Installation)
第一步:下载并搭建 Maya MCP 服务端环境
-
打开操作系统终端,导航至存放代码仓库的物理路径(例如 Mac 上的
$HOME/Documents/GitHub或 Windows 下的对应工程盘):cd $HOME/Documents/GitHub -
克隆官方代码仓库并进入目录:
git clone https://github.com/PatrickPalmer/MayaMCP.git cd MayaMCP -
创建专属的 Python 虚拟隔离环境:
python -m venv .venv -
激活该虚拟环境:
- Windows:
.venv\Scripts\activate.bat - macOS / Linux:
source .venv/bin/activate
- Windows:
-
安装核心依赖包:
pip install -r requirements.txt
第二步:启动 Maya 并激活命令端口 (Command Port)
Maya 内部原生提供了 Command Port 端口机制,用于接收外部 IPC 管道指令。MCP 服务正是通过该端口与 Maya 内部 Python 解释器通信。
- 启动 Autodesk Maya 软件;
-
打开 Maya 的 Script Editor (脚本编辑器),并在 Python 标签页中执行以下代码:
import maya.cmds as cmds def setup_maya_command_port(port=50007): """配置并开启 Maya 命令端口(带容错处理)""" try: # 首先尝试关闭该端口上可能残留的历史连接 try: cmds.commandPort(name=f"localhost:{port}", close=True) print(f"Closed existing command port on localhost:{port}") except: pass # 正式启用命令端口 cmds.commandPort(name=f"localhost:{port}") print(f"Command Port successfully enabled on localhost:{port}") return True except Exception as e: print(f"Error setting up command port: {e}") return False # 执行初始化设置 if setup_maya_command_port(50007): print("Maya MCP server should now be able to connect!") else: print("Failed to setup command port. Check Maya's Preferences.")
每次启动 Maya 时均需激活端口
Command Port 默认不会在关闭 Maya 后持久化保持。这意味着每次全新打开 Maya 时,均需执行一次端口激活脚本。
工程简化推荐:配置自动启动
为了免除每次手动粘贴脚本的繁琐操作,可采用以下两种自动化方式之一:
方案 A:创建 Maya 工具架快捷按钮 (Shelf Button) 将上述 Python 脚本直接全选拖拽至 Maya 顶部的用户 Shelf 工具架中生成快捷图标,每次启动软件后轻点一下即可。
方案 B:通过 userSetup.py 实现开机自动静默执行
定位到 Maya 的用户脚本目录:
- Windows:%USERPROFILE%\Documents\maya\2025\scripts\
- macOS:~/Library/Preferences/Autodesk/maya/2025/scripts/
- Linux:~/maya/2025/scripts/
在目录下的 userSetup.py(若不存在则新建)中写入自动执行代码,即可实现软件启动时全自动静默监听 50007 端口。
初次授权弹窗提示
当 MCP 服务初次尝试穿透端口连接 Maya 时,Maya 内部可能会弹出一个安全授权弹窗。请务必勾选并点击 "Allow All (全部允许)" 以保障后续持续指令畅通。
第三步:在 Griptape Nodes 中配置与注册
- 打开 Griptape Nodes,依次点击 Settings → MCP Servers;
- 点击 + New MCP Server;
-
基础参数配置:
- Server Name/ID:
maya - Connection Type:
Local Process (stdio) - Configuration JSON(根据你所处的操作系统选择对应语法):
Windows 平台示例:
{ "transport": "stdio", "command": "C:\\path\\to\\MayaMCP\\.venv\\Scripts\\python.exe", "args": [ "C:\\path\\to\\MayaMCP\\src\\maya_mcp_server.py" ], "cwd": null, "encoding": "utf-8", "encoding_error_handler": "strict" }macOS / Linux 平台示例:
{ "transport": "stdio", "command": "/path/to/MayaMCP/.venv/bin/python", "args": [ "/path/to/MayaMCP/src/maya_mcp_server.py" ], "cwd": null, "encoding": "utf-8", "encoding_error_handler": "strict" }⚠️ 注意:请务必将路径替换为你本机真实的
MayaMCP虚拟环境解释器及入口脚本绝对物理路径。 - Server Name/ID:
-
点击 Create Server。
提供的可用工具集矩阵 (Available Tools)
基础场景与对象控制
list_objects_by_type— 列出场景中的所有实体对象,支持针对摄像机、灯光、材质球或几何形态进行类型过滤;create_object— 创建标准基础 3D 图元(立方体、圆锥、球体、圆柱体、摄像机及灯光组件);get_object_attributes— 提取 Maya 物体节点上的所有属性列表与当前取值;set_object_attribute— 精准修改某个对象属性的数值或布尔状态;scene_new/scene_open/scene_save— 控制场景的重置新建、打开载入与持久化磁盘保存;select_object/clear_selection_list— 控制视口选中状态与清空选区;viewport_focus— 将三维视图摄像机自动居中并框选聚焦于目标物体。
工业级高级建模与资产编排
create_advanced_model— 基于复合参数算法程序化生成复杂 3D 资产(载具、植被树木、楼宇建筑、杯子、桌椅家具等);mesh_operations— 执行网格拓扑编辑操作(挤出 Extrude、倒角 Bevel、细分 Subdivide、布尔运算 Boolean、合并 Combine、桥接 Bridge、切分 Split);create_material— 实时创建并为表面赋予材质着色器(Lambert、Phong、木质纹理、大理石、金属铬、玻璃等);create_curve— 生成 NURBS 曲线(线性、圆形、阿基米德螺旋线、螺旋弹簧线、星形、工业齿轮等);curve_modeling— 基于曲线生成曲面几何体(放样 Loft、旋转成型 Revolve、沿路径扫掠 Sweep);organize_objects— 空间结构编组、父子级链接对齐与矩阵阵列分布。
典型自然语言驱动提示词范例
在挂载了 maya 服务的 MCPTask 节点中,可直接输入:
- “创建一个包含 4 个车轮、具有流线型运动跑车风格的汽车基础模型。”
- “生成一棵包含 3 个主枝干且树叶茂密的松树模型。”
- “构建一座带有窗户细节的楼宇,并为其表面赋予红砖纹理材质。”
- “生成一个高脚杯,并为其指定高反射率的金属铬着色器。”
- “生成一条三维阿基米德螺旋曲线,并通过圆形横截面扫掠挤出成一根机械弹簧。”
- “将视口中所有的室内家具模型整体打包编组,命名为
LivingRoom_Furniture并居中对齐世界坐标系原点。” - “重置场景并将当前成果保存为
my_project.ma。”
常见疑难排查 (Troubleshooting)
通信连接失败 (Connection Issues)
- 检查 Maya 软件是否处于正常运行状态;
- 确认是否已在 Script Editor 中成功激活
setup_maya_command_port; - 检查 JSON 中配置的 Python 路径是否指向了虚拟环境
.venv内部的执行文件。
权限阻断 (Permission Denied)
- Maya 初次通信时弹出的网络询问弹窗,必须点击 "Allow All" 给予放行。
安全警示与风控原则
任意代码动态执行风险 (Arbitrary Code Execution)
Maya MCP 服务器最终会将大模型的生成逻辑转换为 Python / MEL 脚本并在 Maya 解释器内部执行:
- 在执行高破坏性操作(如批量对象布尔运算或脚本清空)前,务必先通过
Cmd/Ctrl+S将工程保存落盘; - 在生产制作管线中,建议分段进行复杂模型生成;
- 确保只在受信的网络环境中开放 Command Port。