Skip to main content
Glama
Singtaa

Unity MCP Server

by Singtaa

Unity MCP Server

Unity 2022.3+ License: MIT

Ein MCP-Server für den Unity Editor. Ermöglicht KI-Agenten wie Claude Code, Ihr Projekt zu inspizieren, zu manipulieren, zu testen und Screenshots davon zu erstellen.

Highlights

  • 73 Werkzeuge: Szenen, GameObjects, Komponenten, Prefabs, Transforms, Tests, Reflection + Dekompilierung, C#-Eval, UI-Erfassung

  • Clients ohne Konfiguration: ein Klick (oder ein Befehl) pro Rechner, danach verbinden sich jedes Projekt und jeder Editor automatisch. Keine Ports, keine Tokens, keine projektspezifische Konfiguration

  • Multi-Editor-sicher: Jedes geöffnete Projekt läuft mit seinem eigenen Server. Sitzungen werden automatisch zum richtigen Server weitergeleitet

  • MCP-Ressourcen – Konsolen-Logs, Szenenhierarchie, testergebnisse, Projektdateien

  • Unity 2022.3+ (Unity 6 empfohlen), Node.js 18+

Related MCP server: Unity MCP Server

Installation

Paketmanager > + > Paket aus Git-URL hinzufügen:

https://github.com/Singtaa/UnityMCP.git

Oder klonen / als Submodul in Packages/com.singtaa.unity-mcp einbinden.

Einrichtung (einmal pro Rechner)

  1. Öffnen Sie das Projekt in Unity. Der Server startet automatisch, der Launcher wird nach ~/.unity-mcp/stdio.js bereitgestellt

  2. Fenster > Unity MCP Server > Claude Code einrichten

Fertig. Das Terminal-Äquivalent:

# macOS / Linux
claude mcp add --scope user --transport stdio unity -- node ~/.unity-mcp/stdio.js

# Windows
claude mcp add --scope user --transport stdio unity -- node "%USERPROFILE%\.unity-mcp\stdio.js"

Jede Claude-Code-Sitzung innerhalb eines Unity-Projekts erreicht jetzt den Editor des jeweiligen Projekts. Viele Editoren nebeneinander: Jede Sitzung findet ihren eigenen. Ist ein Editor geschlossen oder mitten im Reload, geben die Werkzeuge einen klaren Fehler zurück und erholen sich von selbst. Das Öffnen des Editors mitten in einer Sitzung funktioniert ebenfalls: Eine Sitzung, die bei geschlossenem Editor gestartet wird, registriert die Werkzeugliste sofort (bereitgestellt aus einem projektspezifischen Cache) und synchronisiert sich live neu, sobald der Editor wieder da ist – ohne dass der Client neu gestartet werden muss.

Im Hintergrund schreibt der Editor ein Beacon pro Sitzung (Temp/UnityMcp_Endpoint.json, das beim Beenden entfernt wird und nie veraltet). Der Launcher ermittelt das Projekt der Sitzung (CLAUDE_PROJECT_DIR, andernfalls durch Hochgehen im aktuellen Arbeitsverzeichnis; UNITY_MCP_PROJECT überschreibt beides) und leitet MCP-Anfragen an den Live-Endpunkt dieses Projekts weiter, wobei er das Beacon bei jeder Anfrage neu liest. Er deklariert tools.listChanged und überwacht das Beacon: Wenn ein Editor erscheint (oder ein anderer das Projekt übernimmt), sendet er list_changed-Notifications, sodass Clients die Werkzeug- und Ressourcenlisten mitten in der Sitzung neu abrufen. Die Launcher-Bereitstellung nach ~/.unity-mcp/stdio.js erfolgt nur bei Upgrades über LAUNCHER_VERSION; dadurch streiten sich Editoren aus verschiedenen Paketversionen nie um das File.

Andere MCP-Clients: entweder derselbe Launcher oder einfaches HTTP (Endpunkt und Token werden im Fenster angezeigt).

Werkzeuge

Gruppe

Werkzeuge (unity_-Präfix)

Szene

scene_list, scene_load, scene_save, scene_new, scene_close

GameObject

gameobject_create, gameobject_find, gameobject_delete, gameobject_set_active, gameobject_set_parent, gameobject_rename, gameobject_duplicate

Komponente

component_list, component_add, component_remove, component_set_enabled, component_get_properties, component_set_property

Transform

transform_get, transform_set, transform_translate, transform_rotate, transform_look_at, transform_reset

Editor

selection_get/set/focus, editor_execute_menu_item, editor_notification, editor_log, editor_get_state, editor_pause/step, undo_*, playmode_enter/exit

Prefab

prefab_load, prefab_save, prefab_get_hierarchy, prefab_find_component

Test

test_list, test_run, test_run_sync, test_get_results

Capture

capture_panel, capture_game_view

Projekt & Assets

project_list_files, project_read_text, project_write_text, assets_refresh, assets_import, assets_find

Reflection

reflection_search_types, reflection_get_type_info, reflection_get_method_info, reflection_get_public_api, reflection_get_assemblies, reflection_decompile, reflection_invoke_static

Eval

eval

Hervorzuheben:

  • unity_eval: Kompiliert und führt ein C#-Snipet im Editor aus, ganz ohne Domain-Reload. Die Ausdrucksform gibt ihren Wert zurück, die Anweisungsform benutzt return. Übliche usings werden importiert, vorangestellte using-Zeilen werden nach oben verschoben. Mitgeliefertes Roslyn (Obergrenze C# 9). Der erste Aufruf wärmt ein paar Sekunden auf, danach dauert eine Kompilierung nur wenige zehn Millisekunden

  • unity_capture_panel: Rendert eine UI Toolkit PanelSettings offscreen als PNG, ohne Szenen-Optik, und funktioniert im Edit- und Play-Modus. Das aktive UIDocument wird automatisch erkannt

  • unity_assets_find: Abfrage-Syntax des Projektfensters (t:Material, t:Prefab ui, l:MyLabel), ordnerbegrenzt optional, begrenztes Ergebnis mit Gesamtanzahl

  • unity_reflection_decompile: vollständiger C#-Quellcode jedes Typs und jeder Methode

  • Runtime-Verhalten: Nach einem Domain-Reload etwa 1 Sekunde warten, bevor Testwerkzeuge verwendet werden; unity_capture_game_view ist auf Unity 6.3+ nur im Play-Modus verfügbar

Ressourcen

unity://console/logs · unity://hierarchy · unity-://hierarchy/{scene} · unity://tests/results · unity://project/files

Konfiguration

ProjectSettings/McpSettings.json (im Team einchecken): HTTP-Port of ICQ, 5173, IPC-Port 52100, Autostart, Auth-Token.

Ports durch ein anderes Projekt belegt? Ein freies Portpaar wird automatisch zugewiesen und pro Rechner unter UserSettings/McpPortOverride.json gespeichert (git-ignoriert), damit keine Port-Verschiebungen bis zum Team gelangen. Die Projektidentität wird bei jeder Bridge-Verbindung überprüft: Ein Editor kann niemals den Server eines anderen Projekts übernehmen, selbst bei falsch konfigurierten Ports.

Server manuell starten: node src/server.js mit MCP_PROJECT_ROOT, das auf den Projektpfad gesetzt ist.

Funktioniert mit Unity CLI

Ergänzend, nichtkonkurrierend:

  • Unity CLI verwaltet den gesamten Editor-Lebenszyklus: Installationen, unity open, Builds, CI

  • UnityMCP verwaltet die die Live-Editor-Sitzung: UI-Erfassung, Dekompilierung, Eval, Testszyklus, Routing ohne Konfiguration

  • Typischer Agentenablauf: unity open <project> über die CLI, Editor startet, Server und Beacon kommen hoch, der Launcher verbindet sich. Keine Konfigurationerldn auf beiden Seiten

  • Per gestartete Editor laufen unbeobachtet / im Hintergrund. UnityMCP ist dafür gebaut(Background-sicherer Start, Wiederholungen über Domain-Reloads hinweg)

  • Keine Konflikte bei Ports oder Tool-Namen. Registrieren Sie einfach beide.

Architektur

┌─────────────────────────────────────────────────────────────┐
│                      AI Assistant                           │
├──────────────────────────────┬──────────────────────────────┤
│  stdio launcher              │  (or direct HTTP clients)    │
│  ~/.unity-mcp/stdio.js       │                              │
│  resolves the session's      │                              │
│  project, reads its beacon   │                              │
│  Temp/UnityMcp_Endpoint.json │                              │
├──────────────────────────────┴──────────────────────────────┤
│           HTTP JSON-RPC (Port 5173, per project)            │
├─────────────────────────────────────────────────────────────┤
│              Node.js MCP Server (Server~/)                  │
├─────────────────────────────────────────────────────────────┤
│                TCP NDJSON (Port 52100)                      │
├─────────────────────────────────────────────────────────────┤
│                Unity Editor C# Bridge                       │
│  (McpBridge → ToolRegistry → MainThreadDispatcher)          │
├─────────────────────────────────────────────────────────────┤
│                     Unity APIs                              │
└─────────────────────────────────────────────────────────────┘

Jedes geöffnete Projekt läuft mit einem eigenen Node-Server. Der Launcher ist die gemeinsame Eingangstür, die jede Sitzung zu trennen richtigen Instanz des weiterleitet.

Entwicklung

  • Unity-Tests: Fenster > Allgemein > Test Runner (EditMode + PlayMode)

  • Launcher-Tests: npm test in Server~/

  • Changelog: CHANGELOG.md

Lizenz

MIT. Hinweise siehe LICENSE.

A
license - permissive license
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
<1hResponse time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • A
    license
    Not graded
    quality
    Not graded
    maintenance
    Enables AI assistants to interact with Unity Editor through the Model Context Protocol, allowing natural language control of Unity projects including scene manipulation, GameObject creation, component updates, package management, and test execution.
  • A
    license
    Not graded
    quality
    D
    maintenance
    Enables AI assistants to interact with Unity Editor, managing scenes, game objects, animations, materials, scripts, and more via natural language commands.
    1
    MIT

View all related MCP servers

Related MCP Connectors

  • Build, validate, and deploy multi-agent AI solutions from any AI environment.

  • SaaS intelligence for AI agents. 5 unified tools cover 1,000+ services with 91-96% token savings.

  • Build and run visual creative-production workflows from your AI agent.

View all MCP Connectors

Latest Blog Posts

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/Singtaa/UnityMCP'

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