Unity MCP
Un servidor MCP y plugin para conectar el Editor de Unity y juegos a clientes MCP como Claude Desktop.
Documentación
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.
- ✔️ 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
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

Inicio Rápido
Ponte en marcha en tres pasos:
- Instala el plugin — descarga el instalador de
.unitypackageo ejecutaopenupm add com.ivanmurzak.unity.mcpAlternativa:
npx unity-mcp-cli install-plugin ./MyUnityProject— consulta la documentación de la CLI - Elige un agente de IA — Claude Code, Claude Desktop, GitHub Copilot, Cursor o cualquier otro
- Configura el agente de IA — abre
Window/AI Game Developeren Unity y haz clic en Auto-generar habilidades (recomendado) o Configurar MCP
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 newPathassets-create-folder- Crea una nueva carpeta en la carpeta principal especificadaassets-delete- Elimina los activos en las rutas indicadas del proyectoassets-find- Busca en la base de datos de activos usando la cadena de filtro de búsquedaassets-find-built-in- Busca los activos integrados del Editor de Unityassets-get-data- Obtiene datos del archivo de activo, incluidos todos los campos y propiedades serializablesassets-material-create- Crea un nuevo activo de material con parámetros predeterminadosassets-modify- Modifica el archivo de activo en el proyectoassets-move- Mueve los activos en las rutas indicadas del proyecto (también se usa para renombrar)assets-prefab-close- Cierra el prefab actualmente abiertoassets-prefab-create- Crea un prefab a partir de un GameObject en la escena activa actualassets-prefab-instantiate- Instancia un prefab en la escena activa actualassets-prefab-open- Abre el modo de edición de prefab para un GameObject específicoassets-prefab-save- Guarda un prefab en el modo de edición de prefabassets-refresh- Refresca la AssetDatabaseassets-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 proyectopackage-add- Instala un paquete desde el registro del Unity Package Manager, una URL de Git o una ruta localpackage-list- Lista todos los paquetes instalados en el proyecto de Unity (paquetes UPM)package-remove- Elimina (desinstala) un paquete del proyecto de Unitypackage-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 GameObjectgameobject-component-destroy- Destruye uno o varios componentes del GameObject objetivogameobject-component-get- Obtiene información detallada sobre un Componente específico en un GameObjectgameobject-component-list-all- Lista los nombres de clases C# que extienden UnityEngine.Componentgameobject-component-modify- Modifica un Componente específico en un GameObjectgameobject-create- Crea un nuevo GameObject en el Prefab abierto o en una Escenagameobject-destroy- Destruye el GameObject y todos los GameObjects anidados de forma recursivagameobject-duplicate- Duplica GameObjects en el Prefab abierto o en una Escenagameobject-find- Encuentra un GameObject específico según la información proporcionadagameobject-modify- Modifica GameObjects y/o los campos y propiedades del componente adjuntogameobject-set-parent- Establece el GameObject padre para una lista de GameObjectsobject-get-data- Obtiene datos del Unity Object especificadoobject-modify- Modifica el Unity Object especificadoscene-create- Crea una nueva escena en los activos del proyectoscene-get-data- Recupera la lista de GameObjects raíz en la escena especificadascene-list-opened- Devuelve la lista de escenas actualmente abiertas en el Editor de Unityscene-open- Abre una escena desde el archivo de activo del proyectoscene-save- Guarda la escena abierta en el archivo de activoscene-set-active- Establece la escena abierta especificada como escena activascene-unload- Descarga la escena de las escenas abiertas en el Editor de Unityscreenshot-camera- Captura una captura de pantalla desde una cámara y la devuelve como imagenscreenshot-game-view- Captura una captura de pantalla desde la Vista de Juego del Editor de Unityscreenshot-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 Unityconsole-get-logs- Recupera los registros del Editor de Unity con opciones de filtradoeditor-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 Unityeditor-selection-set- Establece la Selección actual en el Editor de Unityreflection-method-call- Llama a cualquier método C# con parámetros de entrada y devuelve resultadosreflection-method-find- Encuentra métodos en el proyecto usando C# Reflection (incluso métodos privados)script-delete- Elimina los archivos de scriptscript-execute- Compila y ejecuta código C# dinámicamente usando Roslynscript-read- Lee el contenido de un archivo de scriptscript-update-or-create- Actualiza o crea un archivo de script con el código C# proporcionadotests-run- Ejecuta pruebas de Unity (EditMode/PlayMode) con filtrado y resultados detalladostype-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 Editorprofiler-enable-module- Alterna el indicador habilitado local para un módulo de profiler con nombreprofiler-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áficoprofiler-get-script-stats- Devuelve el tiempo de ejecución de scripts más el uso de memoria Mono / GCprofiler-get-status- Devuelve el estado habilitado del profiler, los módulos activos y el soporte de plataformaprofiler-list-modules- Lista todos los nombres de módulos de profiler conocidos con su indicador habilitadoprofiler-load-data- Lee una instantánea JSON del profiler guardada previamenteprofiler-save-data- Guarda una instantánea de estadísticas derivadas del profiler en un archivo JSONprofiler-start- Habilita el profiler de runtime de Unity y abre la ventana del Profilerprofiler-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ón | Descripción |
|---|---|
| AI Animation | Conjunto de herramientas adicionales para Animaciones de Unity |
| AI Cinemachine | Herramientas MCP para Cinemachine |
| AI InputSystem | Herramientas MCP para el Unity Input System |
| AI Navigation | Herramientas MCP para AI Navigation (superficies NavMesh, horneado, agentes, enlaces) |
| AI ParticleSystem | Conjunto de herramientas adicionales para Unity Particle System |
| AI ProBuilder | Conjunto de herramientas adicionales para Unity ProBuilder |
| AI Splines | Herramientas MCP para Unity Splines |
| AI Terrain | Conjunto de herramientas adicionales para Unity Terrain |
| AI Tilemap | Herramientas MCP para Unity 2D Tilemaps |
| AI Timeline | Herramientas MCP para escenas y secuencias de Unity Timeline |
Contenido
- Inicio rápido
- Referencia de habilidades y herramientas
- Contenido
- Instalación
- Ejemplos de flujo de trabajo con IA
- Personalizar herramientas
- Uso en tiempo de ejecución (en el juego)
- Configuración de Unity
MCP Server - Cómo funciona la arquitectura de Unity MCP
- Contribución 💙💛
Más documentación
| Documento | Descripción |
|---|---|
| Default MCP Tools | Referencia completa de todas las herramientas integradas con descripciones |
| MCP Server Setup | Configuración del servidor, variables de entorno, alojamiento remoto |
| Docker Deployment | Guía de despliegue de Docker paso a paso |
| Development Guide | Arquitectura, estilo de código, CI/CD — para contribuyentes |
| Wiki | Primeros pasos, tutoriales, referencia de API, preguntas frecuentes |
| CLI Tool | Instalar plugins, configurar y conectar mediante línea de comandos |
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 Packagey 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 loginejecuta 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 escribesetup-mcpapunta a un endpoint fijado por proyecto (https://ai-game.dev/mcp/p/<pin>); pase--no-pinpara usar el endpoint compartidohttps://ai-game.dev/mcpen 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.
- Claude Code (recomendado)
- Claude Desktop
- GitHub Copilot en VS Code
- Antigravity
- Cursor
- Windsurf
- Cualquier otro compatible
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-generateSkills (recomendado) - Opción 2: Haga clic en
ConfigureModel Context Protocol (MCP)

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 mcp add ai-game-developer <command>
Reemplace
<command>de la tabla anterior
Claude Code CLI
claude mcp add ai-game-developer <command>
Reemplace
<command>de la tabla anterior
GitHub Copilot CLI
copilot
/mcp add
Nombre del servidor: ai-game-developer
Tipo de servidor: local
Comando: <command>
Reemplace
<command>de la tabla anterior
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
Agentesté 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
Roslynpara 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,methodopropertymediante atributosDescription
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:
- Una clase con el atributo
AiToolType - Un método en la clase con el atributo
AiTool - Opcional: Agregue un atributo
Descriptiona cada argumento del método para ayudar al LLM a entenderlo - Opcional: Use propiedades
string? optional = nullcon?y valores predeterminados para marcarlas comooptionalpara 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.";
}
}
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.
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 Entorno | Argumentos de Línea de Comandos | Descripción |
|---|---|---|
MCP_PLUGIN_PORT | --port | Puerto de conexión Cliente -> Servidor <- Plugin (predeterminado: 8080) |
MCP_PLUGIN_CLIENT_TIMEOUT | --plugin-timeout | Tiempo de espera de conexión (ms) Plugin -> Servidor (predeterminado: 10000) |
MCP_PLUGIN_CLIENT_TRANSPORT | --client-transport | Tipo de transporte Cliente -> Servidor: stdio o streamableHttp (predeterminado: streamableHttp) |
MCP_AUTHORIZATION | --authorization | Modo de autenticación para conexiones Cliente entrantes: none, oauth o token (predeterminado: none; el modo heredado required fue eliminado) |
MCP_PLUGIN_TOKEN | --token | Token Bearer requerido del Cliente cuando la autorización es token (predeterminado: sin establecer) |
MCP_PLUGIN_IDLE_TIMEOUT_SECONDS | --idle-timeout-seconds | Apagar 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
stdiocuando el cliente MCP lanza el binario del servidor directamente (uso local — esta es la configuración más común). UsastreamableHttpcuando 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 Entorno | Argumento de Línea de Comandos | Valores | Descripción |
|---|---|---|---|
UNITY_MCP_CLOUD_URL | -url | Cadena de URL | Anular la URL del Servidor MCP (UNITY_MCP_HOST es un alias heredado) |
UNITY_MCP_CONNECTION_MODE | -UNITY_MCP_CONNECTION_MODE | Cloud / Custom | Forzar el modo de conexión (una URL de bucle local implica Custom) |
UNITY_MCP_KEEP_CONNECTED | -UNITY_MCP_KEEP_CONNECTED | true / false | Forzar la habilitación o deshabilitación de la conexión activa |
UNITY_MCP_AUTH_OPTION | -auth | none / oauth / token | Forzar el modo de autenticación (el modo heredado required migra a token) |
UNITY_MCP_TOKEN | -token | cadena | Forzar el token de autenticación |
UNITY_MCP_TRANSPORT | -UNITY_MCP_TRANSPORT | stdio / streamableHttp | Forzar el transporte del cliente que configura el plugin |
UNITY_MCP_START_SERVER | -UNITY_MCP_START_SERVER | true / false | Forzar si el plugin mantiene un proceso de servidor local en ejecución |
UNITY_MCP_TOOLS | -UNITY_MCP_TOOLS | IDs de herramientas separados por comas | Habilitar 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,-tokeny-authson 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 📦
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
urlcon 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
urlcon 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"
]
}
}
}
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"
Desinstalación 🧹
Para eliminar completamente el plugin de tu proyecto de Unity:
- Abre Window ▸ Package Manager, selecciona el paquete AI Game Developer — MCP y haz clic en Remove.
- Cierra Unity y luego elimina la carpeta
Assets/Plugins/NuGet(junto con su archivoAssets/Plugins/NuGet.meta).
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!
- 👉 Lee la documentación de desarrollo
- 👉 Haz un fork del proyecto
- Clona el fork y abre la carpeta
./Unity-MCP-Pluginen Unity - Implementa cosas nuevas en el proyecto, haz commit, súbelo a GitHub
- Crea un Pull Request dirigido al repositorio original Unity-MCP, rama
main.