Open Godot MCP
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
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
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| godot_editor_readB | Read-only editor state. Actions: state,selection,open_scenes,viewport,performance. |
| godot_editor_editA | Write to editor (gated, Undo/Redo). Actions: open_scene,save_scene,save_all,set_selection,focus_node,quit. |
| godot_sceneC | Scene file ops (.tscn). Actions: create,read,save,save_as,hierarchy,instantiate. path=res://. |
| godot_node_readB | Read editor scene tree nodes. Actions: inspect,tree,find,children,properties,get_signals,get_groups,find_in_group. node_path=/root/.... |
| godot_node_editB | Edit editor nodes (gated, Undo/Redo). Actions: create,create_batch,delete,reparent,rename,duplicate,set_property,set_properties,set_groups,add_to_group,remove_from_group,connect_signal,disconnect_signal. |
| godot_scriptC | GDScript file ops. Actions: read,create,edit(diff-based),write,validate,attach,detach. path=res://. |
| godot_projectC | Project settings & autoloads. Actions: info,get_setting,set_setting,list_settings,autoload_list,autoload_add,autoload_remove,rescan. |
| godot_input_mapC | InputMap management. Actions: list,add,remove,bind,ensure,get. |
| godot_resourceC | Read-only resource inspection. Actions: inspect,list,find,info. path=res://. |
| godot_filesystemC | File ops. Actions: list,read,search,create,delete,rename. path=res:// or absolute. |
| godot_docsA | Godot official docs (version-matched). Actions: fetch(class_name,method?),search(query). |
| godot_logC | Log access. Actions: get(source?,count?,offset?,since_ms?),errors(max?,include_warnings?),clear. |
| godot_healthB | Connection health. Actions: check,diagnostics. Call first to verify connectivity. |
| godot_gameC | Game lifecycle. Actions: play(scene?,frozen?),stop,pause,resume,status. |
| godot_game_timeC | Deterministic clock control (gated). Actions: freeze,unfreeze,step(ms,inputs?),step_until(condition,timeout_ms?,interval_ms?). |
| godot_inputC | Inject input into running game (gated). Actions: action,key,mouse_button,mouse_motion,joypad,text,record_start,record_stop,replay,sequence. |
| godot_runtime_stateD | Observe running game state (auto-allow). Actions: digest(groups?),inspect(node_path,properties?),watch(node_path,property,duration_ms?),signals(node_path?,since_ms?). |
| godot_execA | Execute GDScript in running game (gated). Actions: eval(code,await?),call(node_path,method,args?),assert(condition,description?,await?). Disabled if --no-eval. |
| godot_screenshotA | Screenshots saved to disk (auto-allow). Actions: game(max_width?,format?,quality?),editor(viewport?,max_width?),region(rect,max_width?,source?),burst(count?,duration_ms?,interval_ms?),cleanup(max_count?,max_age_hours?). Auto-rotation keeps last 50 (configurable via open_godot_mcp/screenshot_max_count) and deletes files older than 24h (configurable via open_godot_mcp/screenshot_max_age_hours); cleanup action forces immediate prune. |
| godot_networkC | Multiplayer game testing. Actions: launch_instance(role,scene?,args?),list_instances,switch,terminate,simulate_peer,network_condition,sync_state,rpc_call. |
| godot_instanceA | Manage Godot EDITOR instances. Actions: launch_editor(project_path),list,switch,terminate,adopt(project_path). |
| godot_debuggerC | DAP debugger. Actions: set_breakpoint,remove_breakpoint,resume,continue,step_over,step_into,step_out,stack_trace,variables,evaluate,list_breakpoints,sessions. |
| godot_lspC | GDScript LSP (auto-allow). Actions: diagnostics(path?),complete,definition,hover,symbols. path=res://. |
| godot_profilerB | Performance profiling (auto-allow, game must run). Actions: snapshot,series(duration_ms?,metrics?),spikes(threshold_ms?). |
| godot_testC | Built-in test framework. Actions: list,run(suite?,test_name?,exclude?),results(verbose?),create(path,test_name). |
| godot_animationC | AnimationPlayer ops. Actions: list,get,create,add_track,delete,play,stop,preset. player_path=/root/.../AnimationPlayer. |
| godot_tilemapC | TileMapLayer/GridMap cell ops. Actions: read_cells(node_path,region?),set_cell,set_cells,clear. node_path=/root/.... |
| godot_assetC | Asset generation & management. Actions: generate_2d(svg,filename,save_path,width?,height?),list,info,import. |
| godot_exportC | Game export. Actions: presets,export(preset,dest_path),add_preset(name,platform,settings). |
| godot_batchB | Batch-execute multiple tool calls in one round-trip (gated). Action: execute(operations:[{tool,action,params}]). No nesting. |
| godot_csharp_checkC | C# compile/syntax check. Actions: info,build(project?),syntax(source?/path?). |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| playtest | Complete deterministic playtest workflow. |
| debug_breakpoint | Breakpoint debugging workflow. |
| network_test | Multiplayer network testing workflow. |
| build_scene | Build a scene from a natural-language description. |
| fix_bug | Bug fixing workflow: reproduce, diagnose, fix, verify. |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| editor_state | Current editor state as JSON text. |
| scene_tree | Current scene tree (depth=2 summary) as JSON text. |
| editor_logs | Recent editor logs (last 50 lines) as JSON text. |
| screenshot | Latest game screenshot path (saved to disk). |
| instances | Running editor instances as JSON text. |
| project_info | Project info as JSON text. |
TDQS
Scored across 31 tools
Each tool targets a distinct domain (editor, scene, node, script, etc.) with clear read/edit separations. Overlapping concepts like runtime state vs. profiler are clearly differentiated by purpose.
All tools follow a consistent 'godot_<domain>_<action>' or 'godot_<domain>' pattern using snake_case. No mixed conventions or unexpected variations.
31 tools is above the typical 3-15 range, but given the broad scope of Godot engine functionality (editor, scene, scripting, networking, etc.), the count is reasonable and each tool serves a distinct purpose.
The tool surface covers nearly all major aspects of Godot development: editor control, scene/node editing, scripting, project settings, input, filesystem, debugging, profiling, testing, animation, tilemap, assets, export, and more. No obvious gaps for a game engine MCP.