Godot MCP Extended
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| DEBUG | No | Set to "true" to enable detailed server-side debug logging | |
| GODOT_PATH | No | Path to the Godot executable (overrides automatic detection) |
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_outputB | Get the current debug output and errors |
| stop_projectA | Stop the currently running Godot project |
| get_godot_versionB | Get the installed Godot version |
| list_projectsB | List Godot projects in a directory |
| get_project_infoC | Retrieve metadata about a Godot project |
| create_sceneB | Create a new Godot scene file |
| add_nodeB | Add a node to an existing scene |
| load_spriteB | 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_uidC | Get the UID for a specific file in a Godot project (for Godot 4.4+) |
| update_project_uidsA | Update UID references in a Godot project by resaving resources (for Godot 4.4+) |
| get_scene_treeA | Inspect a scene: returns its full node tree (names, types, paths, scripts, groups) as JSON |
| get_node_propertiesA | Read the properties of a single node in a scene. mode "overrides" returns only non-default values, "effective" returns all stored values. |
| get_scene_dependenciesA | List the external resources (scripts, textures, instanced scenes) a scene references, and whether each exists |
| describe_classA | Introspect a Godot built-in class via ClassDB: its parent, properties, methods, and signals. Use to discover valid property/signal names before editing. |
| list_scriptsA | List all GDScript (.gd) files in the project (or a subdirectory) |
| read_scriptB | Read the source of a script file in the project |
| check_scriptA | Parse/compile-check a GDScript file using Godot --check-only. Returns parse errors/warnings without running the game. |
| validate_sceneB | Validate a scene headless: reports whether it loads/instantiates and lists any missing dependencies |
| run_and_capture_errorsA | Run the project (optionally a single scene) for a bounded time and return captured stdout plus structured script errors/warnings |
| set_node_propertyA | Set a property on an existing node in a scene. Values are coerced to the property type (e.g. [x,y] -> Vector2, "res://..." -> resource). |
| delete_nodeB | Delete a node (and its descendants) from a scene |
| rename_nodeB | Rename a node in a scene |
| reparent_nodeB | Move a node to a new parent within the same scene |
| duplicate_nodeB | Duplicate a node subtree within a scene |
| add_to_groupB | Add a node to a group (persistent, saved in the scene) |
| remove_from_groupB | Remove a node from a group |
| create_scriptA | Create a new GDScript file. Optionally specify extends, class_name, and body. |
| attach_scriptC | Attach an existing script to a node in a scene |
| connect_signalB | Persist a signal connection from one node to a method on another node in the same scene |
| disconnect_signalB | Remove a stored signal connection from a scene |
| list_connectionsB | List all signal connections stored within a scene |
| instance_sceneB | Add another scene as an instanced child inside a scene (composition / prefabs) |
| get_project_settingB | Read a project setting from project.godot |
| set_project_settingC | Set a project setting in project.godot |
| set_main_sceneB | Set the project main scene (application/run/main_scene) |
| list_autoloadsA | List the autoload singletons configured in the project |
| add_autoloadB | Add (or update) an autoload singleton |
| remove_autoloadB | Remove an autoload singleton |
| add_input_actionA | Add or extend an input map action with events. Each event: {type:"key", key:"Space"} | {type:"mouse_button", button_index:1} | {type:"joypad_button", button_index:0} | {type:"joypad_motion", axis:0, axis_value:1.0}. |
| remove_input_actionC | Remove an input map action |
| create_resourceB | Create a new .tres/.res resource of a given class with optional properties (e.g. StandardMaterial3D, custom Resource) |
| edit_resourceB | Edit properties of an existing resource file |
| get_resource_propertiesA | Read the stored properties of a resource file as JSON |
| run_scene_testA | Automated end-to-end / UAT test of a scene. Boots the scene headless (real game loop, no rendering), runs a sequence of steps, and evaluates assertions against live game state. Returns per-assertion pass/fail. Each step is an object with an "action". Driver actions: {action:"wait_frames",frames:N} | {action:"wait_seconds",seconds:S} | {action:"press_action",name:"jump",strength:1.0} | {action:"release_action",name:"jump"} | {action:"tap_action",name:"jump",frames:2} | {action:"key",key:"Space",pressed:true} | {action:"mouse_button",button:1,position:[x,y],pressed:true} | {action:"mouse_move",position:[x,y]} | {action:"set_property",node:"Path",property:"x",value:1} | {action:"call_method",node:"Path",method:"start",args:[]} | {action:"emit_signal",node:"Path",signal_name:"hit",args:[]} | {action:"watch_signal",node:"Path",signal_name:"hit"} | {action:"wait_for_signal",node:"Path",signal_name:"hit",timeout_seconds:2}. Assertion actions: {action:"assert_property",node:"Path",property:"position",op:">",value:{x:0}} (op: ==,!=,>,<,>=,<=; for vectors/colors only the provided components are checked) | {action:"assert_node_exists",node:"Path",exists:true} | {action:"assert_in_group",node:"Path",group:"mobs",expected:true} | {action:"assert_signal_emitted",node:"Path",signal_name:"hit",min_count:1} (requires a prior watch_signal) | {action:"assert_method_returns",node:"Path",method:"get_score",args:[],op:">=",value:10} | {action:"assert_node_count",group:"mobs",op:">",value:0}. Node paths are relative to the scene root ("" or "root" = root). |
| run_testsA | Run a GUT or GdUnit4 test suite headless and return the pass/fail summary. Auto-detects the framework from the project addons. |
| capture_scene_screenshotA | EXPERIMENTAL visual UAT: boot a scene with a rendering driver and save a PNG screenshot. Requires a GPU/display or a software rasterizer; may fail in pure-headless CI. Returns the image. |
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/ibnutoriq/godot-mcp-extended'
If you have feedback or need assistance with the MCP directory API, please join our Discord server