Skip to main content
Glama

Maya MCP

Майя МКП

Реализация сервера Model Context Protocol (MCP) для Autodesk Maya

Протестировано с Maya 2023, 2025.

v0.2.0

Этот проект позволяет клиентам-помощникам на базе искусственного интеллекта, таким как Claude Desktop, управлять Autodesk Maya с помощью естественного языка, используя протокол контекста модели (MCP) .

Это ранние дни для сервера Maya MCP и имеет минимальный набор функций. Это действительно дизайн архитектуры и простота, которые были первоначальным фокусом.

Вот список некоторых инструментов, зарегистрированных в Maya MCP.

Базовые инструменты

ИнструментОписание
список_объектов_по_типуПолучить список объектов в сцене. Используйте filter_by для фильтрации определенных объектов, таких как «камеры», «свет», «материалы» или «формы».
создать_объектСоздайте объект в сцене Maya. Доступные типы объектов: куб, конус, сфера, цилиндр, камера, spotLight, pointLight, directionalLight.
получить_атрибуты_объектаПолучить список атрибутов объекта Maya.
установить_атрибуты_объектаУстановите атрибут объекта с определенным значением.
сцена_новаяСоздайте новую сцену в Maya. Используйте аргумент force для принудительного создания новой сцены, когда существующая сцена загружена и была изменена.
сцена_открытаяЗагрузите сцену в Maya.
сцена_сохранитьСохранить текущую сцену. Если имя файла не указано, он сохранит его под текущим именем.
выберите_объектВыберите объект на сцене.

Расширенные инструменты моделирования

ИнструментОписание
создать_расширенную_модельСоздавайте сложные 3D-модели, такие как автомобили, деревья, здания, чашки и стулья с подробными параметрами.
операции_сеткиВыполняйте такие операции моделирования, как выдавливание, скос, подразделение, логическое выполнение, объединение, мост и разделение.
создать_материалСоздавайте и назначайте материалы различных типов (ламберт, фонг, дерево, мрамор, хром, стекло и т. д.)
создать_кривуюГенерация кривых NURBS различных форм (линия, круг, спираль, винтовая линия, звезда, шестерня и т. д.)
моделирование_кривойСоздание геометрии с использованием методов моделирования на основе кривых (выдавливание, вытягивание, вращение, развертка и т. д.)
организовать_объектыОрганизуйте объекты посредством группировки, родительства, компоновки, выравнивания и распределения.
генерировать_сценуСоздавайте полноценные 3D-сцены с несколькими объектами (город, лес, гостиная, офис, парк)

Установка

Сервер Maya MCP разработан таким образом, что есть только сервер MCP, и не требуется ничего устанавливать в Maya. Это полезно, поскольку вы можете легко использовать разные версии Maya и не беспокоиться о координации изменений версий. Это делается с использованием командного порта по умолчанию, который Maya открывает для скриптов MEL.

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 Client вы используете, местоположение файла конфигурации отличается. Для 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 Server был разработан для легкой модификации неинтрузивным способом. Это достигается путем размещения кода Maya Python на сервере MCP и отправки его на командный порт Maya для выполнения. Результаты отправляются обратно на сервер и обрабатываются.

Порт команд Maya по умолчанию запускает MEL, поэтому код Python изменяется для запуска в вызове функции MEL к интерпретатору Python. Также существуют некоторые ограничения, например, многострочный код Python не может иметь возвращаемых результатов. Поэтому каждая команда создает два соединения с Maya. Первое для запуска операции и сохранения результатов. Второе соединение затем для чтения результатов.

Чтобы помочь минимизировать заполнение пространства имен в глобальном интерпретаторе Python Maya, функции и переменные, отправляемые в Maya, будут ограничены областью действия, начинающейся с mcp_maya *. Каждый из инструментов Maya ограничен функцией с именем _mcp_maya_scope(). Результаты присваиваются переменной _mcp_maya_results. Такой способ должен значительно снизить вероятность конфликтов имен.

В этом дизайне есть немного элегантности. По сути, вы можете просто добавить файл Python, перезапустить MCP Client и сервер Maya MCP и все. Вам не нужно интегрировать операции как на сервере Maya MCP, так и в самой Maya. Код, который вы добавляете, — это только Python, специфичный для Maya, и не нужно добавлять никаких декораторов MCP. Это гораздо лучший дизайн для роста и адаптации к различным установкам, чем иметь фиксированный набор инструментов.

Сервер Maya MCP был создан с использованием низкоуровневого модуля Python MCP. Это было необходимо для динамического определения всех инструментов во время выполнения. Сигнатуры функций инструментов захватываются динамически при запуске сервера.

Добавление новых инструментов

Легко добавлять новые инструменты в Maya MCP. Вам не нужно менять существующий код. Все, что вам нужно сделать, это добавить один файл команды инструмента Python в каталог mayatools/thirdparty. Сам инструмент будет работать в Maya, поэтому он будет иметь доступ ко всем модулям Maya Python. В дизайне инструмента есть несколько программистских заметок.

  • Имя файла Python и имя функции должны совпадать. Убедитесь, что они уникальны.
  • Функция Python будет загружена как сервером, так и Maya. Любой код за пределами функции должен иметь возможность загрузки в автономный Python. Это означает, что любой импорт, такой как maya.cmds, должен выполняться в области действия функции. Сервер MCP загружает функцию, чтобы иметь возможность проверить сигнатуру функции для отправки информации клиенту MCP через JSON-RPC.
  • Сигнатура функции будет проанализирована и должна включать все типы в аннотации аргумента функции.
  • Когда ваша функция отправляется в Maya, она будет ограничена функцией am _mcp_maya_scope. Это дает ряд преимуществ. Функции, отправляемые в Maya, не будут слишком сильно загрязнять глобальное пространство Python, работая в Maya. Кроме того, любые выданные исключения будут перехвачены и возвращены обратно в MCP Client как ошибки.
  • Как правило, при возникновении ошибки требуется вернуть либо список, либо словарь, либо выдать исключение.
  • Назовите функцию и аргументы соответствующим образом, чтобы LLM мог понять операцию. Включите строку документации функции.
  • Аргументы по умолчанию хороши.
  • Проверка ошибок полезна, поскольку сообщения об ошибках могут предоставлять более точные объяснения неудачных попыток.

Я рекомендую рассмотреть существующие инструменты Maya в этом проекте в качестве примеров.

Тестирование

В настоящее время Maya MCP протестирован только на Windows. Должен работать как на Linux, так и на Mac, поскольку все использует стандартный Python.

Идеи будущего

MCP только начинает развиваться, и многое еще предстоит улучшить. Вот несколько идей.

  • Раскройте больше функциональности.
  • Улучшить использование оперативной инженерии, в частности, описав использование Maya и взаимосвязи данных.
  • Все зарегистрировано как инструменты, ресурсы и подсказки.
  • Можно было бы найти любые плагины в Maya, которые имеют инструменты MCP. Может быть, что-то вроде поиска PYTHONPATH в Maya с любым каталогом с именем MCP. Все это можно было бы проверить и затем предоставить обратно клиенту MCP.

Лицензия

Массачусетский технологический институт

Ссылки

Важное примечание

Этот проект был сделан в мое личное время и на моем оборудовании, чтобы узнать о MCP. Проект не связан с моим текущим работодателем и не представляет его работу или интересы.

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