godot-mcp-pilot
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DEBUG | No | If 'true', prints debug information to stderr. | false |
| GODOT_PATH | No | Absolute path to the Godot executable. If not set, auto-detection is attempted for common locations on macOS, Linux, and Windows. | |
| READ_ONLY_MODE | No | If 'true', disables all modifying tools (safe for CI/review). | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_godot_versionA | Get the installed Godot engine version and platform information. |
| list_projectsC | Find Godot projects (project.godot files) under a directory. |
| get_project_infoB | Get metadata about a Godot project: name, version, scene/script/asset counts. |
| launch_editorA | Open the Godot editor for a project. Non-blocking — returns immediately. |
| run_projectA | Run a Godot project in debug mode (background). Optionally run a specific scene. Use get_debug_output to retrieve console logs after starting. |
| stop_projectA | Stop the currently running Godot project. |
| get_debug_outputB | Get console output (stdout/stderr) from the running or last run project. |
| run_gdscriptA | Run a GDScript snippet headlessly inside a project and return the output. The script body is wrapped in a SceneTree subclass automatically — just write the statements to execute (e.g. print("hello")). Great for quick tests and calculations that need Godot's built-in types. |
| list_project_scenesC | List all .tscn scene files in a project. |
| read_sceneB | Read a scene file — returns raw .tscn text and a structured node list. |
| create_sceneB | Create a new .tscn scene file with a specified root node type. |
| save_sceneC | Save a scene (re-writes it to disk, optionally to a new path). |
| add_nodeC | Add a new node to an existing scene. |
| edit_nodeC | Modify properties of an existing node in a scene. |
| remove_nodeB | Remove a node (and all its children) from a scene. |
| duplicate_nodeA | Duplicate a node (and its children) within the same scene, giving it a new name. The duplicate is placed under the same parent as the original. |
| move_nodeA | Move (re-parent) a node to a different parent within the same scene. All descendant parent paths are updated automatically. |
| set_scene_scriptA | Attach a GDScript to a node in a scene, or detach the current script. Automatically adds the ext_resource entry to the .tscn file. |
| instantiate_sceneB | Instantiate a packed scene (sub-scene) as a child node inside another scene. Adds the ext_resource entry automatically. |
| load_spriteC | Load a texture resource into a Sprite2D (or TextureRect) node. |
| list_project_scriptsB | List all GDScript (.gd) files in a project. |
| read_scriptB | Read the source code of a GDScript file. |
| modify_scriptC | Overwrite a GDScript file with new content. |
| create_scriptB | Create a new GDScript file. Use the template param to pick a starter template: 'CharacterBody2D', 'CharacterBody3D', 'Singleton', or provide custom content. |
| analyze_scriptB | Perform basic static analysis on a GDScript file — finds common errors and Godot 4 migration issues. |
| list_script_functionsA | Parse a GDScript file and return all functions, signals, and top-level variables with their names, parameters, return types, and line numbers. |
| add_script_functionA | Append a new function to a GDScript file. Fails if the function already exists. |
| remove_script_functionC | Remove a function and its entire body from a GDScript file. |
| add_signalC | Add a signal declaration to a GDScript file. Inserted after existing signals. |
| add_variableB | Add a top-level variable or property declaration to a GDScript file. |
| get_uidB | Get the Godot 4 unique ID (uid://) for a resource file. |
| update_project_uidsA | Re-import all project assets to refresh Godot 4 UIDs. Runs Godot headlessly. Use after adding or moving resource files. |
| list_assetsB | List all asset files in a project (textures, audio, meshes, fonts, shaders, etc.). Optionally filter by type. |
| get_asset_infoB | Get detailed metadata about a specific asset: type, size, UID, and import settings. |
| get_project_settingsA | Read the project.godot configuration. Optionally filter to a specific section (e.g. "application", "display", "input", "autoload", "rendering"). |
| set_project_settingA | Write a setting to project.godot. The value must be a valid Godot config value string. For strings, wrap in double quotes: e.g. value='"res://scene.tscn"'. For booleans/numbers use: 'true', '42'. Creates the section if it doesn't exist. |
| get_main_sceneB | Get the project's configured main (startup) scene path. |
| set_main_sceneC | Set the project's main (startup) scene. |
| list_autoloadsB | List all autoload (singleton) entries configured in the project. |
| add_autoloadB | Add or update an autoload (singleton) in the project settings. The script will be instantiated automatically when the project starts. |
| remove_autoloadC | Remove an autoload singleton from the project settings. |
| list_input_actionsB | List all custom input actions defined in the project (Project > Project Settings > Input Map). |
| add_input_actionB | Add a new input action to the project's Input Map (with no events bound). Use the Godot editor or set_project_setting to bind keys to it. |
| remove_input_actionC | Remove an input action from the project's Input Map. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 44 tools
Every tool has a clearly distinct purpose with no ambiguity. Tools are well-organized into categories like project management, scene editing, script manipulation, and asset handling, making it easy for an agent to select the correct tool for each task without confusion.
All tool names follow a consistent verb_noun pattern with snake_case throughout, such as 'add_autoload', 'create_scene', and 'get_project_info'. This predictability enhances readability and usability for agents.
With 44 tools, the count is borderline high for the Godot domain, which could feel heavy and overwhelming. While the tools cover many aspects comprehensively, the large number may increase complexity for agents in navigation and selection.
The tool set provides complete CRUD/lifecycle coverage for Godot project management, including project setup, scene and script editing, asset handling, and runtime operations. There are no obvious gaps, ensuring agents can handle all core workflows without dead ends.