Skip to main content
Glama
Singtaa

Unity MCP Server

by Singtaa

Unity MCP Server

Unity 2022.3+ License: MIT

Servidor MCP para el Unity Editor. Permite que agentes de IA como Claude Code inspeccionen, manipulen, prueben y capturan capturas de pantalla de tu proyecto.

Características destacadas

  • 73 herramientas: escenas, GameObjects, componentes, prefabs, transformaciones, pruebas, reflexión + descompilación, evaluación de C#, captura de UI

  • Clientes sin configuración: un clic (o un comando) por máquina, y luego cada proyecto y editor se conecta automáticamente. Sin puertos, sin tokens, sin configuración por proyecto

  • Seguro con múltiples editores: cada proyecto abierto ejecuta su propio servidor, las sesiones se enrutan al correcto automáticamente

  • Recursos MCP: registros de consola, jerarquía de escenas, resultados de pruebas, archivos de proyecto

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

Related MCP server: Unity MCP Server

Instalación

Package Manager > + > Add package from git URL:

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

O clona / añade como submódulo en Packages/com.singtaa.unity-mcp.

Configuración (una vez por máquina)

  1. Abre el proyecto en Unity. El servidor se inicia automáticamente, el lanzador se despliega en ~/.unity-mcp/stdio.js

  2. Window > Unity MCP Server > Set up Claude Code

Listo. Equivalente en terminal:

# 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"

Cada sesión de Claude Code dentro de cualquier proyecto de Unity llega ahora al editor de ese proyecto. Con varios editores en paralelo: cada sesión encuentra el suyo. Si el editor está cerrado o en medio de una recarga: las herramientas devuelven un error claro y se recuperan solas. Abrir el editor a mitad de sesión también funciona: una sesión iniciada con el editor cerrado registra la lista de herramientas de inmediato (servida desde una caché por proyecto) y se re-sincroniza en vivo en cuanto el editor aparece, sin necesidad de reiniciar el cliente.

En segundo plano: el editor escribe una baliza por sesión (Temp/UnityMcp_Endpoint.json, eliminada al salir, nunca obsoleta). El lanzador resuelve el proyecto de la sesión (CLAUDE_PROJECT_DIR, si no, subida por el cwd, UNITY_MCP_PROJECT tiene prioridad sobre ambos) y hace de proxy MCP hacia el endpoint en vivo de ese proyecto, releyendo la baliza en cada solicitud. Declara tools.listChanged y vigila la baliza: cuando aparece un editor (o uno distinto toma el proyecto), emite notificaciones list_changed para que los clientes vuelvan a obtener las listas de herramientas y recursos a mitad de sesión. El despliegue del lanzador en ~/.unity-mcp/stdio.js solo se actualiza según LAUNCHER_VERSION, por lo que editores con versiones distintas del paquete nunca compiten por el archivo.

Otros clientes MCP: el mismo lanzador, o HTTP simple (endpoint + token mostrados en la ventana).

Herramientas

Grupo

Herramientas (prefijo unity_)

Scene

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

Component

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

Project & 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

Destacables:

  • unity_eval: compila y ejecuta un fragmento de C# en el editor, sin recarga de dominio. La forma de expresión devuelve su valor, la forma de sentencia usa return. Usings comunes importados, líneas using iniciales elevadas. Roslyn incluido (tope C# 9). La primera llamada tarda unos segundos en arrancar, luego decenas de ms por compilación

  • unity_capture_panel: renderiza un PanelSettings de UI Toolkit a PNG fuera de pantalla, sin chrome de escena, funciona en modo edición y play. Detecta automáticamente el UIDocument activo

  • unity_assets_find: sintaxis de consulta de la Project window (t:Material, t:Prefab ui, l:MyLabel), ámbito de carpeta opcional, resultados limitados con recuento total

  • unity_reflection_decompile: código fuente C# completo de cualquier tipo o método cargado

  • Particularidades: espera ~1s tras una recarga de dominio antes de las herramientas de prueba; unity_capture_game_view solo funciona en play mode en Unity 6.3+

Recursos

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

Configuración

ProjectSettings/McpSettings.json (pensado para commitearse): puerto HTTP 5173, puerto IPC 52100, auto-inicio, token de autenticación.

¿Puertos ocupados por el servidor de otro proyecto? Se asigna automáticamente un par libre y se guarda por máquina en UserSettings/McpPortOverride.json (gitignored), así los cambios de puerto nunca llegan al equipo. La identidad del proyecto se valida en cada conexión del bridge: un editor nunca puede adoptar el servidor de otro proyecto, incluso con puertos mal configurados.

Inicio manual del servidor: node src/server.js con MCP_PROJECT_ROOT establecido en la ruta del proyecto.

Compatible con Unity CLI

Complementario, no competidor:

  • Unity CLI gestiona el ciclo de vida del editor: instalaciones, unity open, builds, CI

  • UnityMCP gestiona la sesión en vivo del editor: captura de UI, descompilación, eval, bucles de prueba, enrutamiento sin configuración

  • Bucle típico del agente: unity open <project> mediante CLI, el editor arranca, el servidor y la baliza se levantan, el lanzador se conecta. Sin configuración en ninguno de los dos lados

  • Los editores lanzados por CLI se ejecutan sin foco / en segundo plano. UnityMCP está construido y probado precisamente para eso (arranque seguro en segundo plano, reintentos a través de recargas de dominio)

  • Sin conflictos de puertos ni de nombres de herramientas. Regístrate en ambos

Arquitectura

┌─────────────────────────────────────────────────────────────┐
│                      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                              │
└─────────────────────────────────────────────────────────────┘

Cada proyecto abierto ejecuta su propio servidor Node. El lanzador es la puerta de entrada compartida que enruta cada sesión al correcto.

Desarrollo

  • Pruebas de Unity: Window > General > Test Runner (EditMode + PlayMode)

  • Pruebas del lanzador: npm test en Server~/

  • Changelog: CHANGELOG.md

Licencia

MIT. Consulta 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