Unity MCP

Un servidor MCP y plugin para conectar el Editor de Unity y juegos a clientes MCP como Claude Desktop.

Documentación

✨ Desarrollador de Juegos con IA — HABILIDADES de Unity, MCP

MCP OpenUPM Docker Image Unity Editor Unity Runtime r
Discord OpenUPM Stars License Stand With Ukraine

AI work

Claude   Codex   Cursor   GitHub Copilot   Gemini   Antigravity   VS Code   Rider   Visual Studio   Open Code   Cline   Kilo Code

中文 | 日本語 | Español

Unity MCP es un asistente de desarrollo de juegos impulsado por IA para Editor y Runtime. Conecta Claude, Cursor y Windsurf a Unity mediante MCP. Automatiza flujos de trabajo, genera código y habilita la IA dentro de tus juegos.

A diferencia de otras herramientas, este plugin funciona dentro de tu juego compilado, lo que permite depuración de IA en tiempo real e interacción jugador-IA.

💬 Únete a nuestro servidor de Discord - Haz preguntas, muestra tu trabajo y conéctate con otros desarrolladores.

AI Game Developer — Unity MCP

  • ✔️ Agentes de IA - Usa los mejores agentes de Anthropic, OpenAI, Microsoft o cualquier otro proveedor sin bloqueo de proveedor
  • ✔️ Herramientas - Una amplia gama de Herramientas MCP predeterminadas para operar en el Editor de Unity
  • ✔️ Habilidades - Genera habilidades para IA basadas en el sistema operativo, la versión de Unity y los plugins del proyecto
  • ✔️ Código y Pruebas - Desarrolla mecánicas de juego y pruébalas con agentes de IA
  • ✔️ Runtime (en el juego) - Usa LLMs directamente dentro de tu juego compilado para comportamiento dinámico de NPC o depuración
  • ✔️ Soporte de depuración - Deja que la IA depure y corrija los problemas de un proyecto
  • ✔️ Conversación natural - Chatea con la IA como lo harías con un humano
  • ✔️ Implementación flexible - Funciona localmente (stdio) y de forma remota (http) mediante configuración
  • ✔️ Extensible - Crea herramientas personalizadas en el código de tu proyecto

DOWNLOAD INSTALLER

https://github.com/user-attachments/assets/228baf4d-4f00-4dce-939d-fb985ebdd8dd

O usa la CLI

# 1. Install unity-mcp-cli
npm install -g unity-mcp-cli

# 2. Install "AI Game Developer" in Unity project
unity-mcp-cli install-plugin ./MyUnityProject

# 3. Sign in to ai-game.dev (opens your browser — OAuth device flow)
unity-mcp-cli login

# 4. Open Unity project (auto-connects and generates skills)
unity-mcp-cli open ./MyUnityProject

AI Game Developer Windows

AI Game Developer — Unity SKILLS and MCP

Inicio Rápido

Ponte en marcha en tres pasos:

  1. Instala el plugin — descarga el instalador de .unitypackage o ejecuta openupm add com.ivanmurzak.unity.mcp

    Alternativa: npx unity-mcp-cli install-plugin ./MyUnityProject — consulta la documentación de la CLI

  2. Elige un agente de IA — Claude Code, Claude Desktop, GitHub Copilot, Cursor o cualquier otro
  3. Configura el agente de IA — abre Window/AI Game Developer en Unity y haz clic en Auto-generar habilidades (recomendado) o Configurar MCP Setup AI Skills

    Alternativa: npx unity-mcp-cli setup-skills claude-code ./MyUnityProject — consulta la documentación de la CLI

Eso es todo. Pídele a tu IA "Crea 3 cubos en un círculo con radio 2" y observa cómo sucede. ✨


Referencia de Habilidades y Herramientas

El plugin incluye más de 70 herramientas integradas en cuatro categorías. Cada herramienta aporta una habilidad de IA. Todas las herramientas están disponibles inmediatamente después de la instalación, sin necesidad de configuración adicional. Consulta docs/default-mcp-tools.md para la referencia completa con descripciones detalladas.

🧰 Explora el registro completo de herramientas MCP en línea: ai-game.dev/docs/tools

Proyecto y Activos
  • assets-copy - Copia el activo en la ruta indicada y lo almacena en newPath
  • assets-create-folder - Crea una nueva carpeta en la carpeta principal especificada
  • assets-delete - Elimina los activos en las rutas indicadas del proyecto
  • assets-find - Busca en la base de datos de activos usando la cadena de filtro de búsqueda
  • assets-find-built-in - Busca los activos integrados del Editor de Unity
  • assets-get-data - Obtiene datos del archivo de activo, incluidos todos los campos y propiedades serializables
  • assets-material-create - Crea un nuevo activo de material con parámetros predeterminados
  • assets-modify - Modifica el archivo de activo en el proyecto
  • assets-move - Mueve los activos en las rutas indicadas del proyecto (también se usa para renombrar)
  • assets-prefab-close - Cierra el prefab actualmente abierto
  • assets-prefab-create - Crea un prefab a partir de un GameObject en la escena activa actual
  • assets-prefab-instantiate - Instancia un prefab en la escena activa actual
  • assets-prefab-open - Abre el modo de edición de prefab para un GameObject específico
  • assets-prefab-save - Guarda un prefab en el modo de edición de prefab
  • assets-refresh - Refresca la AssetDatabase
  • assets-shader-get-data - Obtiene datos detallados sobre un activo de shader (propiedades, subshaders, passes)
  • assets-shader-list-all - Lista todos los shaders disponibles en los activos y paquetes del proyecto
  • package-add - Instala un paquete desde el registro del Unity Package Manager, una URL de Git o una ruta local
  • package-list - Lista todos los paquetes instalados en el proyecto de Unity (paquetes UPM)
  • package-remove - Elimina (desinstala) un paquete del proyecto de Unity
  • package-search - Busca paquetes tanto en el registro del Unity Package Manager como en los paquetes instalados
Escena y Jerarquía
  • gameobject-component-add - Agrega un Componente a un GameObject
  • gameobject-component-destroy - Destruye uno o varios componentes del GameObject objetivo
  • gameobject-component-get - Obtiene información detallada sobre un Componente específico en un GameObject
  • gameobject-component-list-all - Lista los nombres de clases C# que extienden UnityEngine.Component
  • gameobject-component-modify - Modifica un Componente específico en un GameObject
  • gameobject-create - Crea un nuevo GameObject en el Prefab abierto o en una Escena
  • gameobject-destroy - Destruye el GameObject y todos los GameObjects anidados de forma recursiva
  • gameobject-duplicate - Duplica GameObjects en el Prefab abierto o en una Escena
  • gameobject-find - Encuentra un GameObject específico según la información proporcionada
  • gameobject-modify - Modifica GameObjects y/o los campos y propiedades del componente adjunto
  • gameobject-set-parent - Establece el GameObject padre para una lista de GameObjects
  • object-get-data - Obtiene datos del Unity Object especificado
  • object-modify - Modifica el Unity Object especificado
  • scene-create - Crea una nueva escena en los activos del proyecto
  • scene-get-data - Recupera la lista de GameObjects raíz en la escena especificada
  • scene-list-opened - Devuelve la lista de escenas actualmente abiertas en el Editor de Unity
  • scene-open - Abre una escena desde el archivo de activo del proyecto
  • scene-save - Guarda la escena abierta en el archivo de activo
  • scene-set-active - Establece la escena abierta especificada como escena activa
  • scene-unload - Descarga la escena de las escenas abiertas en el Editor de Unity
  • screenshot-camera - Captura una captura de pantalla desde una cámara y la devuelve como imagen
  • screenshot-game-view - Captura una captura de pantalla desde la Vista de Juego del Editor de Unity
  • screenshot-isolated - Renderiza un GameObject de forma aislada desde un ángulo elegido (vista compuesta 2x2 opcional)
  • screenshot-scene-view - Captura una captura de pantalla desde la Vista de Escena del Editor de Unity
Scripting y Editor
  • console-clear-logs - Limpia la caché de registros de MCP y la ventana de Consola del Editor de Unity
  • console-get-logs - Recupera los registros del Editor de Unity con opciones de filtrado
  • editor-application-get-state - Devuelve información sobre el estado de la aplicación del Editor de Unity (playmode, pausa, compilación)
  • editor-application-set-state - Controla el estado de la aplicación del Editor de Unity (iniciar/detener/pausar playmode)
  • editor-selection-get - Obtiene información sobre la Selección actual en el Editor de Unity
  • editor-selection-set - Establece la Selección actual en el Editor de Unity
  • reflection-method-call - Llama a cualquier método C# con parámetros de entrada y devuelve resultados
  • reflection-method-find - Encuentra métodos en el proyecto usando C# Reflection (incluso métodos privados)
  • script-delete - Elimina los archivos de script
  • script-execute - Compila y ejecuta código C# dinámicamente usando Roslyn
  • script-read - Lee el contenido de un archivo de script
  • script-update-or-create - Actualiza o crea un archivo de script con el código C# proporcionado
  • tests-run - Ejecuta pruebas de Unity (EditMode/PlayMode) con filtrado y resultados detallados
  • type-get-json-schema - Genera un JSON Schema para un tipo C# mediante reflexión
Perfilado y Diagnóstico
  • profiler-capture-frame - Captura la información de tiempo del frame actual (delta time, FPS, contadores de frames)
  • profiler-clear-data - Descarta todos los frames retenidos actualmente por el Profiler del Editor
  • profiler-enable-module - Alterna el indicador habilitado local para un módulo de profiler con nombre
  • profiler-get-memory-stats - Devuelve una instantánea de estadísticas de memoria (reservada, asignada, montón Mono, gráficos)
  • profiler-get-rendering-stats - Devuelve el tiempo de frame, FPS, vsync, velocidad de frames objetivo y tipo de dispositivo gráfico
  • profiler-get-script-stats - Devuelve el tiempo de ejecución de scripts más el uso de memoria Mono / GC
  • profiler-get-status - Devuelve el estado habilitado del profiler, los módulos activos y el soporte de plataforma
  • profiler-list-modules - Lista todos los nombres de módulos de profiler conocidos con su indicador habilitado
  • profiler-load-data - Lee una instantánea JSON del profiler guardada previamente
  • profiler-save-data - Guarda una instantánea de estadísticas derivadas del profiler en un archivo JSON
  • profiler-start - Habilita el profiler de runtime de Unity y abre la ventana del Profiler
  • profiler-stop - Deshabilita el profiler de runtime de Unity

Instalar Habilidades y Herramientas Adicionales

Instala extensiones cuando necesites más herramientas o crea tus propias herramientas.

ExtensiónDescripción
AI AnimationConjunto de herramientas adicionales para Animaciones de Unity
AI CinemachineHerramientas MCP para Cinemachine
AI InputSystemHerramientas MCP para el Unity Input System
AI NavigationHerramientas MCP para AI Navigation (superficies NavMesh, horneado, agentes, enlaces)
AI ParticleSystemConjunto de herramientas adicionales para Unity Particle System
AI ProBuilderConjunto de herramientas adicionales para Unity ProBuilder
AI SplinesHerramientas MCP para Unity Splines
AI TerrainConjunto de herramientas adicionales para Unity Terrain
AI TilemapHerramientas MCP para Unity 2D Tilemaps
AI TimelineHerramientas MCP para escenas y secuencias de Unity Timeline

AI Game Developer — Unity SKILLS and MCP

Contenido

Más documentación

DocumentoDescripción
Default MCP ToolsReferencia completa de todas las herramientas integradas con descripciones
MCP Server SetupConfiguración del servidor, variables de entorno, alojamiento remoto
Docker DeploymentGuía de despliegue de Docker paso a paso
Development GuideArquitectura, estilo de código, CI/CD — para contribuyentes
WikiPrimeros pasos, tutoriales, referencia de API, preguntas frecuentes
CLI ToolInstalar plugins, configurar y conectar mediante línea de comandos

AI Game Developer — Unity SKILLS and MCP

Instalación

Paso 1: Instalar Unity MCP Plugin

⚠️ Requisitos (clic)

[!IMPORTANT] La ruta del proyecto no puede contener espacios

  • C:/MyProjects/MyProject
  • C:/My Projects/MyProject
  • C:/My Projects/My Project
  • C:/MyProjects/My Project

Opción 1 - Instalador

  • ⬇️ Descargar instalador
  • 📂 Importar el instalador en el proyecto de Unity
    • Puede hacer doble clic en el archivo: Unity lo abrirá automáticamente
    • O: Abra primero el Editor de Unity, luego haga clic en Assets/Import Package/Custom Package y elija el archivo

Opción 2 - CLI (recomendado)

Instale el plugin mediante unity-mcp-cli — no se necesita el Editor de Unity:

# 1.1 Install unity-mcp-cli                                #  ┌────────────────────┐
npm install -g unity-mcp-cli                               #  │ Available AI agent │
                                                           #  ├────────────────────┤
# 1.2 (Optional) Install Unity                             #  │ antigravity        │
unity-mcp-cli install-unity                                #  │ claude-code        │
                                                           #  │ claude-desktop     │
# 1.3 (Optional) Create Unity project                      #  │ cline              │
unity-mcp-cli create-project ./MyUnityProject              #  │ codex              │
                                                           #  │ cursor             │
# 2. Install "AI Game Developer" in Unity project          #  │ gemini             │
unity-mcp-cli install-plugin ./MyUnityProject              #  │ github-copilot-cli │
                                                           #  │ kilo-code          │
# 3. Sign in to ai-game.dev (OAuth device flow)            #  │ open-code          │
unity-mcp-cli login                                        #  │ rider-junie        │
                                                           #  │ unity-ai           │
# 4. Open Unity project (auto-connects and generates skills)  │ vs-copilot         │
unity-mcp-cli open ./MyUnityProject                        #  │ vscode-copilot     │
                                                           #  └────────────────────┘
# 5. Wait for Unity Editor to be ready
unity-mcp-cli wait-for-ready ./MyUnityProject

Consulte la documentación completa de CLI para todos los comandos disponibles.

Inicio de sesión en la nube y fijación de proyecto: unity-mcp-cli login ejecuta el flujo de dispositivo OAuth del navegador y almacena la credencial en el almacén compartido de la máquina (~/.ai-game-dev/credentials.json) — no hay un token de acceso personal que pegar. De forma predeterminada, la configuración del agente de IA que escribe setup-mcp apunta a un endpoint fijado por proyecto (https://ai-game.dev/mcp/p/<pin>); pase --no-pin para usar el endpoint compartido https://ai-game.dev/mcp en su lugar. Los equipos pueden distribuir el acceso con un código de inscripción: unity-mcp-cli install-plugin --enroll <code>.

Paso 2: Instalar AI agent

Elija un único AI agent que prefiera: no necesita instalarlos todos. Esta será su ventana de chat principal para comunicarse con el LLM.

El AI Game Developer es bastante universal, por lo que puede usar cualquier agente de IA que prefiera: funcionará tan bien como cualquier otro. El único requisito importante es que el agente de IA debe admitir Skills o actualizaciones dinámicas de herramientas MCP.

Paso 3: Configurar AI agent

Configuración automática

  • Abra el proyecto de Unity
  • Abra Window/AI Game Developer
  • Opción 1: Haga clic en Auto-generate Skills (recomendado)
  • Opción 2: Haga clic en Configure Model Context Protocol (MCP)

Unity_AI

Si su cliente MCP no está en la lista, use el JSON sin procesar que se muestra en la ventana para inyectarlo en su cliente MCP. Lea las instrucciones de su cliente MCP específico sobre cómo hacerlo.

Configuración manual

Si la configuración automática no funciona por cualquier motivo, use el JSON de la ventana AI Game Developer (Unity-MCP) para configurar cualquier MCP Client manualmente.

Configuración de línea de comandos

Crear comando

1. Elija su <command> para su entorno

Plataforma<command>
Windows x64"<unityProjectPath>/Library/mcp-server/win-x64/gamedev-mcp-server.exe" port=<port> client-transport=stdio
Windows x86"<unityProjectPath>/Library/mcp-server/win-x86/gamedev-mcp-server.exe" port=<port> client-transport=stdio
Windows arm64"<unityProjectPath>/Library/mcp-server/win-arm64/gamedev-mcp-server.exe" port=<port> client-transport=stdio
MacOS Apple-Silicon"<unityProjectPath>/Library/mcp-server/osx-arm64/gamedev-mcp-server" port=<port> client-transport=stdio
MacOS Apple-Intel"<unityProjectPath>/Library/mcp-server/osx-x64/gamedev-mcp-server" port=<port> client-transport=stdio
Linux x64"<unityProjectPath>/Library/mcp-server/linux-x64/gamedev-mcp-server" port=<port> client-transport=stdio
Linux arm64"<unityProjectPath>/Library/mcp-server/linux-arm64/gamedev-mcp-server" port=<port> client-transport=stdio

2. Reemplace <unityProjectPath> con la ruta completa al proyecto de Unity

3. Reemplace <port> con su puerto de la configuración de AI Game Developer

4. Agregue el servidor MCP usando la línea de comandos

Gemini CLI Gemini CLI
gemini mcp add ai-game-developer <command>

Reemplace <command> de la tabla anterior

Claude Code CLI Claude Code CLI
claude mcp add ai-game-developer <command>

Reemplace <command> de la tabla anterior

GitHub Copilot CLI GitHub Copilot CLI
copilot
/mcp add

Nombre del servidor: ai-game-developer Tipo de servidor: local Comando: <command>

Reemplace <command> de la tabla anterior

AI Game Developer — Unity SKILLS and MCP

Ejemplos de flujo de trabajo con IA

Comuníquese con la IA (LLM) en su AI agent. Pídale que haga lo que quiera. Cuanto mejor describa su tarea o idea, mejor realizará el trabajo.

Algunos AI agents le permiten elegir diferentes modelos de LLM. Preste atención a esta función, ya que algunos modelos pueden funcionar mucho mejor que otros.

Ejemplos de indicaciones:

Explain my scene hierarchy
Create 3 spheres on top of each other
Create metallic golden material and attach it to a new sphere gameObject

Asegúrese de que el modo Agent esté habilitado si usa VS Code con Copilot

Deshabilitar notificaciones de actualización para todo el equipo

El plugin muestra una ventana emergente de actualización al iniciar el Editor cuando hay una versión más reciente disponible en OpenUPM. De forma predeterminada, cada miembro del equipo ve esta ventana emergente hasta que hace clic individualmente en "No volver a mostrar" (que es una configuración por usuario almacenada en su máquina).

Para proyectos de Unity con varias personas donde un ingeniero es responsable del versionado del plugin, puede deshabilitar la ventana emergente para todo el equipo abriendo Edit ▸ Project Settings ▸ AI Game Developer y habilitando "Disable update notifications for the entire team". La configuración se guarda en ProjectSettings/AI-Game-Developer-UpdateSettings.asset y solo necesita establecerse una vez por proyecto: confirme ese archivo y todos los miembros del equipo que obtengan el commit tendrán la ventana emergente suprimida.

La misma opción también está disponible a través de Tools ▸ AI Game Developer ▸ Updates ▸ Disable Update Notifications (Team) en la barra de menú.

Funciones avanzadas para LLM

Unity MCP proporciona herramientas avanzadas que permiten al LLM trabajar más rápido y de manera más efectiva, evitando errores y autocorrigiéndose cuando ocurren. Todo está diseñado para lograr sus objetivos de manera eficiente.

Capacidades principales

  • ✔️ Herramientas listas para agentes - Encuentre lo que necesite en 1-2 pasos
  • ✔️ Compilación instantánea - Compilación y ejecución de código C# usando Roslyn para iteraciones más rápidas
  • ✔️ Acceso completo a activos - Acceso de lectura/escritura a activos y scripts de C#
  • ✔️ Retroalimentación inteligente - Retroalimentación positiva y negativa bien descrita para una comprensión adecuada de los problemas

Funciones impulsadas por reflexión

  • ✔️ Referencias a objetos - Proporcione referencias a objetos existentes para código C# instantáneo
  • ✔️ Acceso a datos del proyecto - Obtenga acceso completo a todos los datos del proyecto en un formato legible
  • ✔️ Modificaciones granulares - Complete y modifique cualquier dato del proyecto
  • ✔️ Descubrimiento de métodos - Encuentre cualquier método en todo el código base, incluidos archivos DLL compilados
  • ✔️ Ejecución de métodos - Llame a cualquier método en todo el código base
  • ✔️ Parámetros avanzados - Proporcione cualquier propiedad para llamadas a métodos, incluso referencias a objetos existentes en memoria
  • ✔️ API de Unity en vivo - API de Unity disponible al instante, incluso cuando Unity cambia, obtiene la API actualizada
  • ✔️ Autodocumentado - Acceda a descripciones legibles por humanos de cualquier class, method o property mediante atributos Description

AI Game Developer — Unity SKILLS and MCP

Personalizar herramientas

Unity MCP admite el desarrollo de MCP Tool, MCP Resource y MCP Prompt personalizados por parte de los propietarios del proyecto. El servidor MCP toma datos del Unity MCP Plugin y los expone a un cliente. Cualquier persona en la cadena de comunicación MCP recibirá información sobre nuevas funciones de MCP, que el LLM puede decidir usar en algún momento.

Añadir Tool personalizado

Para añadir un Tool personalizado, necesita:

  1. Una clase con el atributo AiToolType
  2. Un método en la clase con el atributo AiTool
  3. Opcional: Agregue un atributo Description a cada argumento del método para ayudar al LLM a entenderlo
  4. Opcional: Use propiedades string? optional = null con ? y valores predeterminados para marcarlas como optional para el LLM

Tenga en cuenta que la línea MainThread.Instance.Run(() => le permite ejecutar código en el hilo principal, lo cual es necesario para interactuar con la API de Unity. Si no necesita esto y ejecutar la herramienta en un hilo en segundo plano es aceptable, evite usar el hilo principal por razones de eficiencia.

[AiToolType]
public class Tool_GameObject
{
    [AiTool
    (
        "MyCustomTask",
        Title = "Create a new GameObject"
    )]
    [Description("Explain here to LLM what is this, when it should be called.")]
    public string CustomTask
    (
        [Description("Explain to LLM what is this.")]
        string inputData
    )
    {
        // do anything in background thread

        return MainThread.Instance.Run(() =>
        {
            // do something in main thread if needed

            return $"[Success] Operation completed.";
        });
    }
}

Añadir MCP Prompt personalizado

MCP Prompt le permite inyectar indicaciones personalizadas en la conversación con el LLM. Admite dos roles de remitente: Usuario y Asistente. Esta es una forma rápida de instruir al LLM para que realice tareas específicas. Puede generar indicaciones usando datos personalizados, proporcionando listas o cualquier otra información relevante.

[AiPromptType]
public static class Prompt_ScriptingCode
{
    [AiPrompt(Name = "add-event-system", Role = Role.User)]
    [Description("Implement UnityEvent-based communication system between GameObjects.")]
    public string AddEventSystem()
    {
        return "Create event system using UnityEvents, UnityActions, or custom event delegates for decoupled communication between game systems and components.";
    }
}

AI Game Developer — Unity SKILLS and MCP

Uso en tiempo de ejecución (en el juego)

Use Unity MCP en su juego/aplicación. Use Tools, Resources o Prompts. De forma predeterminada no hay herramientas, necesitaría implementar las suyas personalizadas.

// Build MCP plugin
var mcpPlugin = UnityMcpPluginRuntime.Initialize(builder =>
    {
        builder.WithConfig(config =>
        {
            config.Host = "http://localhost:8080";
            config.Token = "your-token";
        });
        // Automatically register all tools from the current assembly
        builder.WithToolsFromAssembly(Assembly.GetExecutingAssembly());
    })
    .Build();

await mcpPlugin.Connect(); // Start active connection with retry to the MCP server

await mcpPlugin.Disconnect(); // Stop active connection and close existed connection

Ejemplo: Bot de ajedrez impulsado por IA

Hay un juego de ajedrez clásico. Subcontratemos al LLM la lógica del bot. El bot debe hacer su turno usando las reglas del juego.

[AiToolType]
public static class ChessGameAI
{
    [AiTool("chess-do-turn", Title = "Do the turn")]
    [Description("Do the turn in the chess game. Returns true if the turn was accepted, false otherwise.")]
    public static Task<bool> DoTurn(int figureId, Vector2Int position)
    {
        return MainThread.Instance.RunAsync(() => ChessGameController.Instance.DoTurn(figureId, position));
    }

    [AiTool("chess-get-board", Title = "Get the board")]
    [Description("Get the current state of the chess board.")]
    public static Task<BoardData> GetBoard()
    {
        return MainThread.Instance.RunAsync(() => ChessGameController.Instance.GetBoardData());
    }
}

¿Por qué es necesario el uso en tiempo de ejecución?

Hay muchos casos de uso, imaginemos que estás trabajando en un juego de ajedrez con un bot. Puedes externalizar la toma de decisiones del bot al LLM escribiendo unas pocas líneas de código.

AI Game Developer — Unity SKILLS and MCP

Configuración de Unity MCP Server

Unity MCP Server admite muchas opciones de lanzamiento diferentes e implementación con Docker. Ambos protocolos de transporte son compatibles: streamableHttp y stdio. Si necesitas personalizar o implementar Unity MCP Server en la nube, esta sección es para ti. Leer más...

Variables

No importa qué opción de lanzamiento elijas, todas admiten configuración personalizada mediante Variables de Entorno y Argumentos de Línea de Comandos. Funcionará con los valores predeterminados; si solo necesitas lanzarlo, no pierdas tiempo con las variables. Solo asegúrate de que el Plugin de Unity también tenga valores predeterminados, especialmente el --port, deben ser iguales.

Variable de EntornoArgumentos de Línea de ComandosDescripción
MCP_PLUGIN_PORT--portPuerto de conexión Cliente -> Servidor <- Plugin (predeterminado: 8080)
MCP_PLUGIN_CLIENT_TIMEOUT--plugin-timeoutTiempo de espera de conexión (ms) Plugin -> Servidor (predeterminado: 10000)
MCP_PLUGIN_CLIENT_TRANSPORT--client-transportTipo de transporte Cliente -> Servidor: stdio o streamableHttp (predeterminado: streamableHttp)
MCP_AUTHORIZATION--authorizationModo de autenticación para conexiones Cliente entrantes: none, oauth o token (predeterminado: none; el modo heredado required fue eliminado)
MCP_PLUGIN_TOKEN--tokenToken Bearer requerido del Cliente cuando la autorización es token (predeterminado: sin establecer)
MCP_PLUGIN_IDLE_TIMEOUT_SECONDS--idle-timeout-secondsApagar el servidor después de este número de segundos sin conexiones (predeterminado: 600)

Los argumentos de línea de comandos admiten también la opción con un prefijo de un solo - (-port) y una opción sin prefijo alguno (port).

Para las variables de webhook de análisis y autorización (MCP_PLUGIN_WEBHOOK_*), consulta docs/mcp-server.md.

Elección de transporte: Usa stdio cuando el cliente MCP lanza el binario del servidor directamente (uso local — esta es la configuración más común). Usa streamableHttp cuando ejecutes el servidor como proceso independiente o en Docker/nube, y te conectes a través de HTTP.

Variables del Plugin

El Plugin de Unity MCP lee las siguientes variables de entorno (y argumentos de línea de comandos) al iniciarse para anular los valores del archivo de configuración guardado. Las anulaciones se aplican en tiempo de ejecución; en la primera ejecución o cuando se genera un nuevo token de autenticación, los valores anulados se escriben en el archivo de configuración. En ejecuciones posteriores, las anulaciones se aplican en memoria pero no se guardan automáticamente. La excepción es UNITY_MCP_TOOLS, que usa [JsonIgnore] y nunca se persiste — es solo de tiempo de ejecución.

Variable de EntornoArgumento de Línea de ComandosValoresDescripción
UNITY_MCP_CLOUD_URL-urlCadena de URLAnular la URL del Servidor MCP (UNITY_MCP_HOST es un alias heredado)
UNITY_MCP_CONNECTION_MODE-UNITY_MCP_CONNECTION_MODECloud / CustomForzar el modo de conexión (una URL de bucle local implica Custom)
UNITY_MCP_KEEP_CONNECTED-UNITY_MCP_KEEP_CONNECTEDtrue / falseForzar la habilitación o deshabilitación de la conexión activa
UNITY_MCP_AUTH_OPTION-authnone / oauth / tokenForzar el modo de autenticación (el modo heredado required migra a token)
UNITY_MCP_TOKEN-tokencadenaForzar el token de autenticación
UNITY_MCP_TRANSPORT-UNITY_MCP_TRANSPORTstdio / streamableHttpForzar el transporte del cliente que configura el plugin
UNITY_MCP_START_SERVER-UNITY_MCP_START_SERVERtrue / falseForzar si el plugin mantiene un proceso de servidor local en ejecución
UNITY_MCP_TOOLS-UNITY_MCP_TOOLSIDs de herramientas separados por comasHabilitar solo las herramientas listadas; todas las demás están deshabilitadas. Los IDs desconocidos se registran como errores.

Los argumentos de línea de comandos tienen prioridad sobre las variables de entorno. Ambos anulan el valor del archivo de configuración guardado. Las banderas cortas -url, -token y -auth son alias; también se aceptan los nombres de argumento completos -UNITY_MCP_*.

Ejemplo (modo por lotes CI/CD):

Unity.exe -batchmode -nographics \
  -UNITY_MCP_CLOUD_URL=http://localhost:8080 \
  -UNITY_MCP_KEEP_CONNECTED=true \
  -UNITY_MCP_AUTH_OPTION=token \
  -UNITY_MCP_TOKEN=my-secret-token

Docker 📦

Docker Image

Asegúrate de que Docker esté instalado. Y asegúrate de que Docker Desktop esté iniciado si estás en un sistema operativo Windows.

Lee las instrucciones avanzadas de configuración de Docker.

Transporte streamableHttp

docker run -p 8080:8080 aigamedeveloper/mcp-server
Cliente MCP config:
{
  "mcpServers": {
    "ai-game-developer": {
      "url": "http://localhost:8080"
    }
  }
}

Reemplaza url con tu endpoint real si está alojado en la nube.

Transporte stdio

Para usar esta variante, MCP Client debería lanzar el MCP Server en el docker. Esto se logra mediante la configuración modificada de MCP Client.

docker run -t -e MCP_PLUGIN_CLIENT_TRANSPORT=stdio -p 8080:8080 aigamedeveloper/mcp-server
Cliente MCP config:
{
  "mcpServers": {
    "ai-game-developer": {
      "command": "docker",
      "args": [
        "run",
        "-t",
        "-e",
        "MCP_PLUGIN_CLIENT_TRANSPORT=stdio",
        "-p",
        "8080:8080",
        "aigamedeveloper/mcp-server"
      ]
    }
  }
}

port personalizado

docker run -e MCP_PLUGIN_PORT=123 -p 123:123 aigamedeveloper/mcp-server
Cliente MCP config:
{
  "mcpServers": {
    "ai-game-developer": {
      "url": "http://localhost:123"
    }
  }
}

Reemplaza url con tu endpoint real si está alojado en la nube

Ejecutable binario

Puedes lanzar Unity MCP Server directamente desde un archivo binario. Necesitarías tener un binario compilado específicamente para tu arquitectura de CPU. Consulta la Página de Lanzamientos de GitHub, contiene binarios precompilados para todas las arquitecturas de CPU.

./gamedev-mcp-server --port 8080 --plugin-timeout 10000 --client-transport stdio
Cliente MCP config:

Reemplaza <project> con la ruta de tu proyecto de Unity.

{
  "mcpServers": {
    "ai-game-developer": {
      "command": "<project>/Library/mcp-server/win-x64/gamedev-mcp-server.exe",
      "args": [
        "--port=8080",
        "--plugin-timeout=10000",
        "--client-transport=stdio"
      ]
    }
  }
}

AI Game Developer — Unity SKILLS and MCP

Cómo Funciona la Arquitectura de Unity MCP

Unity MCP sirve como puente entre los LLM y Unity. Expone y explica las herramientas de Unity al LLM, que luego comprende la interfaz y utiliza las herramientas según las solicitudes del usuario.

Conecta Unity MCP a clientes LLM como Claude o Cursor usando la ventana integrada de AI Connector. También se admiten clientes personalizados.

El sistema es altamente extensible: puedes definir MCP Tools, MCP Resource o MCP Prompt personalizados directamente en el código base de tu proyecto de Unity, exponiendo nuevas capacidades a clientes de IA o automatización. Esto hace de Unity MCP una base flexible para construir flujos de trabajo avanzados, prototipado rápido e integración de funciones impulsadas por IA en tu proceso de desarrollo.

Qué es MCP

MCP: Protocolo de Contexto de Modelo. En pocas palabras, es USB Type-C para IA, específicamente para LLM (Modelo de Lenguaje Grande). Enseña al LLM cómo usar funciones externas. Como Unity Engine en este caso, o incluso tu método C# personalizado en tu código. Documentación oficial.

Qué es AI agent

Es una aplicación con una ventana de chat. Puede tener agentes inteligentes para operar mejor, puede tener herramientas MCP avanzadas integradas. En general, un buen Cliente MCP es el 50% del éxito de la IA al ejecutar una tarea. Por eso es muy importante elegir el mejor para su uso.

Qué es MCP Server

Es un puente entre MCP Client y "algo más", en este caso particular es Unity Engine. Este proyecto incluye MCP Server.

Qué es MCP Tool

MCP Tool es una función o método que el LLM puede llamar para interactuar con Unity. Estas herramientas actúan como el puente entre las solicitudes en lenguaje natural y las operaciones reales de Unity. Cuando le pides a la IA "crea un cubo" o "cambia el color del material", usa las Herramientas MCP para ejecutar estas acciones.

Características clave:

  • Funciones ejecutables que realizan operaciones específicas
  • Parámetros tipados con descripciones para ayudar al LLM a entender qué datos proporcionar
  • Valores de retorno que dan retroalimentación sobre el éxito o fracaso de la operación
  • Conscientes de hilos - pueden ejecutarse en el hilo principal para llamadas a la API de Unity o en un hilo en segundo plano para procesamiento pesado

Cuándo usar Tool

  • Automatizar tareas repetitivas - Crea herramientas para operaciones comunes que haces con frecuencia
  • Operaciones complejas - Agrupa múltiples llamadas a la API de Unity en una sola herramienta fácil de usar
  • Flujos de trabajo específicos del proyecto - Construye herramientas que entiendan la estructura y convenciones específicas de tu proyecto
  • Tareas propensas a errores - Crea herramientas que incluyan validación y manejo de errores
  • Lógica de juego personalizada - Expone los sistemas de tu juego a la IA para la creación dinámica de contenido

Ejemplos:

  • Crear y configurar GameObjects con componentes específicos
  • Procesamiento por lotes de assets (texturas, materiales, prefabs)
  • Configurar iluminación y efectos de postprocesamiento
  • Generar geometría de niveles o colocar objetos proceduralmente
  • Configurar ajustes de física o capas de colisión

Qué es MCP Resource

MCP Resource proporciona acceso de solo lectura a los datos dentro de tu proyecto de Unity. A diferencia de las Herramientas MCP que realizan acciones, los Recursos permiten al LLM inspeccionar y comprender el estado actual de tu proyecto, sus assets y configuración. Piénsalo como "sensores" que dan contexto a la IA sobre tu proyecto.

Características clave:

  • Acceso de solo lectura a los datos del proyecto y objetos de Unity
  • Información estructurada presentada en un formato que el LLM pueda entender
  • Datos en tiempo real que reflejan el estado actual de tu proyecto
  • Conciencia contextual que ayuda a la IA a tomar decisiones informadas

Cuándo usar MCP Resource

  • Análisis de proyectos - Deja que la IA entienda la estructura, los assets y la organización de tu proyecto
  • Asistencia de depuración - Proporciona información de estado actual para la resolución de problemas
  • Sugerencias inteligentes - Da contexto a la IA para hacer mejores recomendaciones
  • Generación de documentación - Crea documentación automáticamente basada en el estado del proyecto
  • Gestión de assets - Ayuda a la IA a entender qué assets están disponibles y sus propiedades

Ejemplos:

  • Exponer la jerarquía de escenas y las propiedades de GameObjects
  • Listar materiales, texturas y sus configuraciones disponibles
  • Mostrar dependencias de scripts y relaciones de componentes
  • Mostrar la configuración de iluminación actual y la configuración del pipeline de renderizado
  • Proporcionar información sobre fuentes de audio, animaciones y sistemas de partículas

Qué es MCP Prompt

MCP Prompt te permite inyectar prompts predefinidos en la conversación con el LLM. Son plantillas inteligentes que pueden proporcionar contexto, instrucciones o conocimiento para guiar el comportamiento de la IA. Los Prompts pueden ser texto estático o generados dinámicamente según el estado actual de tu proyecto.

Características clave:

  • Orientación contextual que influye en cómo responde la IA
  • Basado en roles - puede simular diferentes personas (solicitudes del usuario o conocimiento del asistente)
  • Contenido dinámico - puede incluir datos del proyecto en tiempo real
  • Plantillas reutilizables para escenarios y flujos de trabajo comunes

Cuándo usar MCP Prompt

  • Proporcionar conocimiento del dominio - Comparte mejores prácticas y estándares de codificación específicos de tu proyecto
  • Establecer convenciones de codificación - Define convenciones de nomenclatura, patrones de arquitectura y estilo de código
  • Dar contexto sobre la estructura del proyecto - Explica cómo está organizado tu proyecto y por qué
  • Compartir instrucciones de flujo de trabajo - Proporciona procedimientos paso a paso para tareas comunes
  • Inyectar conocimiento especializado - Agrega información sobre características específicas de Unity, activos de terceros o sistemas personalizados

Ejemplos:

  • "Usa siempre PascalCase para métodos públicos y camelCase para campos privados"
  • "Este proyecto utiliza un sistema de eventos personalizado ubicado en Scripts/Events/"
  • "Al crear elementos de UI, agrégalos siempre al Canvas en Scene/UI/MainCanvas"
  • "El rendimiento es crítico: prefiere el object pooling para objetos instanciados con frecuencia"
  • "Este proyecto sigue los principios SOLID: explica cualquier decisión de arquitectura"

AI Game Developer — Unity SKILLS and MCP

Desinstalación 🧹

Para eliminar completamente el plugin de tu proyecto de Unity:

  1. Abre Window ▸ Package Manager, selecciona el paquete AI Game Developer — MCP y haz clic en Remove.
  2. Cierra Unity y luego elimina la carpeta Assets/Plugins/NuGet (junto con su archivo Assets/Plugins/NuGet.meta).

AI Game Developer — Unity SKILLS and MCP

Contribución 💙💛

Las contribuciones son muy apreciadas. ¡Trae tus ideas y hagamos que el desarrollo de juegos sea más simple que nunca! ¿Tienes una idea para un nuevo Tool o característica, o encontraste un error y sabes cómo solucionarlo?

¡Por favor, dale una estrella a este proyecto 🌟 si te resulta útil!

  1. 👉 Lee la documentación de desarrollo
  2. 👉 Haz un fork del proyecto
  3. Clona el fork y abre la carpeta ./Unity-MCP-Plugin en Unity
  4. Implementa cosas nuevas en el proyecto, haz commit, súbelo a GitHub
  5. Crea un Pull Request dirigido al repositorio original Unity-MCP, rama main.

AI Game Developer — Unity SKILLS and MCP