Godot Agent Loop
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DEBUG | No | Set to 'true' for detailed server-side logging. This also runs the headless operations script with --debug-godot, which logs diagnostics and writes a temporary write-access probe file into the project (removed again on every branch). | false |
| GODOT_PATH | No | Path to the Godot executable (overrides auto-detection) | |
| GODOT_MCP_ALLOWED_DIRS | No | Optional. Restrict run_project to projects under these roots (;, ,, or : separated). When unset, any project path is allowed. | |
| GODOT_MCP_TOOL_SURFACE | No | Optional, default core. Set to full to advertise the complete static tool catalog instead of the compact core plus godot_tools discovery/dispatch. | core |
| GODOT_MCP_RUNTIME_SECRET | No | Optional explicit shared runtime secret. The MCP server generates a fresh 256-bit value when omitted and passes it only to Godot processes it launches. | |
| GODOT_MCP_PRIVILEGED_GROUPS | No | Optional comma-separated least-privilege grants: reflection, code-execution, and/or network. All are denied by default. | |
| GODOT_MCP_EDITOR_START_PAUSED | No | Optional, default false. Start the editor addon's cooperative lock in human-editing mode so mutating MCP tools are refused until Resume Agent is pressed. | false |
| GODOT_MCP_ALLOW_PRIVILEGED_COMMANDS | No | Optional, default false. Explicitly enable runtime eval, arbitrary property/method access, script control, RPC, HTTP, and WebSocket commands for a trusted localhost developer workflow. | 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 |
|---|---|
| godot_catalogC | Search or inspect the complete Godot… |
| godot_callD | Execute one named hidden Godot tool… |
| editor_sessionC | Discover, attach, inspect, or discon… |
| editor_transactionD | Apply one validated compound scene e… |
| run_projectD | Run the Godot project and capture ou… |
| verify_projectC | Run bounded assertions and capture e… |
| run_project_testsC | Discover or run native, GUT, and GdU… |
| get_debug_outputB | Get the current debug output and err… |
| stop_projectB | Stop the currently running Godot pro… |
| get_godot_versionA | Get the installed Godot version |
| get_project_infoA | Retrieve metadata about a Godot proj… |
| game_screenshotC | Capture a PNG preview with dimension… |
| game_get_uiA | Get a bounded list of visible UI ele… |
| game_get_scene_treeC | Get scene tree structure of the runn… |
| game_get_node_infoB | Get compact or full node info; |
| game_wait_untilD | Property waits need reflection; |
| game_scenarioD | Property waits need reflection; |
| game_get_errorsC | Get new push_error/push_warning mess… |
| game_get_logsB | Get new print output from the runnin… |
| validate_scriptsB | Batch-check GDScript files (git-chan… |
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 20 tools
Most tools are clearly distinct by domain (editor vs running game vs inspect), but get_debug_output, game_get_errors, game_get_logs, and game_get_debug_output-type overlap in capturing output, creating ambiguity. game_scenario and game_wait_until have identical placeholder descriptions ('Property waits need reflection'), making them indistinguishable.
The naming is mixed: most use verb_noun snake_case (get_godot_version, run_project), but several 'game_*', 'godot_*', and 'editor_*' prefixes follow different conventions, and 'verify_project' vs 'run_project_tests' use similar verb phrases for different actions. The game_* group is consistent internally but the prefixes across the server are arbitrary.
20 tools is on the high end but defensible for the apparent scope of controlling a Godot editor session, running tests, and inspecting a live game. It's slightly heavy, likely bordering the 16-25 range, but each tool maps to a plausible action in the workflow.
The surface covers the full lifecycle well: editor control (session, transaction) is paired with run/stop project, and inspection tools (scene tree, UI, node info, screenshot) cover runtime diagnosis. Minor gaps exist—there's no explicit save/closing_session tool, and debug/log/error retrieval is spread awkwardly across get_debug_output, game_get_errors, and game_get_logs—but core workflows are covered.