README.es.md
1 > **Language:** [English](../README.md) | [日本語](README.ja.md) | [Português (BR)](README.pt-br.md) | Español | [Русский](README.ru.md) | [简体中文](README.zh.md) | [हिन्दी](README.hi.md) 2 3 # Godot MCP Pro 4 5 Servidor MCP (Model Context Protocol) premium para desarrollo de juegos con Godot potenciado por IA. Conecta asistentes de IA como Claude directamente a tu editor de Godot con **163 herramientas poderosas**. 6 7 ## Arquitectura 8 9 ``` 10 AI Assistant ←—stdio/MCP—→ Node.js Server ←—WebSocket:6505—→ Godot Editor Plugin 11 ``` 12 13 - **Tiempo real**: La conexión WebSocket ofrece retroalimentación instantánea, sin polling de archivos 14 - **Integración con el editor**: Acceso completo a la API del editor de Godot, sistema UndoRedo y árbol de escenas 15 - **JSON-RPC 2.0**: Protocolo estándar con códigos de error y sugerencias adecuados 16 17 ## Inicio Rápido 18 19 ### 1. Instalar el Plugin de Godot 20 21 Copia la carpeta `addons/godot_mcp/` al directorio `addons/` de tu proyecto de Godot. 22 23 Activa el plugin: **Proyecto → Configuración del Proyecto → Plugins → Godot MCP Pro → Activar** 24 25 ### 2. Instalar el Servidor MCP 26 27 > **Nota**: El directorio `server/` solo se incluye en el **paquete completo** (de pago). 28 > Este repositorio de GitHub contiene solo el **addon (plugin)**. 29 > Adquiere el paquete completo en [godot-mcp.abyo.net](https://godot-mcp.abyo.net/) para obtener el servidor. 30 31 ```bash 32 cd server 33 npm install 34 npm run build 35 ``` 36 37 ### 3. Configurar Claude Code 38 39 Agrega a tu `.mcp.json`: 40 41 ```json 42 { 43 "mcpServers": { 44 "godot-mcp-pro": { 45 "command": "node", 46 "args": ["D:/dev/godot-mcp-pro/server/build/index.js"], 47 "env": { 48 "GODOT_MCP_PORT": "6505" 49 } 50 } 51 } 52 } 53 ``` 54 55 ### 4. Auto-Aprobación de Permisos de Herramientas (Recomendado) 56 57 Claude Code pide permiso cada vez que se llama a una herramienta. Para omitir estos prompts, copia uno de los presets de permisos incluidos a la configuración de Claude Code: 58 59 **Opción A: Conservadora** (predeterminada — bloquea herramientas destructivas) 60 61 ```bash 62 cp settings.local.json ~/.claude/settings.local.json 63 ``` 64 65 Permite 152 de 163 herramientas automáticamente. Las siguientes 11 herramientas seguirán requiriendo aprobación manual: 66 67 | Herramienta Bloqueada | Razón | 68 |---|---| 69 | `delete_node` | Elimina un nodo de la escena | 70 | `delete_scene` | Elimina un archivo de escena del disco | 71 | `remove_animation` | Elimina una animación | 72 | `remove_autoload` | Elimina un singleton autoload | 73 | `remove_state_machine_state` | Elimina un estado de la state machine | 74 | `remove_state_machine_transition` | Elimina una transición de la state machine | 75 | `execute_editor_script` | Ejecuta código arbitrario en el editor | 76 | `execute_game_script` | Ejecuta código arbitrario en el juego en ejecución | 77 | `export_project` | Inicia una exportación del proyecto | 78 | `tilemap_clear` | Limpia todas las celdas de un TileMapLayer | 79 80 **Opción B: Permisiva** (permite todo, deniega comandos peligrosos) 81 82 ```bash 83 cp settings.local.permissive.json ~/.claude/settings.local.json 84 ``` 85 86 Permite las 163 herramientas y todos los comandos Bash. Deniega explícitamente comandos shell destructivos (`rm -rf`, `git push --force`, `git reset --hard`, etc.) y las mismas herramientas MCP destructivas listadas arriba. 87 88 > **Nota**: Si ya tienes un `settings.local.json`, fusiona la sección `permissions` manualmente en lugar de sobrescribir. 89 90 ### 5. Modo Lite (Opcional) 91 92 Si tu cliente MCP tiene un límite de herramientas (ej: Windsurf: 100, Cursor: ~40), usa el modo Lite que registra 76 herramientas principales en lugar de 162: 93 94 ```json 95 { 96 "mcpServers": { 97 "godot-mcp-pro": { 98 "command": "node", 99 "args": ["D:/dev/godot-mcp-pro/server/build/index.js", "--lite"] 100 } 101 } 102 } 103 ``` 104 105 El modo Lite incluye: herramientas de project, scene, node, script, editor, input, runtime e input_map. 106 107 ### 6. Cómo Usar 108 109 Abre tu proyecto de Godot con el plugin activado y usa Claude Code para interactuar con el editor. 110 111 ## Las 162 Herramientas 112 113 ### Herramientas de Proyecto (7) 114 | Herramienta | Descripción | 115 |------|-------------| 116 | `get_project_info` | Metadatos del proyecto, versión, viewport, autoloads | 117 | `get_filesystem_tree` | Árbol de archivos recursivo con filtrado | 118 | `search_files` | Búsqueda de archivos fuzzy/glob | 119 | `get_project_settings` | Leer configuraciones de project.godot | 120 | `set_project_setting` | Establecer configuraciones vía API del editor | 121 | `uid_to_project_path` | Conversión UID → res:// | 122 | `project_path_to_uid` | Conversión res:// → UID | 123 124 ### Herramientas de Escena (9) 125 | Herramienta | Descripción | 126 |------|-------------| 127 | `get_scene_tree` | Árbol de escena en vivo con jerarquía | 128 | `get_scene_file_content` | Contenido bruto del archivo .tscn | 129 | `create_scene` | Crear nuevos archivos de escena | 130 | `open_scene` | Abrir escena en el editor | 131 | `delete_scene` | Eliminar archivo de escena | 132 | `add_scene_instance` | Instanciar escena como nodo hijo | 133 | `play_scene` | Ejecutar escena (principal/actual/personalizada) | 134 | `stop_scene` | Detener escena en ejecución | 135 | `save_scene` | Guardar escena actual en disco | 136 137 ### Herramientas de Nodo (14) 138 | Herramienta | Descripción | 139 |------|-------------| 140 | `add_node` | Agregar nodo con tipo y propiedades | 141 | `delete_node` | Eliminar nodo (con soporte de undo) | 142 | `duplicate_node` | Duplicar nodo e hijos | 143 | `move_node` | Mover/reparentar nodo | 144 | `update_property` | Establecer cualquier propiedad (parseo automático de tipos) | 145 | `get_node_properties` | Obtener todas las propiedades del nodo | 146 | `add_resource` | Agregar Shape/Material/etc al nodo | 147 | `set_anchor_preset` | Establecer preset de ancla del Control | 148 | `rename_node` | Renombrar un nodo en la escena | 149 | `connect_signal` | Conectar señal entre nodos | 150 | `disconnect_signal` | Desconectar conexión de señal | 151 | `get_node_groups` | Obtener grupos a los que pertenece el nodo | 152 | `set_node_groups` | Establecer membresía de grupo del nodo | 153 | `find_nodes_in_group` | Encontrar todos los nodos en un grupo | 154 155 ### Herramientas de Script (8) 156 | Herramienta | Descripción | 157 |------|-------------| 158 | `list_scripts` | Listar todos los scripts con info de clase | 159 | `read_script` | Leer contenido del script | 160 | `create_script` | Crear nuevo script con plantilla | 161 | `edit_script` | Buscar/reemplazar o edición completa | 162 | `attach_script` | Adjuntar script al nodo | 163 | `get_open_scripts` | Listar scripts abiertos en el editor | 164 | `validate_script` | Validar sintaxis GDScript | 165 | `search_in_files` | Buscar contenido en archivos del proyecto | 166 167 ### Herramientas del Editor (9) 168 | Herramienta | Descripción | 169 |------|-------------| 170 | `get_editor_errors` | Obtener errores y stack traces | 171 | `get_editor_screenshot` | Capturar viewport del editor | 172 | `get_game_screenshot` | Capturar juego en ejecución | 173 | `execute_editor_script` | Ejecutar GDScript arbitrario en el editor | 174 | `clear_output` | Limpiar panel de salida | 175 | `get_signals` | Obtener todas las señales de un nodo con conexiones | 176 | `reload_plugin` | Recargar el plugin MCP (reconexión automática) | 177 | `reload_project` | Reescanear sistema de archivos y recargar scripts | 178 | `get_output_log` | Obtener contenido del panel de salida | 179 180 ### Herramientas de Entrada (7) 181 | Herramienta | Descripción | 182 |------|-------------| 183 | `simulate_key` | Simular presión/liberación de tecla | 184 | `simulate_mouse_click` | Simular clic del mouse en posición | 185 | `simulate_mouse_move` | Simular movimiento del mouse | 186 | `simulate_action` | Simular Godot Input Action | 187 | `simulate_sequence` | Secuencia de eventos de entrada con retrasos de frames | 188 | `get_input_actions` | Listar todas las acciones de entrada | 189 | `set_input_action` | Crear/modificar acción de entrada | 190 191 ### Herramientas de Runtime (19) 192 | Herramienta | Descripción | 193 |------|-------------| 194 | `get_game_scene_tree` | Árbol de escena del juego en ejecución | 195 | `get_game_node_properties` | Propiedades del nodo en el juego en ejecución | 196 | `set_game_node_property` | Establecer propiedad del nodo en el juego en ejecución | 197 | `execute_game_script` | Ejecutar GDScript en contexto del juego | 198 | `capture_frames` | Captura de screenshots multi-frame | 199 | `monitor_properties` | Registrar valores de propiedades a lo largo del tiempo | 200 | `start_recording` | Iniciar grabación de entrada | 201 | `stop_recording` | Detener grabación de entrada | 202 | `replay_recording` | Reproducir entrada grabada | 203 | `find_nodes_by_script` | Encontrar nodos del juego por script | 204 | `get_autoload` | Obtener propiedades del nodo autoload | 205 | `batch_get_properties` | Obtener propiedades de múltiples nodos en lote | 206 | `find_ui_elements` | Encontrar elementos de UI en el juego | 207 | `click_button_by_text` | Hacer clic en botón por texto | 208 | `wait_for_node` | Esperar a que aparezca un nodo | 209 | `find_nearby_nodes` | Encontrar nodos cercanos a una posición | 210 | `navigate_to` | Navegar a posición objetivo | 211 | `move_to` | Mover personaje hasta el objetivo | 212 213 ### Herramientas de Animación (6) 214 | Herramienta | Descripción | 215 |------|-------------| 216 | `list_animations` | Listar todas las animaciones en AnimationPlayer | 217 | `create_animation` | Crear nueva animación | 218 | `add_animation_track` | Agregar track (value/position/rotation/method/bezier) | 219 | `set_animation_keyframe` | Insertar keyframe en track | 220 | `get_animation_info` | Info detallada de animación con todas las tracks/keys | 221 | `remove_animation` | Eliminar una animación | 222 223 ### Herramientas de TileMap (6) 224 | Herramienta | Descripción | 225 |------|-------------| 226 | `tilemap_set_cell` | Establecer una celda de tile | 227 | `tilemap_fill_rect` | Rellenar región rectangular con tiles | 228 | `tilemap_get_cell` | Obtener datos del tile en la celda | 229 | `tilemap_clear` | Limpiar todas las celdas | 230 | `tilemap_get_info` | Info del TileMapLayer y fuentes del tile set | 231 | `tilemap_get_used_cells` | Lista de celdas usadas | 232 233 ### Herramientas de Tema & UI (6) 234 | Herramienta | Descripción | 235 |------|-------------| 236 | `create_theme` | Crear archivo de recurso Theme | 237 | `set_theme_color` | Establecer override de color del tema | 238 | `set_theme_constant` | Establecer override de constante del tema | 239 | `set_theme_font_size` | Establecer override de tamaño de fuente del tema | 240 | `set_theme_stylebox` | Establecer override de StyleBoxFlat | 241 | `get_theme_info` | Obtener info de overrides del tema | 242 243 ### Herramientas de Profiling (2) 244 | Herramienta | Descripción | 245 |------|-------------| 246 | `get_performance_monitors` | Todos los monitores de rendimiento (FPS, memoria, física, etc.) | 247 | `get_editor_performance` | Resumen rápido de rendimiento | 248 249 ### Herramientas de Batch & Refactorización (8) 250 | Herramienta | Descripción | 251 |------|-------------| 252 | `find_nodes_by_type` | Encontrar todos los nodos de un tipo | 253 | `find_signal_connections` | Encontrar todas las conexiones de señal en la escena | 254 | `batch_set_property` | Establecer propiedad en todos los nodos de un tipo | 255 | `find_node_references` | Buscar patrón en archivos del proyecto | 256 | `get_scene_dependencies` | Obtener dependencias de recursos | 257 | `cross_scene_set_property` | Establecer propiedad en todas las escenas | 258 | `find_script_references` | Encontrar dónde se usa un script/recurso | 259 | `detect_circular_dependencies` | Encontrar dependencias circulares de escenas | 260 261 ### Herramientas de Shader (6) 262 | Herramienta | Descripción | 263 |------|-------------| 264 | `create_shader` | Crear shader con plantilla | 265 | `read_shader` | Leer archivo de shader | 266 | `edit_shader` | Editar shader (reemplazar/buscar-reemplazar) | 267 | `assign_shader_material` | Asignar ShaderMaterial al nodo | 268 | `set_shader_param` | Establecer parámetro del shader | 269 | `get_shader_params` | Obtener todos los parámetros del shader | 270 271 ### Herramientas de Exportación (3) 272 | Herramienta | Descripción | 273 |------|-------------| 274 | `list_export_presets` | Listar presets de exportación | 275 | `export_project` | Obtener comando de exportación para preset | 276 | `get_export_info` | Info del proyecto relacionada a exportación | 277 278 ### Herramientas de Recurso (6) 279 | Herramienta | Descripción | 280 |------|-------------| 281 | `read_resource` | Leer propiedades de recurso .tres | 282 | `edit_resource` | Editar propiedades de recurso | 283 | `create_resource` | Crear nuevo recurso .tres | 284 | `get_resource_preview` | Obtener miniatura del recurso | 285 | `add_autoload` | Registrar singleton autoload | 286 | `remove_autoload` | Eliminar singleton autoload | 287 288 ### Herramientas de Física (6) 289 | Herramienta | Descripción | 290 |------|-------------| 291 | `setup_physics_body` | Configurar propiedades del cuerpo físico | 292 | `setup_collision` | Agregar formas de colisión a nodos | 293 | `set_physics_layers` | Establecer capa/máscara de colisión | 294 | `get_physics_layers` | Obtener info de capa/máscara de colisión | 295 | `get_collision_info` | Obtener detalles de forma de colisión | 296 | `add_raycast` | Agregar nodo RayCast2D/3D | 297 298 ### Herramientas de Escena 3D (6) 299 | Herramienta | Descripción | 300 |------|-------------| 301 | `add_mesh_instance` | Agregar MeshInstance3D con mesh primitiva | 302 | `setup_camera_3d` | Configurar propiedades de Camera3D | 303 | `setup_lighting` | Agregar/configurar nodos de luz | 304 | `setup_environment` | Configurar WorldEnvironment | 305 | `add_gridmap` | Configurar nodo GridMap | 306 | `set_material_3d` | Establecer propiedades de StandardMaterial3D | 307 308 ### Herramientas de Partículas (5) 309 | Herramienta | Descripción | 310 |------|-------------| 311 | `create_particles` | Crear GPUParticles2D/3D | 312 | `set_particle_material` | Configurar ParticleProcessMaterial | 313 | `set_particle_color_gradient` | Establecer gradiente de color para partículas | 314 | `apply_particle_preset` | Aplicar preset (fire, smoke, sparks, etc.) | 315 | `get_particle_info` | Obtener detalles del sistema de partículas | 316 317 ### Herramientas de Navegación (6) 318 | Herramienta | Descripción | 319 |------|-------------| 320 | `setup_navigation_region` | Configurar NavigationRegion | 321 | `setup_navigation_agent` | Configurar NavigationAgent | 322 | `bake_navigation_mesh` | Hornear mesh de navegación | 323 | `set_navigation_layers` | Establecer capas de navegación | 324 | `get_navigation_info` | Obtener info de configuración de navegación | 325 326 ### Herramientas de Audio (6) 327 | Herramienta | Descripción | 328 |------|-------------| 329 | `add_audio_player` | Agregar nodo AudioStreamPlayer | 330 | `add_audio_bus` | Agregar bus de audio | 331 | `add_audio_bus_effect` | Agregar efecto al bus de audio | 332 | `set_audio_bus` | Configurar propiedades del bus de audio | 333 | `get_audio_bus_layout` | Obtener info del layout de bus de audio | 334 | `get_audio_info` | Obtener info de nodos relacionados a audio | 335 336 ### Herramientas de AnimationTree (4) 337 | Herramienta | Descripción | 338 |------|-------------| 339 | `create_animation_tree` | Crear AnimationTree | 340 | `get_animation_tree_structure` | Obtener estructura del árbol | 341 | `set_tree_parameter` | Establecer parámetro de AnimationTree | 342 | `add_state_machine_state` | Agregar estado a la state machine | 343 344 ### Herramientas de State Machine (3) 345 | Herramienta | Descripción | 346 |------|-------------| 347 | `remove_state_machine_state` | Eliminar estado de la state machine | 348 | `add_state_machine_transition` | Agregar transición entre estados | 349 | `remove_state_machine_transition` | Eliminar transición de estado | 350 351 ### Herramientas de Blend Tree (1) 352 | Herramienta | Descripción | 353 |------|-------------| 354 | `set_blend_tree_node` | Configurar nodos del blend tree | 355 356 ### Herramientas de Análisis & Búsqueda (4) 357 | Herramienta | Descripción | 358 |------|-------------| 359 | `analyze_scene_complexity` | Analizar rendimiento de la escena | 360 | `analyze_signal_flow` | Mapear conexiones de señales | 361 | `find_unused_resources` | Encontrar recursos no referenciados | 362 | `get_project_statistics` | Obtener estadísticas del proyecto | 363 364 ### Herramientas de Testing & QA (6) 365 | Herramienta | Descripción | 366 |------|-------------| 367 | `run_test_scenario` | Ejecutar escenario de prueba automatizado | 368 | `assert_node_state` | Verificar valores de propiedad del nodo | 369 | `assert_screen_text` | Verificar texto en pantalla | 370 | `compare_screenshots` | Comparar dos screenshots | 371 | `run_stress_test` | Ejecutar prueba de estrés de rendimiento | 372 | `get_test_report` | Obtener reporte de resultados de prueba | 373 374 ## Características Principales 375 376 - **Integración UndoRedo**: Todas las operaciones de nodo/propiedad soportan Ctrl+Z 377 - **Parseo Inteligente de Tipos**: `"Vector2(100, 200)"`, `"#ff0000"`, `"Color(1,0,0)"` se convierten automáticamente 378 - **Reconexión Automática**: Reconexión con backoff exponencial (1s → 2s → 4s ... → 60s máx) 379 - **Heartbeat**: Ping/pong cada 10s mantiene la conexión activa 380 - **Errores Útiles**: Las respuestas de error incluyen sugerencias para los próximos pasos 381 382 ## Comparación con Competidores 383 384 ### Cantidad de Herramientas 385 386 | Categoría | Godot MCP Pro | GDAI MCP ($19) | tomyud1 (free) | Dokujaa (free) | Coding-Solo (free) | ee0pdt (free) | bradypp (free) | 387 |----------|:---:|:---:|:---:|:---:|:---:|:---:|:---:| 388 | Project | 7 | 5 | 4 | 0 | 2 | 2 | 2 | 389 | Scene | 9 | 8 | 11 | 9 | 3 | 4 | 5 | 390 | Node | **14** | 8 | 0 | 8 | 2 | 3 | 0 | 391 | Script | **8** | 5 | 6 | 4 | 0 | 5 | 0 | 392 | Editor | **9** | 5 | 1 | 5 | 1 | 3 | 2 | 393 | Input | **7** | 2 | 0 | 0 | 0 | 0 | 0 | 394 | Runtime | **19** | 0 | 0 | 0 | 0 | 0 | 0 | 395 | Animation | **6** | 0 | 0 | 0 | 0 | 0 | 0 | 396 | TileMap | **6** | 0 | 0 | 0 | 0 | 0 | 0 | 397 | Theme/UI | **6** | 0 | 0 | 0 | 0 | 0 | 0 | 398 | Profiling | **2** | 0 | 0 | 0 | 0 | 0 | 0 | 399 | Batch/Refactor | **8** | 0 | 0 | 0 | 0 | 0 | 0 | 400 | Shader | **6** | 0 | 0 | 0 | 0 | 0 | 0 | 401 | Export | **3** | 0 | 0 | 0 | 0 | 0 | 0 | 402 | Resource | **6** | 0 | 0 | 0 | 0 | 0 | 0 | 403 | Physics | **6** | 0 | 0 | 0 | 0 | 0 | 0 | 404 | 3D Scene | **6** | 0 | 0 | 0 | 0 | 0 | 0 | 405 | Particle | **5** | 0 | 0 | 0 | 0 | 0 | 0 | 406 | Navigation | **6** | 0 | 0 | 0 | 0 | 0 | 0 | 407 | Audio | **6** | 0 | 0 | 0 | 0 | 0 | 0 | 408 | AnimationTree | **4** | 0 | 0 | 0 | 0 | 0 | 0 | 409 | State Machine | **3** | 0 | 0 | 0 | 0 | 0 | 0 | 410 | Blend Tree | **1** | 0 | 0 | 0 | 0 | 0 | 0 | 411 | Analysis | **4** | 0 | 0 | 0 | 0 | 0 | 0 | 412 | Testing/QA | **6** | 0 | 0 | 0 | 0 | 0 | 0 | 413 | Asset/AI | 0 | 0 | 1 | 6 | 0 | 0 | 0 | 414 | Material | 0 | 0 | 0 | 2 | 0 | 0 | 0 | 415 | Other | 0 | 0 | 9 | 5 | 5 | 2 | 1 | 416 | **Total** | **162** | ~30 | **32** | **39** | **13** | **19** | **10** | 417 418 ### Matriz de Funcionalidades 419 420 | Funcionalidad | Godot MCP Pro | GDAI MCP ($19) | tomyud1 (free) | Dokujaa (free) | Coding-Solo (free) | 421 |---------|:---:|:---:|:---:|:---:|:---:| 422 | **Conexión** | WebSocket (tiempo real) | stdio (Python) | WebSocket | TCP Socket | Headless CLI | 423 | **Undo/Redo** | Sí | Sí | No | No | No | 424 | **JSON-RPC 2.0** | Sí | Personalizado | Personalizado | Personalizado | N/A | 425 | **Reconexión automática** | Sí (backoff exponencial) | N/A | No | No | N/A | 426 | **Heartbeat** | Sí (ping/pong 10s) | No | No | No | No | 427 | **Sugerencias de error** | Sí (pistas contextuales) | No | No | No | No | 428 | **Captura de pantalla** | Sí (editor + juego) | Sí | No | No | No | 429 | **Simulación de entrada** | Sí (tecla/mouse/acción/secuencia) | Sí (básico) | No | No | No | 430 | **Inspección en runtime** | Sí (árbol de escena + propiedades + monitor) | No | No | No | No | 431 | **Gestión de señales** | Sí (conectar/desconectar/inspeccionar) | No | No | No | No | 432 | **Visualizador en navegador** | No | No | Sí | No | No | 433 | **Generación de mesh 3D por IA** | No | No | No | Sí (Meshy API) | No | 434 435 ### Categorías Exclusivas (Ningún Competidor las Tiene) 436 437 | Categoría | Herramientas | Por Qué Importa | 438 |----------|-------|----------------| 439 | **Animation** | 6 herramientas | Crear animaciones, agregar tracks, establecer keyframes — todo programáticamente | 440 | **TileMap** | 6 herramientas | Establecer celdas, rellenar rectángulos, consultar datos de tiles — esencial para diseño de niveles 2D | 441 | **Theme/UI** | 6 herramientas | StyleBox, colores, fuentes — construir temas de UI sin trabajo manual en el editor | 442 | **Profiling** | 2 herramientas | FPS, memoria, draw calls, física — monitoreo de rendimiento | 443 | **Batch/Refactor** | 8 herramientas | Buscar por tipo, cambios de propiedad en lote, actualizaciones entre escenas, análisis de dependencias | 444 | **Shader** | 6 herramientas | Crear/editar shaders, asignar materiales, establecer parámetros | 445 | **Export** | 3 herramientas | Listar presets, obtener comandos de exportación, verificar plantillas | 446 | **Physics** | 6 herramientas | Configurar formas de colisión, cuerpos, raycasts y gestión de capas | 447 | **3D Scene** | 6 herramientas | Agregar meshes, cámaras, luces, ambiente, soporte GridMap | 448 | **Particle** | 5 herramientas | Crear partículas con materiales personalizados, presets y gradientes | 449 | **Navigation** | 6 herramientas | Configurar regiones de navegación, agentes, pathfinding, baking | 450 | **Audio** | 6 herramientas | Sistema completo de bus de audio, efectos, reproductores, gestión en vivo | 451 | **AnimationTree** | 4 herramientas | Construir state machines con transiciones y blend trees | 452 | **State Machine** | 3 herramientas | Gestión avanzada de state machine para animaciones complejas | 453 | **Testing/QA** | 6 herramientas | Pruebas automatizadas, assertions, pruebas de estrés, comparación de screenshots | 454 | **Runtime** | 19 herramientas | Inspeccionar y controlar el juego en tiempo de ejecución: inspeccionar, grabar, reproducir, navegar | 455 456 ### Ventajas de Arquitectura 457 458 | Aspecto | Godot MCP Pro | Competidor Típico | 459 |--------|--------------|-------------------| 460 | **Protocolo** | JSON-RPC 2.0 (estándar, extensible) | JSON personalizado o basado en CLI | 461 | **Conexión** | WebSocket persistente con heartbeat | Subproceso por comando o TCP sin procesar | 462 | **Confiabilidad** | Reconexión automática con backoff exponencial (1s→60s) | Reconexión manual requerida | 463 | **Seguridad de tipos** | Parseo inteligente de tipos (Vector2, Color, Rect2, colores hex) | Solo strings o tipos limitados | 464 | **Manejo de errores** | Errores estructurados con códigos + sugerencias | Mensajes de error genéricos | 465 | **Soporte de Undo** | Todas las mutaciones pasan por el sistema UndoRedo | Modificaciones directas (sin undo) | 466 | **Gestión de puertos** | Auto-escaneo de puertos 6505-6509 | Puerto fijo, posibles conflictos | 467 468 ## Licencia 469 470 Propietario — consulta [LICENSE](../LICENSE) para más detalles. La compra incluye actualizaciones de por vida para v1.x.