/ Directorio / Playground / unity-mcp
● Comunidad CoplayDev ⚡ Instantáneo

unity-mcp

por CoplayDev · CoplayDev/unity-mcp

Controla el Unity Editor desde Claude — crea escenas, escribe scripts de C#, ejecuta tests, inspecciona la consola, todo desde el chat.

MCP for Unity (de CoplayDev) expone más de 40 herramientas que cubren jerarquía de escenas, prefabs, materiales, paquetes, scripts, tests y profiler. Se instala como paquete de Unity más un puente Python; el lado de Unity ejecuta un servidor HTTP local al que la IA se conecta. Funciona con Claude Desktop, Cursor, VS Code y cualquier cliente MCP.

Por qué usarlo

Características clave

Demo en vivo

Cómo se ve en la práctica

unity.replay ▶ listo
0/0

Instalar

Elige tu cliente

~/Library/Application Support/Claude/claude_desktop_config.json  · Windows: %APPDATA%\Claude\claude_desktop_config.json
{
  "mcpServers": {
    "unity": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/CoplayDev/unity-mcp"
      ],
      "_inferred": true
    }
  }
}

Abre Claude Desktop → Settings → Developer → Edit Config. Reinicia después de guardar.

~/.cursor/mcp.json · .cursor/mcp.json
{
  "mcpServers": {
    "unity": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/CoplayDev/unity-mcp"
      ],
      "_inferred": true
    }
  }
}

Cursor usa el mismo esquema mcpServers que Claude Desktop. La configuración del proyecto prevalece sobre la global.

VS Code → Cline → MCP Servers → Edit
{
  "mcpServers": {
    "unity": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/CoplayDev/unity-mcp"
      ],
      "_inferred": true
    }
  }
}

Haz clic en el icono MCP Servers de la barra lateral de Cline y luego en "Edit Configuration".

~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "unity": {
      "command": "TODO",
      "args": [
        "See README: https://github.com/CoplayDev/unity-mcp"
      ],
      "_inferred": true
    }
  }
}

Mismo formato que Claude Desktop. Reinicia Windsurf para aplicar.

~/.continue/config.json
{
  "mcpServers": [
    {
      "name": "unity",
      "command": "TODO",
      "args": [
        "See README: https://github.com/CoplayDev/unity-mcp"
      ]
    }
  ]
}

Continue usa un array de objetos de servidor en lugar de un mapa.

~/.config/zed/settings.json
{
  "context_servers": {
    "unity": {
      "command": {
        "path": "TODO",
        "args": [
          "See README: https://github.com/CoplayDev/unity-mcp"
        ]
      }
    }
  }
}

Añádelo a context_servers. Zed recarga en caliente al guardar.

claude mcp add unity -- TODO 'See README: https://github.com/CoplayDev/unity-mcp'

Un solo comando. Verifica con claude mcp list. Quita con claude mcp remove.

Casos de uso

Usos del mundo real: unity-mcp

Cómo prototipar una escena de Unity desde una descripción de texto

👤 Diseñadores de juegos, desarrolladores independientes, equipos de hackathon ⏱ ~20 min intermediate

Cuándo usarlo: Quieres pasar de 'bosque de baja poli con un jugador y 5 enemigos patrullando' a una escena ejecutable sin conectar cada GameObject a mano.

Requisitos previos
  • Unity 2021.3 LTS o más reciente, Python 3.10+, uv — Instala uv con brew install uv; Unity desde unity.com/download
  • Instala el paquete de Unity — Window > Package Manager > + > Add from git URL: https://github.com/CoplayDev/unity-mcp.git?path=/MCPForUnity#main
Flujo
  1. Describe la escena que quieres
    Crea una nueva escena llamada 'ForestDemo'. Añade un terreno de baja poli 200x200, una cápsula de jugador en el origen con un rigidbody, y 5 enemigos cubo colocados aleatoriamente entre (-50,-50) y (50,50).✓ Copiado
    → Escena creada, GameObjects aparecen en la Jerarquía, Unity refleja los cambios en vivo
  2. Pide scripts de comportamiento
    Crea un script de C# EnemyPatrol.cs que se mueve entre dos waypoints aleatorios, y adjúntalo a cada GameObject Enemy*.✓ Copiado
    → El nuevo script se compila limpiamente, adjunto a los enemigos
  3. Entra en modo Play e itera
    Entra en modo Play por 5 segundos, luego lee la consola y dime si algo lanzó una excepción.✓ Copiado
    → Log de tiempo de ejecución devuelto, Claude propone correcciones concretas para cualquier NullReferenceException

Resultado: Una escena de prototipo ejecutable con enemigos por script — en menos de 15 minutos de chat.

Errores comunes
  • Los edits de script se rechazan por errores de compilación en cascada — Pídele a Claude que ejecute manage_script validate antes de apply_text_edits
  • La recarga de dominio borra el estado de tiempo de ejecución a mitad de sesión — Guarda la escena explícitamente antes de edits de script; usa refresh_unity después
Combinar con: filesystem · github

Cómo diagnosticar y solucionar errores de compilación/tiempo de ejecución de Unity desde el chat

👤 Desarrolladores de Unity atrapados en una consola roja ⏱ ~15 min intermediate

Cuándo usarlo: La consola está llena de errores de un gran refactor o una actualización de paquete y quieres una segunda opinión.

Flujo
  1. Extrae la consola
    Lee la consola de Unity. Agrupa los errores por causa raíz.✓ Copiado
    → Categorías de errores agrupadas con archivos probables identificados
  2. Lee el script ofensor
    Abre el script superior mencionado, encuentra la línea y explica por qué se rompe.✓ Copiado
    → Propuesta de corrección específica haciendo referencia a números de línea
  3. Aplica un parche mínimo
    Aplica el cambio más pequeño para que se compile, luego actualiza Unity y vuelve a leer la consola.✓ Copiado
    → El conteo de errores disminuye, no se introducen errores nuevos

Resultado: Una consola verde y un diff que puedas revisar antes de hacer commit.

Errores comunes
  • Claude propone correcciones que rompen contratos de API para otros scripts — Pídele que encuentre referencias (find_in_file) antes de editar
Combinar con: github

Cómo ejecutar tests de EditMode/PlayMode de Unity y leer fallos

👤 Desarrolladores de Unity con un conjunto de tests real ⏱ ~15 min intermediate

Cuándo usarlo: Antes de abrir un PR o cuando CI está caído y quieres un pase local rápido.

Flujo
  1. Inicia una ejecución de test
    Ejecuta todos los tests de EditMode en el ensamblado Tests.EditMode.✓ Copiado
    → ID del trabajo de test devuelto, estado transmitido
  2. Resume los fallos
    Para cada test fallido, muestra el mensaje de afirmación y la línea en la que se disparó.✓ Copiado
    → Diagnóstico por test
  3. Arregla el fallo más pequeño primero
    Elige el fallo más probablemente causado por mi último cambio y propón un parche.✓ Copiado
    → Sugerencia de edición concreta

Resultado: Una ejecución de test verde con edits rastreables.

Errores comunes
  • Los tests de PlayMode necesitan un ensamblado diferente — Especifica explícitamente EditMode vs PlayMode
Combinar con: github

Combinaciones

Combínalo con otros MCPs para multiplicar por 10

unity + github

Estructura una escena + scripts, confirma los cambios, abre un PR para revisión

Construye la característica EnemyPatrol en Unity, confirma el nuevo script y los cambios de escena a una rama 'feature/enemy-patrol', y abre un PR con un resumen de qué cambió.✓ Copiado
unity + filesystem

Importa un lote de assets 3D desde una carpeta local e intégralos en prefabs

Lee /Downloads/kenney-nature-pack, importa cada .fbx en Assets/Models/, luego crea un prefab para cada árbol con un colisionador.✓ Copiado
unity + unity-2 + unity-3

Elige el MCP de Unity que mejor se ajuste a tu flujo de trabajo — ejecuta solo uno a la vez

Compara MCP for Unity vs CoderGamester mcp-unity para mi proyecto de tilemap 2D, luego mantén el mejor habilitado.✓ Copiado

Herramientas

Lo que expone este MCP

HerramientaEntradasCuándo llamarCoste
manage_scene action: 'create'|'open'|'save'|'load', name?: str, path?: str Cualquier cambio de ciclo de vida de escena free
find_gameobjects query: str, scene?: str Localiza objetos por nombre, etiqueta o componente free
manage_components target: str, action: 'add'|'remove'|'modify', component: str, values?: obj Adjunta u ajusta componentes free
manage_script action: 'create'|'read'|'delete', path: str, body?: str Escrituras de script de archivo completo — usa apply_text_edits para parcial free
apply_text_edits path: str, edits: Edit[] Parches quirúrgicos; más seguro que reescrituras completas free
read_console since_ms?: int Inspecciona errores/advertencias después de cualquier cambio free
run_tests mode: 'EditMode'|'PlayMode', filter?: str Inicia una ejecución de test; sondea con get_test_job free
refresh_unity Después de crear/modificar scripts o assets free
manage_asset action, path, ... Importa/mueve/elimina assets free
unity_docs query: str Busca documentación de API de Unity en línea free

Coste y límites

Lo que cuesta ejecutarlo

Cuota de API
Sin API remota — se ejecuta completamente en tu máquina
Tokens por llamada
Lectura de la jerarquía de escena: 500–3000 tokens. Lecturas de script: depende del tamaño del archivo
Monetario
Gratuito (código abierto, MIT)
Consejo
Desactiva las herramientas que no usarás (p. ej. manage_vfx, manage_probuilder) a través de la lista de permitidos de herramientas para reducir el footprint del prompt.

Seguridad

Permisos, secretos, alcance

Ámbitos mínimos: escritura de sistema de archivos local en tu proyecto de Unity
Almacenamiento de credenciales: Ninguno requerido — solo HTTP de localhost
Salida de datos: Solo localhost (http://localhost:8080/mcp). Sin telemetría por defecto.
No conceder nunca: acceso a proyectos de Unity fuera del activo

Resolución de problemas

Errores comunes y soluciones

Claude no puede conectarse: ECONNREFUSED localhost:8080

El Unity Editor debe estar abierto con el paquete MCP cargado. Comprueba Window > MCP for Unity > Status.

Verificar: curl http://localhost:8080/mcp/ping
apply_text_edits reporta 'archivo cambiado en disco'

Otra herramienta modificó el archivo. Vuelve a leer con manage_script antes de editar de nuevo.

refresh_unity se cuelga para siempre

Por lo general, un error de compilación bloquea la recarga de dominio. Abre Unity, arregla el script rojo, luego reintenta.

Verificar: Comprueba la consola de Unity manualmente
Package Manager 'No se pudo resolver la URL de git'

Detrás de un proxy o sin git en PATH. Instala git e reintenta, o usa la instalación de OpenUPM en su lugar.

Verificar: git --version

Alternativas

unity-mcp vs otros

AlternativaCuándo usarlaContrapartida
Unity-MCP (IvanMurzak)Quieres una configuración impulsada por CLI y ejecución de C# basada en RoslynComunidad más pequeña que la de Coplay, superficie de herramientas diferente
mcp-unity (CoderGamester)Quieres un conjunto de herramientas más simple enfocado en manipulación de escenas y testsMenos herramientas, menos cobertura de materiales/VFX

Más

Recursos

📖 Lee el README oficial en GitHub

🐙 Ver issues abiertas

🔍 Ver todos los 400+ servidores MCP y Skills