godot-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| GODOT_BIN | No | Godot 4 executable used by run_headless. Default is 'godot4'. | godot4 |
| GODOT_MCP_BRIDGE_URL | No | Where the editor_* tools look for the bridge. Default is ws://127.0.0.1:9080. | ws://127.0.0.1:9080 |
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 | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_projectA | Lists scenes (.tscn), scripts (.gd), and resources (.tres/.res) in a Godot project folder, relative to project_path. |
| read_sceneB | Parses a .tscn file and returns its node tree as JSON (name, type, parent path, properties). |
| create_sceneB | Creates a new .tscn file with a single root node. Use add_node afterward to build out the tree. |
| add_nodeB | Adds a child node to an existing scene at the given parent path (use "." for the scene root). |
| remove_nodeB | Removes a node (and its descendants) from a scene. |
| set_node_propertiesC | Sets or overwrites one or more properties on an existing node in a scene. |
| write_scriptB | Creates or fully overwrites a GDScript (.gd) file. |
| read_scriptB | Reads a GDScript (.gd) file's contents. |
| edit_scriptB | Replaces one exact occurrence of old_text with new_text in a GDScript file (like a find-and-replace patch). |
| run_headlessB | Runs the Godot project headlessly (no window) for a fixed duration to catch parse/runtime errors, or runs a specific scene headlessly. Requires the |
| editor_pingB | Checks whether the Godot editor is running with the godot_mcp_bridge plugin enabled. |
| editor_run_sceneA | Tells the running Godot editor to play a specific scene (like pressing the Play Scene button). |
| editor_stopA | Tells the running Godot editor to stop the currently playing scene. |
| editor_get_selectionA | Returns the currently selected node(s) in the Godot editor. |
| editor_get_scene_treeA | Returns the scene currently open in the Godot editor as a node tree, plus the list of open scenes. |
| editor_open_sceneA | Opens a scene in the Godot editor (switching to its tab) so it can be edited live with editor_add_node, editor_set_properties and editor_remove_node. |
| editor_add_nodeA | Adds a node to the scene open in the Godot editor. It appears live and is selected; undo with Ctrl+Z. The scene is not saved until editor_save_scene (or the user saves). Prefer this over add_node while the editor is open. |
| editor_set_propertiesA | Sets properties on a node in the scene open in the Godot editor (live, undoable with Ctrl+Z, not saved until editor_save_scene). |
| editor_remove_nodeA | Removes a node (and its descendants) from the scene open in the Godot editor (live, undoable with Ctrl+Z). |
| editor_save_sceneA | Saves the scene currently open in the Godot editor to disk (like Ctrl+S). |
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
File-based and editor-prefixed tools form two clearly separated groups, and parallel operations like add_node vs editor_add_node are distinguished by both naming and explicit live/undo behavior. Even similar returns like read_scene and editor_get_scene_tree are unambiguous because their sources (disk vs open editor tab) are clearly stated.
Most tools follow a consistent verb_noun or editor_verb_noun pattern, and the editor_ prefix is applied uniformly across live-editor operations. Minor inconsistencies exist in retrieval verbs (list/read/get) and in set_node_properties vs editor_set_properties, but the overall pattern remains predictable.
With 20 tools, the set sits at the heavy end of the range, largely because file-based operations and live-editor operations duplicate each other. Each tool does have a distinct purpose, but the count feels borderline for a single MCP server.
The toolset covers the core Godot workflow well: listing/reading/creating scenes, editing nodes and scripts, headless runs, and live editor control. Minor gaps such as deleting scene files, moving nodes, or deleting/renaming scripts are workable around rather than blocking.