Skip to content

Latest commit

 

History

History
125 lines (107 loc) · 7.42 KB

File metadata and controls

125 lines (107 loc) · 7.42 KB

Available Tools

Godot AI exposes ~41 MCP tools — ~18 high-traffic verbs as named tools, plus one rolled-up <domain>_manage per domain that takes op="..." + a params dict. The rollup pattern keeps the tool count well below the 100-tool caps some clients enforce while still exposing every action.

The plugin command surface (over WebSocket) is unchanged; only the MCP tool names move. Inside batch_execute's commands[].command field, keep using the underlying plugin command names (e.g. create_node, set_property), not the MCP tool names.

Always-loaded core tools

Tool Description
editor_state Editor version, project name, current scene, readiness, play state
scene_get_hierarchy Paginated scene tree walk (depth, offset, limit)
node_get_properties Full property snapshot of a node
session_activate Pin subsequent calls to a specific connected editor

Top-level deferred verbs (high-traffic write/read)

Tool Description
batch_execute Run multiple plugin commands atomically (rollback on first error)
node_create / node_set_property / node_find Common node writes + search
scene_open / scene_save Open and save scenes
script_create / script_attach / script_patch Create, attach, anchor-edit GDScript files
project_run Play the project (autosave persists in-memory MCP edits unless autosave=False)
test_run Run GDScript test suites in the editor
logs_read Read plugin / game / editor / combined log buffers. source="editor" surfaces parse errors, GDScript reload warnings, @tool/EditorPlugin runtime errors, push_error/push_warning, and visible Debugger dock Errors-tab rows — use this when the editor's Output or Debugger Errors panel shows red/yellow rows
editor_screenshot Capture editor viewport, cinematic camera, or running game framebuffer
editor_reload_plugin Reload the plugin and wait for reconnect (server must be external)
animation_create Create an Animation clip (auto-creates AnimationPlayer + library if missing)

logs_read also accepts include_details=true for source="editor", source="game", and source="all". Detailed entries include the original Godot _log_error code/rationale when available, error type, resolved source location, and stack/error-tree context corresponding to the Debugger dock's Errors tab.

editor_manage(op="logs_clear") accepts clear_debugger_errors=true to also clear the Debugger dock's visible Errors-tab rows (routed through the panel's own Clear path so the tab badge and counters reset). The Errors panel is user-facing UI, so the default leaves it untouched.

Domain rollups (<domain>_manage)

Each rollup is a single MCP tool dispatched by op name + params dict. The op field is a Literal[...] enum so MCP clients with schema-aware autocomplete still see every valid verb. Unknown ops surface a structured error with fuzzy data.suggestions.

Calls take the form:

{"op": "set_color", "params": {"theme_path": "res://theme.tres",
                                "class_name": "Label", "name": "font_color",
                                "value": "#ff0000"}}
Tool Ops
scene_manage create, save_as, get_roots
node_manage get_children, get_groups, delete, duplicate, rename, move, reparent, add_to_group, remove_from_group
script_manage read, detach, find_symbols
project_manage stop, settings_get, settings_set
editor_manage state, selection_get, selection_set, monitors_get, quit, logs_clear, game_eval
session_manage list
test_manage results_get
animation_manage player_create, delete, validate, add_property_track, add_method_track, set_autoplay, play, stop, list, get, create_simple, preset_fade, preset_slide, preset_shake, preset_pulse
material_manage create, set_param, set_shader_param, get, list, assign, apply_to_node, apply_preset
audio_manage player_create, player_set_stream, player_set_playback, play, stop, list
particle_manage create, set_main, set_process, set_draw_pass, restart, get, apply_preset
camera_manage create, configure, set_limits_2d, set_damping_2d, follow_2d, get, list, apply_preset
signal_manage list, connect, disconnect
input_map_manage list, add_action, remove_action, bind_event
game_manage get_scene_tree, get_node_info, get_ui_elements, input_key, input_mouse, input_gamepad, input_state
autoload_manage list, add, remove
filesystem_manage read_text, write_text, reimport, search
theme_manage create, set_color, set_constant, set_font_size, set_stylebox_flat, apply
ui_manage set_anchor_preset, set_text, build_layout, draw_recipe
resource_manage search, load, assign, get_info, create, curve_set_points, environment_create, physics_shape_autofit, gradient_texture_create, noise_texture_create
api_manage get_class
client_manage status, configure, remove

api_manage(op="get_class") inspects Godot API/ClassDB metadata for a class without creating an instance. By default it returns direct class members only, with each returned section capped at 100 items. Pass sections (properties, methods, signals, enums, constants, inheritors), include_inherited=true, include_inheritors=true, offset, or limit=0 when a fuller class reference is needed. When paginating, request one section at a time so offset/limit apply only to the list you are paging.

Every rolled-up tool also accepts an optional top-level session_id for per-call multi-editor routing (sibling of op and params, not nested inside params).

MCP Resources

Read-only URIs served alongside the tool surface. They don't count against tool caps and are preferred for active-session reads when the client surfaces them. The matching tool form is the fallback for clients that don't, and the only path that supports session_id pinning.

Resource URI Description
godot://sessions All connected editor sessions with metadata
godot://editor/state Editor version, project, current scene, readiness, play state
godot://selection/current Current editor selection
godot://logs/recent Last 100 plugin log lines
godot://scene/current Active scene path + project + play state
godot://scene/hierarchy Full scene hierarchy from the active editor
godot://node/{path}/properties All properties of a node by scene path
godot://node/{path}/children Direct children (name, type, path each)
godot://node/{path}/groups Group memberships for a node
godot://class/{class_name} ClassDB metadata: properties, methods, signals, enums, constants, inheritance, and defaults
godot://script/{path} GDScript source by res:// path (drop the res:// prefix)
godot://project/info Active project metadata
godot://project/settings Common project settings subset
godot://materials All Material resources under res://
godot://input_map Project input actions and their bound events
godot://performance Performance singleton snapshot
godot://test/results Most recent test_run results