Maya MCP
Model Context Protocol (MCP)-Serverimplementierung für Autodesk Maya
Getestet mit Maya 2023, 2025.
Version 0.2.0
Dieses Projekt ermöglicht es KI-Assistentenclients wie Claude Desktop, Autodesk Maya mithilfe des Model Context Protocol (MCP) über natürliche Sprache zu steuern.
Der Maya MCP-Server befindet sich noch in der Anfangsphase und verfügt über einen minimalen Funktionsumfang. Der Fokus lag zunächst auf dem Architekturdesign und der Einfachheit.
Hier ist eine Liste einiger der bei Maya MCP registrierten Tools.
Grundlegende Werkzeuge
Werkzeug | Beschreibung |
---|---|
Objekte nach Typ auflisten | Rufen Sie eine Liste der Objekte in der Szene ab. Verwenden Sie filter_by, um nach bestimmten Objekten wie „Kameras“, „Lichtern“, „Materialien“ oder „Formen“ zu filtern. |
Objekt erstellen | Erstellen Sie ein Objekt in der Maya-Szene. Verfügbare Objekttypen sind Würfel, Kegel, Kugel, Zylinder, Kamera, Spotlicht, Punktlicht und Richtungslicht. |
get_object_attributes | Rufen Sie eine Liste der Attribute eines Maya-Objekts ab. |
Objektattribute festlegen | Legen Sie für das Attribut eines Objekts einen bestimmten Wert fest. |
neue Szene | Erstellen Sie eine neue Szene in Maya. Verwenden Sie das Argument „force“, um eine neue Szene zu erzwingen, wenn eine vorhandene Szene geladen und geändert wurde. |
Szene_öffnen | Laden Sie eine Szene in Maya. |
Szene speichern | Speichert die aktuelle Szene. Wenn kein Dateiname angegeben ist, wird die Szene unter dem aktuellen Namen gespeichert. |
Objekt auswählen | Wählen Sie ein Objekt in der Szene aus. |
Erweiterte Modellierungswerkzeuge
Werkzeug | Beschreibung |
---|---|
Erstellen Sie ein erweitertes Modell | Erstellen Sie komplexe 3D-Modelle wie Autos, Bäume, Gebäude, Tassen und Stühle mit detaillierten Parametern. |
Mesh-Operationen | Führen Sie Modellierungsvorgänge wie Extrudieren, Abschrägen, Unterteilen, Boolesche Operationen, Kombinieren, Überbrücken und Teilen durch. |
Material erstellen | Erstellen und weisen Sie Materialien verschiedener Typen zu (Lambert, Phong, Holz, Marmor, Chrom, Glas usw.). |
Kurve erstellen | Generieren Sie NURBS-Kurven für verschiedene Formen (Linie, Kreis, Spirale, Helix, Stern, Zahnrad usw.) |
Kurvenmodellierung | Erstellen Sie Geometrie mithilfe kurvenbasierter Modellierungstechniken (Extrudieren, Loften, Drehen, Sweeping usw.). |
Objekte organisieren | Organisieren Sie Objekte durch Gruppieren, Zuordnung, Layout, Ausrichtung und Verteilung. |
Szene generieren | Generieren Sie komplette 3D-Szenen mit mehreren Objekten (Stadt, Wald, Wohnzimmer, Büro, Park) |
Installation
Der Maya MCP-Server ist so konzipiert, dass er nur einen MCP-Server enthält und keine Installation innerhalb von Maya erfordert. Dies ist hilfreich, da Sie problemlos verschiedene Maya-Versionen verwenden können und sich nicht um die Koordination von Versionsänderungen kümmern müssen. Dies geschieht durch die Nutzung des standardmäßigen Befehlsports, den Maya für MEL-Skripting öffnet.
MCP erfordert Python 3.10 oder höher. Derzeit wird pip verwendet, da die Paketanforderungen minimal sind. So installieren Sie die virtuelle Umgebung:
- Laden Sie dieses Projekt herunter
- Erstellen Sie mit Python 3.10+ eine virtuelle Umgebung im Projektverzeichnis.
python -m venv .venv
- Aktivieren Sie die virtuelle Umgebung
- Windows:
.venv\Scripts\activate.bat
- Mac/Linux:
source .venv\bin\activate.sh
- Windows:
pip install -r requirements.txt
Wie gesagt, für Maya muss nichts installiert werden.
MCP-Client-Konfiguration
Je nachdem, welchen MCP-Client Sie verwenden, unterscheidet sich der Speicherort der Konfigurationsdatei. Für Anthopic Claude Desktop gehen Sie zu Datei -> Einstellungen -> Registerkarte „Entwickler“ und klicken Sie auf die Schaltfläche „Konfiguration bearbeiten“. Dadurch wird der Dateifinder im Verzeichnis der JSON-Konfigurationsdatei geöffnet.
Anschließend müssen Sie die JSON-Konfigurationsdatei manuell mit einem Texteditor bearbeiten. Achten Sie darauf, vollständige Dateipfade zu verwenden.
Sobald die Änderungen vorgenommen wurden, starten Sie Claude Desktop neu (verwenden Sie den Menüpunkt „Beenden“, anstatt das Fenster einfach zu schließen). Im Reiter „Entwickler“ wird nun der Maya MCP-Server aufgelistet.
In Claude Desktop können Sie überprüfen, ob die Maya MCP-Tools verfügbar sind. Drücken Sie die Schaltfläche und ein detailliertes Popup wird angezeigt.
Maya-Kommunikation
Wenn der Maya MCP-Server zum ersten Mal versucht, mit Maya zu kommunizieren, wird dieses Popup in Maya angezeigt. Klicken Sie auf „Alle zulassen“, um die fortlaufende Kommunikation zwischen dem MCP-Server und Maya zu ermöglichen. Dies muss bei jeder Maya-Sitzung wiederholt werden.
Entwicklernotizen
Das Maya MCP-Servermodul wurde so konzipiert, dass es einfach und ohne Eingriffe geändert werden kann. Dies geschieht, indem der Maya-Python-Code auf dem MCP-Server gespeichert und zur Ausführung an den Maya-Befehlsport gesendet wird. Die Ergebnisse werden an den Server zurückgesendet und verarbeitet.
Der Standard-Maya-Befehlsport führt MEL aus, sodass der Python-Code so geändert wird, dass er innerhalb des MEL-Funktionsaufrufs an den Python-Interpreter ausgeführt wird. Es gibt auch einige Einschränkungen, z. B. kann mehrzeiliger Python-Code keine Ergebnisse liefern. Daher stellt jeder Befehl zwei Verbindungen zu Maya her. Die erste Verbindung führt den Vorgang aus und speichert die Ergebnisse. Die zweite Verbindung dient dann zum Zurücklesen der Ergebnisse.
Um den Namespace im globalen Maya-Python-Interpreter möglichst wenig zu füllen, werden an Maya gesendete Funktionen und Variablen mit dem Gültigkeitsbereich mcp_maya * versehen. Jedes Maya-Tool ist in einer Funktion namens _mcp_maya_scope() enthalten. Die Ergebnisse werden der Variable _mcp_maya_results zugewiesen. Dadurch wird die Möglichkeit von Namenskollisionen deutlich reduziert.
Dieses Design ist elegant. Sie können einfach die Python-Datei hinzufügen, den MCP-Client und den Maya-MCP-Server neu starten und loslegen. Sie müssen die Vorgänge nicht sowohl auf dem Maya-MCP-Server als auch in Maya selbst integrieren. Der hinzugefügte Code ist ausschließlich Maya-spezifisches Python und benötigt keine zusätzlichen MCP-Dekoratoren. Dieses Design lässt sich deutlich besser erweitern und an verschiedene Installationen anpassen als ein fester Satz von Tools.
Der Maya MCP-Server wurde mit dem Low-Level-Python-MCP-Modul erstellt. Dies war notwendig, um alle Werkzeuge zur Laufzeit dynamisch definieren zu können. Die Werkzeugfunktionssignaturen werden beim Serverstart dynamisch erfasst.
Neue Tools hinzufügen
Das Hinzufügen neuer Tools zu Maya MCP ist ganz einfach. Der vorhandene Code muss nicht geändert werden. Sie müssen lediglich eine Python-Datei mit einem Tool-Befehl im Verzeichnis mayatools/thirdparty hinzufügen. Das Tool selbst wird in Maya ausgeführt und hat Zugriff auf alle Maya-Python-Module. Das Tooldesign enthält einige Programmierhinweise.
- Der Name der Python-Datei und der Funktionsname müssen identisch sein. Stellen Sie sicher, dass sie eindeutig sind.
- Die Python-Funktion wird sowohl vom Server als auch von Maya geladen. Jeglicher Code außerhalb der Funktion muss in eigenständiges Python geladen werden können. Das bedeutet, dass alle Importe wie maya.cmds im Funktionsumfang erfolgen sollten. Der MCP-Server lädt die Funktion, um die Funktionssignatur zu prüfen und die Informationen per JSON-RPC an den MCP-Client zu senden.
- Die Funktionssignatur wird analysiert und muss alle Typen in der Funktionsargumentannotation enthalten.
- Wenn Ihre Funktion an Maya gesendet wird, wird sie innerhalb der Funktion _mcp_maya_scope ausgeführt. Dies bietet mehrere Vorteile. Die an Maya gesendeten Funktionen belasten den globalen Python-Speicherplatz bei der Ausführung in Maya nicht übermäßig. Außerdem werden alle ausgelösten Ausnahmen abgefangen und als Fehler an den MCP-Client zurückgegeben.
- Im Allgemeinen möchten Sie entweder eine Liste oder ein Wörterbuch zurückgeben oder eine Ausnahme auslösen, wenn ein Fehler auftritt.
- Benennen Sie Ihre Funktion und Argumente entsprechend, damit der LLM die Operation verstehen kann. Fügen Sie eine Funktionsdokumentationszeichenfolge ein.
- Standardargumente sind gut.
- Die Fehlerprüfung ist gut, sodass Fehlermeldungen bessere Erklärungen für die Fehler liefern können.
Ich empfehle, sich die vorhandenen Maya-Tools in diesem Projekt als Beispiele anzusehen.
Testen
Maya MCP wurde derzeit nur unter Windows getestet. Es sollte sowohl unter Linux als auch unter Mac funktionieren, da alles Standard-Python verwendet.
Ideen für die Zukunft
MCP steckt noch in den Kinderschuhen und es gibt viel zu verbessern. Hier sind einige Ideen.
- Mehr Funktionalität bereitstellen.
- Verbessern Sie die Verwendung von Prompt Engineering, insbesondere die Beschreibung der Verwendung und Datenbeziehungen von Maya.
- Alles ist als Werkzeug registriert und ermöglicht Ressourcen und Eingabeaufforderungen.
- Es ist möglich, in Maya Plugins mit MCP-Tools zu finden. Beispielsweise könnte man den PYTHONPATH in Maya mit einem beliebigen Verzeichnis namens MCP überprüfen. Alle diese könnten überprüft und anschließend an den MCP-Client zurückgegeben werden.
Lizenz
MIT
Links
Wichtiger Hinweis
Dieses Projekt wurde in meiner Freizeit und mit meiner Ausrüstung durchgeführt, um mehr über MCP zu erfahren. Das Projekt steht in keiner Verbindung zu meinem derzeitigen Arbeitgeber und repräsentiert weder dessen Arbeit noch dessen Interessen.
This server cannot be installed
local-only server
The server can only run on the client's local machine because it depends on local resources.
Maya MCP
Related MCP Servers
- JavaScript
- GoMIT License
- Python
- JavaScript