3D-MCP
Überblick
3D-MCP ist eine universelle Implementierung des Model Context Protocol für 3D-Software. Es erstellt eine einheitliche TypeScript-Schnittstelle für LLMs zur Interaktion mit Blender, Maya, Unreal Engine und anderen 3D-Anwendungen über eine einzige, kohärente API.
Kernphilosophie und Designentscheidungen
3D-MCP basiert auf vier miteinander verbundenen Architekturprinzipien, die zusammen ein einheitliches System für die Erstellung von 3D-Inhalten bilden:
- Entity-First-Design : Gut definierte Domänenentitäten bilden die Grundlage aller Vorgänge und ermöglichen eine konsistente Datenmodellierung über alle Plattformen hinweg
- Typsichere CRUD-Operationen : Automatisierte Generierung von Erstellungs-, Lese-, Aktualisierungs- und Löschoperationen mit vollständiger Typvalidierung
- Atomic Operation Layer : Ein minimaler Satz plattformspezifischer Implementierungen, die grundlegende Operationen handhaben
- Zusammensetzbare Tool-Architektur : Komplexe Funktionalität, die durch die plattformunabhängige Kombination atomarer Operationen entsteht
Diese Architektur erzeugt eine Abhängigkeitsumkehr, bei der plattformspezifische Implementierungsdetails auf atomare Operationen beschränkt bleiben, während der Großteil der Codebasis plattformunabhängig bleibt.
Warum diese Designentscheidungen?
Entity-First-Design wurde gewählt, weil:
- 3D-Anwendungen verwenden unterschiedliche Objektmodelle, teilen aber Kernkonzepte (Netze, Materialien, Animationen).
- Zod-Schemata bieten eine zentrale Informationsquelle für Validierung, Typisierung und Dokumentation
- Durch strenge Typisierung werden Fehler zur Kompilierzeit und nicht zur Laufzeit erkannt
- Umfangreiche Metadaten ermöglichen ein besseres KI-Verständnis von Domänenobjekten
CRUD-Operationen als Grundlage, weil:
- Sie bilden klar ab, was 3D-Anwendungen mit Entitäten tun müssen
- Standardisierte Muster reduzieren den kognitiven Aufwand
- Automatische Generierung eliminiert repetitiven Code mithilfe von
createCrudOperations
- Jede Entität erhält automatisch die gleiche konsistente Schnittstelle
Trennung von atomaren und zusammengesetzten Werkzeugen, weil:
- Nur atomare Tools benötigen eine plattformspezifische Implementierung (~20 % der Codebasis)
- Compound-Tools funktionieren auf allen Plattformen ohne Änderungen (~80 % der Codebasis)
- Neue Plattformen müssen nur atomare Operationen implementieren, um alle Funktionen zu erhalten
- Wartbare Architektur mit klarer Trennung der Belange
Technische Architektur
1. Entity-Centric CRUD-Architektur
Die Grundlage des Systems ist ein umfangreiches Typsystem von Domänenentitäten, das CRUD-Operationen generiert:
Entitätsschemata bieten:
- Schemavalidierung : Laufzeitparameterprüfung mit detaillierten Fehlermeldungen
- Typinformationen : Vollständige TypeScript-Typen zur IDE-Unterstützung
- Dokumentation : Selbstdokumentierende API mit Beschreibungen
- Codegenerierung : Vorlagen für plattformspezifische Implementierungen
Entity-Architekturdiagramm
2. Zusammengesetzte Werkzeugarchitektur
Das System schafft eine klare Trennung zwischen atomaren und zusammengesetzten Operationen:
Diese Architektur bietet mehrere technische Vorteile:
- Atomare Operationen (~20 % des Systems):
- Direkte Interaktion mit Plattform-APIs
- Benötigen plattformspezifische Implementierungen
- Konzentrieren Sie sich auf einzelne Entitätsvorgänge (Erstellen, Lesen, Aktualisieren, Löschen).
- Für neue Plattformen ist nur eine minimale Implementierung erforderlich
- Zusammengesetzte Operationen (~80 % des Systems):
- Vollständig aus atomaren Operationen aufgebaut
- Kein plattformspezifischer Code
- Implementieren übergeordneter Domänenkonzepte
- Funktioniert auf jeder Plattform ohne Änderungen
Werkzeugzusammensetzungsfluss
Schlüsseldateien für die zusammengesetzte Toolarchitektur:
- compounded.ts: Werkzeuge zur zusammengesetzten Modellierung
- compounded.ts: Zusammengesetzte Animationstools
- compounded.ts: Werkzeuge für zusammengesetzte Takelage
3. Codegenerierungs-Pipeline
Das System generiert automatisch plattformspezifische Implementierungen aus TypeScript-Definitionen:
Wesentliche Aspekte des Erzeugungssystems:
- Entitätsextraktion : Analysiert Zod-Schemata, um die Entitätsstruktur zu verstehen
- Parameterzuordnung : Konvertiert TypeScript-Typen in plattformnative Typen
- Validierungsgenerierung : Erstellt Parametervalidierungen in Zielsprachen
- Implementierungsvorlagen : Bietet plattformspezifische Codemuster
Das Codegenerierungssystem ist implementiert in:
- plugin-codegen.ts : Hauptskript zur Codegenerierung
- extract-schemas.ts : Extrahiert Zod-Schemas aus TypeScript-Dateien in temporäre JSON-Dateien.
4. Domänenorganisation
Das System ist in Domänen organisiert, die die Arbeitsabläufe zur Erstellung von 3D-Inhalten widerspiegeln:
- Kern : Grundlegende Entitäten und Operationen, die in allen Domänen verwendet werden
- Modellierung : Netzerstellung, Bearbeitung und Topologieoperationen
- Animation : Keyframes, Kurven, Clips und Animationssteuerung
- Takelage : Skelettsysteme, Steuerungen und Deformation
- Rendering : Materialien, Lichter und Rendereinstellungen
Jede Domäne folgt demselben Organisationsmuster:
entity.ts
: Domänenspezifische Entitätsdefinitionenatomic.ts
: Atomare Operationen für Domänenentitätencompounded.ts
: Höherstufige Operationen, die aus atomaren Tools erstellt wurden
Domänenstrukturdiagramm
5. Entity-Centric CRUD-Architektur
Das System implementiert einen ausgeklügelten entitätszentrierten Ansatz, bei dem:
- Entitäten als Domänenmodelle : Jede Domäne (Modellierung, Animation, Rigging) definiert ihre Kernentitäten, die ihre grundlegenden Konzepte darstellen. Diese werden als Zod-Schemata mit umfangreichen Typinformationen implementiert.
- CRUD als Grundlage : Jede Entität erhält automatisch einen vollständigen Satz von CRUD-Operationen (Erstellen, Lesen, Aktualisieren, Löschen) über das Dienstprogramm
createCrudOperations
:
- Wiederverwendung und Vererbung von Entitäten : In
core/entity.ts
definierte Kernentitäten werden durch domänenspezifische Entitäten erweitert, was die Wiederverwendung von Code und ein konsistentes Design über Domänen hinweg fördert. - DDD-inspirierte Architektur : Das System folgt den Prinzipien des domänengesteuerten Designs, indem es den Code um Domänenentitäten und -aggregate herum organisiert, anstatt um technische Belange.
Diese Architektur bietet mehrere wichtige Vorteile:
- Konsistenz : Alle Entitäten haben die gleichen Muster für grundlegende Operationen
- Reduzierter Boilerplate : CRUD-Operationen werden automatisch generiert
- Klare Organisation : Die Tools sind um Domänenentitäten herum organisiert
- Trennung der Belange : Jede Domäne verwaltet ihre eigenen Entitäten und teilt dabei gemeinsame Muster
Die Kombination umfangreicher Entitätsmodelle mit automatischen CRUD-Operationen schafft eine robuste Grundlage, die die Entwicklung vereinfacht und gleichzeitig die Flexibilität für domänenspezifische Operationen aufrechterhält.
Erste Schritte
Entwicklungs-Workflow
- Entitäten definieren : Erstellen oder erweitern Sie Entitätsschemata in
src/tool/<domain>/entity.ts
- CRUD generieren : Verwenden Sie
createCrudOperations
, um atomare Operationen zu generieren - Zusammengesetzte Tools erstellen : Erstellen Sie Operationen auf höherer Ebene aus atomaren Tools
- Plugins generieren : Führen Sie den Codegenerator aus, um plattformspezifische Implementierungen zu erstellen
Beitragen
Die architektonischen Entscheidungen in 3D-MCP machen es einzigartig erweiterbar:
- Neue Entitäten hinzufügen : Definieren Sie neue Entitäten und erhalten Sie automatisch CRUD-Operationen
- Neue zusammengesetzte Tools hinzufügen : Kombinieren Sie vorhandene atomare Operationen, um neue Funktionen zu erstellen
- Neue Plattformen hinzufügen : Implementieren Sie die atomaren Tool-Schnittstellen in einem neuen Plugin
Weitere Einzelheiten zum Beitragen finden Sie in unserem Leitfaden zum Beitragen.
3D-MCP: Eine API für alle 3D-Software
Tools
Eine universelle Implementierung des Model Context Protocol, die als semantische Schicht zwischen LLMs und 3D-Kreativsoftware dient und über eine einheitliche API eine standardisierte Schnittstelle für die Interaktion mit verschiedenen Tools zur Erstellung digitaler Inhalte bietet.
- Überblick
- Kernphilosophie und Designentscheidungen
- Warum diese Designentscheidungen?
- Technische Architektur
- Erste Schritte
- Entwicklungs-Workflow
- Beitragen
Related Resources
Related MCP Servers
- -securityAlicense-qualityA comprehensive toolkit that enhances LLM capabilities through the Model Context Protocol, allowing LLMs to interact with external services including command-line operations, file management, Figma integration, and audio processing.Last updated -17PythonApache 2.0
- -securityFlicense-qualityA generic Model Context Protocol framework for building AI-powered applications that provides standardized ways to create MCP servers and clients for integrating LLMs with support for Ollama and Supabase.Last updated -TypeScript
- -securityAlicense-qualityA bridge enabling seamless communication between Unity and Large Language Models via the Model Context Protocol, allowing developers to automate workflows, manipulate assets, and control the Unity Editor programmatically.Last updated -1,449MIT License
- -securityFlicense-qualityA GitHub-based implementation of the Model Context Protocol that enables LLMs to access and manipulate data in a Universal Object Reference (UOR) framework, providing standardized interfaces for object management with decentralized storage.Last updated -TypeScript