mcpField
M
MayaMCP

MayaMCP

本地服务
github.com/PatrickPalmer媒体与设计11676 周前更新

关于 MayaMCP

MayaMCP 是 Autodesk Maya 的 MCP 服务实现,让 Claude Desktop 等 AI 助手客户端通过自然语言操作 Maya 场景。Maya 端无需安装额外内容,适合早期探索者和 3D 工作者。

主要功能

  1. 01列出、创建、选择场景对象
  2. 02读取与设置对象属性
  3. 03新建、打开、保存场景
  4. 04创建模型、材质与 NURBS 曲线
  5. 05通过 Command Port 与 Maya 通信

适用场景

  1. 01用自然语言在 Maya 中批量创建基础对象
  2. 02生成城市、森林等示例场景
  3. 03为对象快速分配材质

MCP 相关

该项目是一个 MCP 服务,向 Claude Desktop 等 MCP 客户端暴露 Maya 操作工具,并通过 Maya 的命令端口执行这些操作。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

Maya MCP

Autodesk Maya 的 Model Context Protocol(MCP)服务实现

已在 Maya 2023、2025 中测试。

v0.2.0

此项目让 Claude Desktop 等 AI 助手客户端能够通过 Model Context Protocol(MCP) 使用自然语言控制 Autodesk Maya。

Maya MCP 服务还处于早期阶段,功能集较为精简。目前的重点是架构设计和简洁性。

以下是 Maya MCP 注册的一些工具。

基础工具

工具描述
list_objects_by_type获取场景中的对象列表。使用 filter_by 筛选特定对象,例如“摄像机”“灯光”“材质”或“形状”。
create_object在 Maya 场景中创建对象。可用的对象类型有 cube、cone、sphere、cylinder、camera、spotLight、pointLight、directionalLight。
get_object_attributes获取 Maya 对象的属性列表。
set_object_attributes为对象的属性设置指定值。
scene_new在 Maya 中创建新场景。如果已有场景已加载且经过修改,可使用 force 参数强制创建新场景。
scene_open在 Maya 中加载场景。
scene_save保存当前场景。如果未指定文件名,将以当前名称保存。
select_object选择场景中的对象。

高级建模工具

工具描述
create_advanced_model创建汽车、树木、建筑、杯子和椅子等复杂 3D 模型,并可设置详细参数。
mesh_operations执行挤出、倒角、细分、布尔、合并、桥接和分割等建模操作。
create_material创建并分配各种类型的材质(lambert、phong、wood、marble、chrome、glass 等)
create_curve为各种形状(线条、圆形、螺旋、螺旋线、星形、齿轮等)生成 NURBS 曲线
curve_modeling使用基于曲线的建模技术(挤出、放样、旋转、扫掠等)创建几何体
organize_objects通过分组、设定父级、布局、对齐和分布来整理对象。
generate_scene生成包含多个对象的完整 3D 场景(城市、森林、客厅、办公室、公园)

安装

Maya MCP 服务的设计只需运行 MCP 服务,无需在 Maya 中安装任何内容。这很方便,因为你可以轻松使用不同版本的 Maya,而无需担心协调版本变更。该服务利用了 Maya 为 MEL 脚本开放的默认 Command Port 来实现这一点。

MCP 需要 Python 3.10 或更高版本。目前使用 pip 安装,因为所需的依赖包很少。安装虚拟环境:

  1. 下载此项目
  2. 在项目目录中使用 Python 3.10+ 创建虚拟环境。 python -m venv .venv
  3. 激活虚拟环境
    • Windows:.venv\Scripts\activate.bat
    • Mac/Linux:source .venv\bin\activate.sh
  4. pip install -r requirements.txt

如上所述,无需为 Maya 安装任何内容。

MCP 客户端配置

根据你使用的 MCP 客户端,配置文件的位置会有所不同。对于 Anthopic Claude Desktop,前往“文件” -> “设置” -> “开发者”选项卡,然后按“编辑配置”按钮。这会打开文件选择器,并定位到 JSON 配置文件所在的目录。

接下来,你需要使用文本编辑器手动编辑 JSON 配置文件。确保使用完整文件路径。

{
  "mcpServers": {
    "MayaMCP": {
      "command": "[FULL PATH TO MayaMCP PROJECT]/.venv/Scripts/python.exe",
      "args": [
        "[FULL PATH TO MayaMCP PROJECT]/src/maya_mcp_server.py"
      ]
    }
  }
}

完成更改后,重启 Claude Desktop(使用“退出”菜单项,而不是只关闭窗口)。现在,你会在“开发者”选项卡中看到 Maya MCP 服务。

在 Claude Desktop 中,你可以验证 Maya MCP 工具是否可用。按下 README 配图 按钮,会弹出详细信息窗口。

README 配图

Maya 通信

Maya MCP 服务首次尝试与 Maya 通信时,Maya 中会弹出此窗口。请点击“全部允许”,以允许 MCP 服务与 Maya 持续通信。每次 Maya 会话都需要执行此操作。

README 配图

开发者说明

Maya MCP Server 模块的设计便于以非侵入式方式进行修改。具体做法是让 Maya Python 代码驻留在 MCP 服务中,并发送到 Maya 的命令端口执行。执行结果会发送回服务并进行处理。

默认的 Maya 命令端口运行 MEL,因此会修改 Python 代码,使其在 MEL 函数调用中运行 Python 解释器。还有一些限制,例如,多行 Python 代码无法返回任何结果。因此,每条命令都会与 Maya 建立两次连接。第一次连接用于执行操作并保存结果,第二次连接则用于读取结果。

为尽量避免 Maya 全局 Python 解释器的命名空间被占用,发送到 Maya 的函数和变量都会以 mcp_maya* 开头。每个 Maya 工具都限定在名为 _mcp_maya_scope() 的函数中。结果会赋给变量 _mcp_maya_results。这样可以显著降低名称冲突的可能性。

这种设计颇为巧妙。基本上,你只需添加 Python 文件,重启 MCP 客户端和 Maya MCP 服务即可。你不需要同时在 Maya MCP 服务和 Maya 本身集成这些操作。添加的代码只需是 Maya 专用 Python 代码,无需添加任何 MCP 装饰器。与使用固定工具集相比,这种设计更适合扩展,也更能适应不同的安装环境。

Maya MCP 服务使用底层 Python MCP 模块构建。为了在运行时动态定义所有工具,这是必要的。服务器启动时会动态捕获工具函数签名。

添加新工具

向 Maya MCP 添加新工具很容易。你无需更改任何现有代码,只需将一个工具命令 Python 文件添加到 mayatools/thirdparty 目录即可。工具本身将在 Maya 中运行,因此可以访问所有 Maya Python 模块。工具的设计有几点注意事项。

  • Python 文件名必须与函数名相同。请确保名称唯一。
  • Python 函数会同时由服务端和 Maya 加载。函数外的所有代码都必须能够在独立的 Python 环境中加载。也就是说,像 maya.cmds 这样的导入应放在函数作用域内。MCP 服务会加载该函数,以便检查函数签名,并通过 JSON-RPC 将信息发送给 MCP 客户端。
  • 系统会解析函数签名,函数参数注解必须包含相应类型。
  • 函数发送到 Maya 后,会被置于一个 _mcp_maya_scope 函数作用域中。这有多项好处。发送到 Maya 的函数不会过多污染 Maya 中的 Python 全局空间。此外,抛出的任何异常都会被捕获,并作为错误返回给 MCP 客户端。
  • 通常,出现错误时应返回列表或字典,或抛出异常。
  • 为函数及其参数取恰当的名称,以便大模型理解其操作。请添加函数文档字符串。
  • 使用默认参数是个好做法。
  • 进行错误检查是个好做法,这样错误消息就能更清楚地说明失败原因。

建议查看本项目中现有的 Maya 工具作为示例。

测试

目前 Maya MCP 仅在 Windows 上经过测试。由于所有功能都使用标准 Python,因此应该也能在 Linux 和 Mac 上运行。

未来构想

MCP 尚处于早期阶段,还有很多可以改进的地方。以下是一些构想。

  • 暴露更多功能。
  • 通过提示词工程改进使用方式,尤其是描述 Maya 的用法和数据关系。
  • 目前所有内容都注册为工具,可支持资源和提示词。
  • 或许可以查找 Maya 中包含 MCP 工具的插件。例如,检查 Maya 中的 PYTHONPATH,查找名为 MCP 的目录。然后可以检查这些目录,并将结果返回给 MCP 客户端。

许可证

MIT

链接

重要说明

本项目是在我个人的时间里,使用个人设备完成的,目的是了解 MCP。本项目与我当前的雇主无关,也不代表其工作或利益。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。