VibeUE
Unreal Engine MCP
Documentación
VibeUE — Desarrollo de Unreal Engine impulsado por IA
🧩 Expansión MCP + Conjunto de Herramientas de IA para el Editor de Unreal Engine 5.8+
VibeUE es la Expansión MCP + Conjunto de Herramientas de IA para el Editor de Unreal Engine 5.8+. Unreal 5.8 añadió un
servidor MCP integrado y conjuntos de herramientas de IA; VibeUE es una Expansión MCP que se conecta directamente a ellos y
añade un profundo Conjunto de Herramientas de IA para el Editor — una biblioteca de capacidades del editor — Blueprints, materiales, paisajes, follaje, animación, Niagara, UMG, audio, StateTree,
Árboles de Comportamiento y Blackboards, etiquetas de juego, entrada, UVs, rendimiento/perfilado, y más — registradas en el propio
servidor ToolsetRegistry y ModelContextProtocol del motor, además de habilidades de dominio enriquecidas servidas a través
del sistema nativo AgentSkill de Unreal. Cualquier agente compatible con MCP (Claude Code, Cursor, Copilot, …) controla
tu editor a través del endpoint MCP estándar de Unreal.
⚠️ VibeUE requiere que el MCP nativo de Unreal esté configurado primero — habilita el plugin Unreal MCP (que auto-habilita Toolset Registry) y el plugin Editor Tools, luego inicia el servidor MCP. Sigue la guía de Epic: Unreal MCP en el Editor de Unreal. VibeUE luego expande ese endpoint — sin servidor separado y sin chat en el editor. Una clave API gratuita (configurada en Editor Preferences → Plugins → VibeUE) desbloquea las herramientas de terreno del mundo real; todo lo demás funciona sin ella.
✨ Lo que VibeUE añade
Unreal 5.8 incluye sus propios conjuntos de herramientas de IA (Blueprints, materiales, actores, assets, mallas, tablas de datos, …). VibeUE los complementa — se centra en los dominios y la profundidad que el motor no cubre:
- Terreno y mundo — Esculpido de paisajes/mapas de altura/splines, auto-materiales de paisaje + RVT, follaje, Map Blockout FPS procedural, y terreno del mundo real (mapas de altura + agua desde GPS).
- Audio — Autoría de gráficos MetaSound y SoundCue.
- Assets de animación — Edición de keyframes de AnimSequence, autoría de AnimMontage, máquinas de estado de AnimBP, edición de huesos/sockets/retarget/perfiles de mezcla del esqueleto.
- Profundidad de FX — Autoría de color/curvas de emisores Niagara y módulos Custom-HLSL scratch-pad.
- UI — Widgets UMG con enlaces MVVM, autoría de animaciones, y validación de vista previa/PIE.
- Autoría de Blueprints de orden superior — líneas de tiempo, event dispatchers, delegados, pines de eventos personalizados,
cajas de comentarios, y un constructor por lotes
build_graph. - Autoría de comportamiento de IA — Edición de nodos/decoradores/servicios de Árboles de Comportamiento por ruta estructural con enlace de claves de blackboard, round-trips de árboles JSON, y validación/reparación; CRUD completo de assets de Blackboard + claves. Las escrituras pasan por el EdGraph del editor con guardas de rechazo conscientes de PIE y editores abiertos.
- Seguridad del editor —
TransactionServiceenvuelve el buffer de transacciones del editor (deshacer / rehacer / checkpoints) para que un agente pueda agrupar y revertir sus propias ediciones — los conjuntos de herramientas del motor no exponen nada de esto. - ⚡ Rendimiento y perfilado — Lo más destacado de VibeUE: consulta la sección dedicada a continuación.
- Acceso primero en Python — ejecuta cualquier Python
unreal.*en el editor e inspecciona toda la API. - Investigación web — búsqueda / fetch / geocodificación para investigación en contexto y flujos de trabajo de terreno.
Deliberadamente no duplica las herramientas generales del motor (CRUD básico de assets/actores/blueprints/materiales, capturas de pantalla, logs, PIE) — los agentes usan los conjuntos de herramientas nativos de Unreal para eso.
⚡ Rendimiento y Perfilado (buque insignia)
Los conjuntos de herramientas de IA nativos de Unreal tienen cero herramientas de rendimiento — pueden iniciar PIE/Simulate pero no pueden
medir nada. El PerformanceService de VibeUE llena ese vacío para que un agente pueda realmente diagnosticar y
corregir la tasa de fotogramas:
frame_timing()— División de hilos Game/Render/GPU/RHI + un veredicto de cuello de botella CPU-vs-GPU y una pista concreta de siguiente paso. Ejecuta esto primero — optimizar la GPU no hace nada en un fotograma limitado por CPU.- Captura de Unreal Insights —
start_trace/stop_trace/get_trace_status, con marcadoresbookmarkyregion_start/region_end. analyse()— lee el trace y el log de vuelta y devuelve un resumen de rendimiento (estadísticas de fotogramas, peores fotogramas, tirones, líneas de log notables).start_standaloneadjunto al trace — perfila una compilación independiente representativa, no solo el viewport del editor.
import unreal
print(unreal.PerformanceService.frame_timing()) # CPU vs GPU bound — diagnose FIRST
unreal.PerformanceService.start_trace("cap", "") # Insights trace
# … reproduce the workload (ideally under PIE / standalone) …
unreal.PerformanceService.stop_trace()
print(unreal.PerformanceService.analyse("both", ""))
Combínalo con las habilidades profiling y frame-rate para el análisis completo de CPU/GPU.
🏗️ Arquitectura
VibeUE se conecta a tres sistemas nativos de UE 5.8+:
- Toolsets (
ToolsetRegistry) — Los servicios de VibeUE se registran comoUToolsetDefinitions, por lo que sus métodos se convierten en herramientas AICallable en el endpoint MCP. También sonBlueprintCallable, por lo que los mismos métodos son llamables desde Python comounreal.<Name>Service.<method>(). - Servidor MCP (
ModelContextProtocol) — Un pequeño conjunto de herramientas de utilidad de VibeUE se registran directamente en el endpoint:execute_python_code,discover_python_module/_class/_function,list_python_subsystems,deep_research,terrain_data. - Habilidades (
AgentSkillToolset) — ~36 paquetes de habilidades en markdown se registran comoUAgentSkills nativos, descubribles víaListSkillsy cargados perezosamente víaGetSkills, junto a las habilidades del propio motor.
Uso eficiente (para agentes): execute_python_code es el caballo de batalla — agrupa una tarea completa de
múltiples pasos en un solo round-trip y alcanza cada servicio de VibeUE más la API completa de unreal.*. Usa
call_tool solo para habilidades y los pocos toolsets del motor sin ruta de Python (capturas de pantalla, etc.). Consulta
Content/samples/AGENTS.md.sample para la guía completa del agente.
🚀 Instalación y configuración
Requisitos: Unreal Engine 5.8+ · Git
Paso 1 — Configura el MCP nativo de Unreal (haz esto PRIMERO)
VibeUE es una expansión del soporte MCP integrado de Unreal, así que habilita eso primero. Detalles completos en la guía de Epic: Unreal MCP en el Editor de Unreal.
- Edit → Plugins → habilita Unreal MCP (esto auto-habilita Toolset Registry) y Editor Tools (los toolsets de IA del propio motor, para que los agentes obtengan ambos). Son Experimentales. Reinicia cuando se te solicite.
- Edit → Editor Preferences → General → Model Context Protocol → habilita Auto Start Server
(o ejecuta el comando de consola
ModelContextProtocol.StartServer). Endpoint predeterminadohttp://127.0.0.1:8000/mcp(puerto/ruta configurables). Habilitar Tool Search mantiene el contexto de un agente pequeño — velist_toolsets/describe_toolset/call_tooly carga herramientas bajo demanda.
Paso 2 — Instala VibeUE
cd /path/to/YourProject/Plugins
git clone https://github.com/kevinpbuckley/VibeUE.git
Compila con el script del proyecto:
Plugins/VibeUE/BuildAndLaunchGame.ps1 # builds + launches the editor
Plugins/VibeUE/BuildAndLaunchGame.ps1 -StrictRebuild # full recompile (warnings-as-errors)
En Linux o macOS, usa el script de shell que detecta la plataforma:
Plugins/VibeUE/BuildAndLaunchGame.sh --engine /path/to/UE5
Plugins/VibeUE/BuildAndLaunchGame.sh --engine /path/to/UE5 --strict-rebuild
Luego Edit → Plugins → habilita VibeUE y reinicia. Sus servicios, herramientas y habilidades ahora se registran en el mismo endpoint, junto a los del propio motor.
Paso 3 — Conecta tu agente
Dos comandos de consola desde el editor (abre la consola con `):
1. Escribe la configuración del servidor MCP (.mcp.json en la raíz del proyecto):
ModelContextProtocol.GenerateClientConfig ClaudeCode
(soporta ClaudeCode, Cursor, VSCode, Gemini, Codex, o All.)
2. Escribe la guía del agente de VibeUE para que el asistente use los patrones eficientes:
VibeUE.GenerateAgentConfig ClaudeCode
Esto escribe la guía en el archivo correcto para tu agente — CLAUDE.md (Claude Code), GEMINI.md
(Gemini), AGENTS.md (Codex / Hermes / Cursor), o .github/copilot-instructions.md (Copilot) — o pasa
All para escribir CLAUDE.md + GEMINI.md + AGENTS.md a la vez. Resuelve la ubicación del plugin
automáticamente, por lo que funciona tanto si VibeUE se instaló desde FAB o Git. La guía va en un
bloque gestionado, así que puedes volver a ejecutarla en cualquier momento para actualizarla sin perturbar tus propias notas. Pasa import para enlazar
la guía con un @import de una línea en lugar de copiarla (solo Claude Code / Gemini — otros agentes
no resuelven imports, por lo que siempre reciben una copia).
El servidor MCP es solo de loopback sin autenticación — uso solo en la misma máquina (según la documentación de Epic).
La guía enseña: descubre antes de llamar (discover_python_class), agrupa con execute_python_code,
carga habilidades vía ListSkills/GetSkills, y cuándo recurrir a deep_research / terrain_data.
🎯 Habilidades
Las habilidades son conocimiento de dominio cargado perezosamente (flujos de trabajo, trampas, formatos de propiedades) servido por el
AgentSkillToolset nativo de Unreal:
# discover (summaries only — cheap)
call_tool(tool_name="ListSkills", toolset_name="ToolsetRegistry.AgentSkillToolset")
# load the packs you need (full markdown, lazy)
call_tool(tool_name="GetSkills", toolset_name="ToolsetRegistry.AgentSkillToolset",
arguments={"skillPaths": ["/VibeUE/Python/init_unreal_PY.VibeUE_blueprints"]})
ListSkills es la fuente de verdad en vivo para lo que está disponible (lee el SKILL.md de cada paquete).
Las habilidades te dicen qué hacer y por qué; usa discover_python_class('unreal.<Name>Service', method_filter='…')
para firmas exactas antes de escribir código.
🔧 Dependencias del plugin
Prerrequisitos nativos del motor (habilítalos en el Paso 1 — el stack MCP de Epic):
| Plugin | Propósito |
|---|---|
Unreal MCP (ModelContextProtocol) | El endpoint del servidor MCP nativo |
Toolset Registry (ToolsetRegistry) | Registro nativo de toolsets de IA + AgentSkill (auto-habilitado por Unreal MCP) |
Editor Tools (EditorToolset) | Los toolsets de IA del propio motor — VibeUE los complementa |
Habilitados automáticamente por VibeUE: PythonScriptPlugin (la API unreal.*),
EditorScriptingUtilities, y los plugins de dominio que sus servicios necesitan — Niagara, MetaSound,
EnhancedInput, ModelViewViewModel, StateTree, MeshModelingToolset,
GameplayTagsEditor. (VibeUE también depende de
ToolsetRegistry + ModelContextProtocol, por lo que habilitar VibeUE los incorpora — pero aún así habilitas
Editor Tools e inicias el servidor según el Paso 1.)
🛠️ Script de compilación y lanzamiento
BuildAndLaunchGame.ps1 (raíz del proyecto o Plugins/VibeUE/) detiene el editor en ejecución, compila y
relanza:
-StrictRebuild— recompilación completa del plugin con warnings como errores-Clean— limpia intermediate/binaries primero-SkipBuild— solo relanzar
📚 La API en vivo
VibeUE mantiene intencionalmente sin catálogo estático de métodos en este README — la superficie evoluciona con el motor. Las referencias autorizadas y siempre actuales son:
ListSkills→ qué dominios existen y cuándo usarlos.discover_python_class('unreal.<Name>Service')→ firmas exactas de métodos.describe_toolset('VibeUE.<Name>Service')→ las herramientas del toolset + esquemas JSON (pesado en tokens; prefiere habilidades + descubrimiento).
Licencia
MIT — consulta LICENSE. Hogar del proyecto: https://www.vibeue.com/