/ docs / README.es.md
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.