Skip to main content
Glama

Maya MCP

玛雅MCP

适用于 Autodesk Maya 的模型上下文协议 (MCP) 服务器实现

已使用 Maya 2023、2025 进行测试。

v0.1.0

该项目使 Claude Desktop 等 AI 助手客户端能够使用模型上下文协议 (MCP)通过自然语言控制 Autodesk Maya。

Maya MCP 服务器尚处于早期阶段,功能有限。最初的重点在于架构设计和简洁性。

以下是一些在 Maya MCP 中注册的工具的列表。

工具描述
按类型列出对象获取场景中的对象列表。使用 filter_by 筛选特定对象,例如“相机”、“灯光”、“材质”或“形状”。
创建对象在 Maya 场景中创建一个对象。可用的对象类型包括立方体、圆锥体、球体、圆柱体、相机、聚光灯、点光源、定向光。
获取对象属性获取 Maya 对象的属性列表。
设置对象属性使用特定值设置对象的属性。
scene_new在 Maya 中创建一个新场景。当现有场景已加载且已被修改时,使用 force 参数强制创建一个新场景。
场景打开将场景加载到 Maya 中。
场景保存保存当前场景。如果未指定文件名,则将以当前名称保存。
选择对象选择场景中的一个对象。

安装

Maya MCP 服务器的设计使其只有一个 MCP 服务器,无需在 Maya 中安装任何程序。这非常方便,因为您可以轻松使用不同版本的 Maya,而无需担心版本变更的协调。这可以通过利用 Maya 为 MEL 脚本开放的默认命令端口来实现。

MCP 需要 Python 3.10 或更高版本。目前使用 pip,因为软件包要求较低。安装虚拟环境:

  1. 下载该项目
  2. 在项目目录中使用 Python 3.10+ 创建虚拟环境。python 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 工具是否可用。按下按钮,然后会出现一个详细的弹出窗口。

玛雅通讯

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

开发者笔记

Maya MCP 服务器模块的设计旨在以非侵入式的方式轻松修改。具体方法是将 Maya Python 代码驻留在 MCP 服务器中,并发送到 Maya 的命令端口执行。执行结果将返回服务器进行处理。

默认的 Maya 命令端口运行 MEL,因此 Python 代码会被修改为在 Python 解释器的 MEL 函数调用中运行。此外,还存在一些限制,例如多行 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 客户端。
  • 通常,您希望返回列表或字典,或者在出现错误时抛出异常。
  • 为函数和参数指定合适的名称,以便法学硕士 (LLM) 能够理解其操作。并包含函数文档字符串。
  • 默认参数很好。
  • 错误检查很好,因此错误消息可以提供更好的失败解释。

我建议以该项目中现有的 Maya 工具作为示例。

测试

目前,Maya MCP 仅在 Windows 上进行了测试。由于所有组件均使用标准 Python,因此应该可以在 Linux 和 Mac 上运行。

未来的想法

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

  • 展现更多功能。
  • 改进使用提示工程,特别是描述 Maya 的使用和数据关系。
  • 一切都注册为工具,允许资源和提示。
  • 有可能在 Maya 中找到任何包含 MCP 工具的插件。例如,在 Maya 中查看 PYTHONPATH 中任何名为 MCP 的目录。所有这些插件都可以被检查,然后返回给 MCP 客户端。

执照

麻省理工学院

链接

重要提示

这个项目是我利用个人时间和设备完成的,旨在学习 MCP。该项目与我目前的雇主无关,也不代表他们的工作或利益。

-
security - not tested
A
license - permissive license
-
quality - not tested

local-only server

The server can only run on the client's local machine because it depends on local resources.

玛雅MCP

  1. 安装
    1. MCP 客户端配置
    2. 玛雅通讯
  2. 开发者笔记
    1. 添加新工具
  3. 测试
    1. 未来的想法
      1. 执照
        1. 链接
          1. 重要提示

            Related MCP Servers

            View all related MCP servers

            MCP directory API

            We provide all the information about MCP servers via our MCP API.

            curl -X GET 'https://glama.ai/api/mcp/v1/servers/PatrickPalmer/MayaMCP'

            If you have feedback or need assistance with the MCP directory API, please join our Discord server