Godot MCP Server Ultimate Edition
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GODOT_PATH | No | Path to the Godot executable. If set, the server runs with maximum performance. |
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| launch_editorC | Launch Godot editor for a specific project |
| run_projectC | Run the Godot project and capture output |
| get_debug_outputA | Get the current debug output and errors |
| stop_projectA | Stop the currently running Godot project |
| get_godot_versionA | Get the installed Godot version |
| list_projectsA | List Godot projects in a directory |
| get_project_infoC | Retrieve metadata about a Godot project |
| create_sceneC | Create a new Godot scene file |
| add_nodeB | Add a node to an existing scene |
| load_spriteC | Load a sprite into a Sprite2D node |
| export_mesh_libraryB | Export a scene as a MeshLibrary resource |
| save_sceneC | Save changes to a scene file |
| get_uidA | Get the UID for a specific file in a Godot project (for Godot 4.4+) |
| update_project_uidsB | Update UID references in a Godot project by resaving resources (for Godot 4.4+) |
| get_scene_treeA | Get a JSON representation of the node tree in a scene |
| set_node_propertiesC | Set properties of a node in a scene |
| attach_script_to_nodeC | Attach a Godot script to a node in a scene |
| remove_nodeC | Remove a node from a scene |
| connect_signalB | Connect a signal from one node to a method on another node in a scene |
| get_node_propertiesB | Get all editable properties of a specific node in a scene (returns JSON) |
| get_node_signalsC | List all available signals on a node and current connections |
| rename_nodeC | Rename a node in a scene |
| duplicate_nodeC | Duplicate a node (and its children) within a scene |
| move_nodeC | Move (reparent) a node to a different parent in a scene |
| add_collision_shapeA | Add a collision shape to a physics body (auto-detects 2D/3D). Shapes: rectangle/circle/capsule (2D) or box/sphere/capsule/cylinder (3D) |
| create_animationC | Create an AnimationPlayer with animations on a node |
| validate_sceneB | Validate a scene for common errors (missing collisions, empty shapes, missing textures, etc.) |
| batch_add_nodesC | Add multiple nodes to a scene in a single operation |
| get_class_infoA | Get detailed info about any Godot class (properties, methods, signals, constants) |
| create_scriptB | Create a new GDScript (.gd) file with content |
| read_scriptA | Read the contents of a GDScript or any text file in a project |
| update_scriptC | Update/overwrite the contents of an existing script file |
| list_scene_filesC | List all scene files (.tscn) in a Godot project |
| list_script_filesC | List all script files (.gd) in a Godot project |
| list_resourcesA | List all resource files in a Godot project (images, audio, fonts, shaders, etc.) |
| get_project_settingsC | Read the project.godot settings file and return key settings |
| set_project_settingC | Set a value in the project.godot configuration file |
| create_input_actionC | Add an input action to the project.godot input map |
| create_autoloadC | Register a script as an autoload/singleton in project.godot |
| create_shaderC | Create a Godot shader file (.gdshader) with content |
| instance_sceneB | Instance a scene (.tscn) as a child node inside another scene. This is THE #1 pattern in Godot — create Player.tscn, Enemy.tscn separately, then instance them inside Level.tscn. |
| create_projectB | Create a new Godot project from scratch by generating the project.godot file |
| set_main_sceneA | Set the main scene that runs when pressing Play in Godot. Without this the game does not start. |
| add_to_groupA | Add a node to a group. Groups are essential for get_tree().get_nodes_in_group("enemies") pattern. |
| delete_fileA | Delete a file from a Godot project (scripts, scenes, resources, etc.) |
| set_collision_layer_maskA | Set collision layer and mask on a physics body or area. Controls which physics layers interact. |
| create_timerB | Create a Timer node with configuration (cooldowns, spawns, delays, etc.) |
| inspect_model_boundsA | Inspect a 3D model (.glb/.gltf/.tscn) to get its bounding box dimensions. Returns min, max, center, and size vectors. Essential for positioning models correctly. |
| batch_instance_sceneA | Instance a scene multiple times with different transforms in a single operation. Much more efficient than calling instance_scene repeatedly. |
| create_audio_playerB | Create an AudioStreamPlayer or AudioStreamPlayer3D node with optional audio file and configuration. |
| create_particlesB | Create a GPUParticles3D node with a preset configuration (smoke, fire, snow, rain, sparks, dust). |
| create_ui_elementB | Create a UI control node (Label, Panel, Button, ProgressBar, TextureRect) with configuration. |
| create_lightB | Create a light node (DirectionalLight3D, SpotLight3D, OmniLight3D) with configuration. |
| create_environmentB | Create a WorldEnvironment node with sky, ambient light, fog and other environment settings. |
| analyze_scriptA | Analyze a GDScript file to extract its class structure (extends, functions, variables, signals, enums). |
| search_symbolB | Perform a project-wide search for a symbol or text in all GDScript files. |
| bulk_set_propertiesA | Modify properties across multiple nodes in a scene based on type or name pattern matches. |
| validate_scriptB | Check a GDScript file for syntax errors by attempting to load it in Godot. |
| validate_script_deepA | [OPTION A] Deep GDScript validation using Godot's real compiler (headless). Detects syntax errors, type mismatches, missing class references, and semantic issues that surface at parse/compile time. More thorough than validate_script. Returns structured JSON with error details including file, line number, and error message. |
| project_health_checkA | [OPTION C] Run a comprehensive diagnostic check on a Godot project. Detects: broken scenes (cannot load), broken scripts, broken resources (.tres/.res), physics bodies without CollisionShape children, orphan .uid files (Godot 4.4+), and missing assets. Returns structured JSON with errors, warnings, and project stats. Essential before shipping or after large refactors. |
| backup_sceneA | [OPTION B - Part 1] Create a timestamped backup of a scene file (.tscn) BEFORE making edits. Stores backups in /.scene_backups/. Always call this before using batch_add_nodes, set_node_properties, or any destructive scene mutations. Returns the backup file path to use with restore_scene_backup if needed. |
| restore_scene_backupA | [OPTION B - Part 2] Restore a scene (.tscn) from a previously created backup. Use this as a rollback if a scene mutation went wrong. Provide the backupPath returned by backup_scene, or leave empty to restore the most recent backup for that scene. |
| list_scene_backupsA | List all available backups for a scene file, ordered by most recent first. Use this to review available restore points before calling restore_scene_backup. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Dex865378/Dex865378-MCP-GODOT-63-HERRAMIENTAS'
If you have feedback or need assistance with the MCP directory API, please join our Discord server