Integrations
Enables control of Autodesk Maya through natural language, providing tools for creating and manipulating 3D objects, managing scenes, selecting objects, and working with object attributes in Maya.
Maya MCP
Implementación del servidor del Protocolo de Contexto de Modelo (MCP) para Autodesk Maya
Probado con Maya 2023, 2025.
versión 0.1.0
Este proyecto permite que los clientes asistentes de IA como Claude Desktop controlen Autodesk Maya a través del lenguaje natural utilizando el Protocolo de contexto de modelo (MCP) .
El servidor Maya MCP se encuentra en sus primeras etapas y cuenta con una funcionalidad mínima. Inicialmente, se priorizó el diseño arquitectónico y la simplicidad.
Aquí hay una lista de algunas de las herramientas registradas en Maya MCP.
Herramienta | Descripción |
---|---|
lista_de_objetos_por_tipo | Obtén una lista de objetos en la escena. Usa filter_by para filtrar por objetos específicos, como "cámaras", "luces", "materiales" o "formas". |
crear_objeto | Crea un objeto en la escena de Maya. Los tipos de objeto disponibles son cubo, cono, esfera, cilindro, cámara, foco, punto de luz y luz direccional. |
obtener_atributos_del_objeto | Obtenga una lista de atributos de un objeto Maya. |
establecer_atributos_de_objeto | Establezca un atributo de un objeto con un valor específico. |
escena_nueva | Crea una nueva escena en Maya. Usa el argumento "force" para forzar una nueva escena cuando se carga y modifica una existente. |
escena_abierta | Cargar una escena en Maya. |
guardar escena | Guarda la escena actual. Si no se especifica el nombre del archivo, se guardará con el nombre actual. |
seleccionar_objeto | Seleccione un objeto en la escena. |
Instalación
El servidor MCP de Maya está diseñado para que solo exista un servidor MCP y no requiera la instalación de ningún componente dentro de Maya. Esto resulta útil, ya que permite usar fácilmente diferentes versiones de Maya sin tener que preocuparse por coordinar los cambios de versión. Esto se logra aprovechando el puerto de comandos predeterminado que Maya abre para scripts MEL.
MCP requiere Python 3.10 o superior. Actualmente, se usa pip, ya que los requisitos del paquete son mínimos. Para instalar el entorno virtual:
- descargar este proyecto
- Cree un entorno virtual usando Python 3.10+ en el directorio del proyecto.
python -m venv .venv
- activar el entorno virtual
- Ventanas:
.venv\Scripts\activate.bat
- Mac/Linux:
source .venv\bin\activate.sh
- Ventanas:
pip install -r requirements.txt
Como se dijo, no es necesario instalar nada para Maya.
Configuración del cliente MCP
La ubicación del archivo de configuración varía según el cliente MCP que utilice. Para Anthopic Claude Desktop , vaya a Archivo -> Configuración -> Pestaña Desarrollador y pulse el botón Editar configuración. Esto abrirá el buscador de archivos en la ubicación del archivo de configuración JSON.
A continuación, debe editar el archivo JSON de configuración manualmente con un editor de texto. Asegúrese de usar las rutas de archivo completas.
Una vez realizados los cambios, reinicie Claude Desktop (use la opción Salir en lugar de cerrar la ventana). En la pestaña Desarrolladores, verá el servidor Maya MCP.
En Claude Desktop, puede verificar que las herramientas MCP de Maya estén disponibles. Presione el botón Botón y aparecerá una ventana emergente detallada.
Comunicaciones Mayas
Cuando el servidor MCP de Maya intente comunicarse con Maya por primera vez, verá esta ventana emergente. Haga clic en "Permitir todo" para permitir la comunicación continua entre el servidor MCP y Maya. Esto deberá hacerse en cada sesión de Maya.
Notas del desarrollador
El módulo del servidor MCP de Maya se diseñó para modificarse fácilmente de forma discreta. Esto se logra mediante la instalación del código Python de Maya en el servidor MCP y su envío al puerto de comandos de Maya para su ejecución. Los resultados se envían de vuelta al servidor y se procesan.
El puerto de comandos predeterminado de Maya ejecuta MEL, por lo que el código Python se modifica para ejecutarse dentro de la llamada de función MEL al intérprete de Python. También existen algunas limitaciones, como que el código Python de varias líneas no puede devolver ningún resultado. Por lo tanto, cada comando crea dos conexiones con Maya: la primera para ejecutar la operación y guardar los resultados, y la segunda para leerlos.
Para minimizar la carga del espacio de nombres en el intérprete global de Python de Maya, las funciones y variables enviadas a Maya tendrán como ámbito inicial mcp_maya *. Cada herramienta de Maya tiene como ámbito una función llamada _mcp_maya_scope(). Los resultados se asignan a la variable _mcp_maya_results. De esta forma, se reducirá significativamente la posibilidad de conflictos de nombres.
Este diseño tiene cierta elegancia. Básicamente, basta con agregar el archivo Python, reiniciar el cliente MCP y el servidor MCP de Maya y listo. No es necesario integrar las operaciones tanto en el servidor MCP de Maya como en Maya. El código que se agrega es solo Python específico de Maya y no requiere añadir decoradores MCP. Este diseño es mucho más adecuado para crecer y adaptarse a diferentes instalaciones, en lugar de tener un conjunto fijo de herramientas.
El servidor MCP de Maya se creó utilizando el módulo MCP de bajo nivel de Python. Esto fue necesario para permitir la definición dinámica de todas las herramientas en tiempo de ejecución. Las firmas de las funciones de las herramientas se capturan dinámicamente al iniciar el servidor.
Agregar nuevas herramientas
Añadir nuevas herramientas a Maya MCP es fácil. No es necesario modificar el código existente. Basta con añadir un archivo de comandos de herramienta de Python al directorio mayatools/thirdparty. La herramienta se ejecutará en Maya, por lo que tendrá acceso a todos los módulos de Python de Maya. El diseño de la herramienta incluye algunas notas de programación.
- El nombre del archivo de Python y el nombre de la función deben ser iguales. Asegúrese de que sean únicos.
- La función de Python será cargada tanto por el servidor como por Maya. Cualquier código externo a la función debe poder cargarse en Python independiente. Esto significa que cualquier importación, como maya.cmds, debe realizarse dentro del alcance de la función. El servidor MCP carga la función para poder inspeccionar su firma y enviar la información al cliente MCP mediante JSON-RPC.
- Se analizará la firma de la función y deberá incluir todos los tipos en la anotación del argumento de la función.
- Cuando tu función se envía a Maya, su alcance se encuentra dentro de la función _mcp_maya_scope. Esto ofrece varias ventajas. Las funciones enviadas a Maya no contaminarán demasiado el espacio global de Python al ejecutarse en Maya. Además, cualquier excepción lanzada se detectará y se devolverá al cliente MCP como errores.
- Generalmente, desea devolver una lista o un diccionario o generar una excepción cuando hay un error.
- Asigne un nombre adecuado a su función y argumentos para que el LLM pueda comprender la operación. Incluya una cadena de documentación de la función.
- Los argumentos predeterminados son buenos.
- La verificación de errores es útil para que los mensajes de error puedan proporcionar mejores explicaciones de las fallas.
Recomiendo mirar las herramientas Maya existentes en este proyecto como ejemplos.
Pruebas
Actualmente, Maya MCP solo se ha probado en Windows. Debería funcionar tanto en Linux como en Mac, ya que todo usa Python estándar.
Ideas futuras
MCP está en sus inicios y hay mucho por mejorar. Aquí tienes algunas ideas.
- Exponer más funcionalidad.
- Mejorar el uso de la ingeniería rápida, en particular describiendo el uso de Maya y las relaciones de datos.
- Todo queda registrado como herramientas, permite disponer de recursos y avisos.
- Podría ser posible encontrar cualquier complemento en Maya que tenga herramientas MCP. Quizás sea algo como consultar la ruta PYTHONPATH en Maya con cualquier directorio llamado MCP. Todo esto podría inspeccionarse y luego devolverse al cliente MCP.
Licencia
Instituto Tecnológico de Massachusetts (MIT)
Campo de golf
Nota importante
Este proyecto se realizó en mi tiempo libre y con mi equipo para aprender sobre MCP. El proyecto no está afiliado a mi empleador actual ni representa su trabajo ni sus intereses.
Related MCP Servers
- JavaScript
- JavaScriptMIT License
- GoMIT License
- MIT License