Skip to main content
Glama
rezaahmadn

godot-mcp-bridge

by rezaahmadn

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{}

Tools

Functions exposed to the LLM to take actions

NameDescription
get_project_infoA

Get Godot project name, engine version, main scene, viewport size, renderer and autoloads

get_filesystem_treeC

List the project filesystem as a nested tree of directories and files

search_filesB

Search project file names by case-insensitive substring or glob pattern

search_in_filesB

Grep project file contents and return matching file, 1-based line number and text

get_project_settingsA

Read one project setting by key, or dump all settings matching a section prefix

set_project_settingB

Set one project setting and save project.godot

uid_to_project_pathA

Resolve a uid:// identifier to its res:// project path

project_path_to_uidB

Resolve a res:// project path to its uid:// identifier

add_autoloadC

Register a scene or script as an autoload singleton and save project settings

remove_autoloadB

Remove an autoload singleton by name and save project settings

read_resourceB

Load a resource file and return its class and editor-visible properties

edit_resourceB

Set properties on an existing resource file and save it back to disk

create_resourceB

Create a resource of the given class, apply properties and save it to disk

get_resource_previewA

Render an image or texture resource to a base64 PNG, downscaled so its longest side is at most max_size pixels

get_scene_treeB

Get the node tree of the currently edited scene as nested name/type/path/script records

get_scene_file_contentA

Read the raw .tscn text of a scene file on disk

create_sceneA

Create a new scene file on disk with the given root node type, without opening it in the editor

open_sceneA

Open an existing scene file in the editor and make it the edited scene

delete_sceneB

Delete a scene file from disk together with its .import sidecar

add_scene_instanceA

Instance a packed scene as a child node of the currently edited scene

play_sceneA

Run the project: mode 'main', 'current', or a res:// scene path to play that scene

stop_sceneA

Stop the running game and clean up the bridge IPC temp files in its user dir

save_sceneA

Save the currently edited scene, optionally to a new res:// path (save-as); refuses to overwrite a scene open in another inactive tab

get_scene_exportsA

List every node's exported script variables in a scene file, with current values, Variant types and hints

add_mesh_instanceC

Add a MeshInstance3D using a primitive mesh_type or a mesh loaded from mesh_file; rotation is in degrees

setup_lightingB

Add a 3D light from a light_type or a preset (sun, indoor, dramatic); rotation and spot_angle are in degrees

set_material_3dA

Set a fresh StandardMaterial3D as a MeshInstance3D surface override — omitted params reset to class defaults, replacing any previous override

setup_environmentA

Create or reconfigure a WorldEnvironment with sky, ambient, tonemap, fog, glow, SSAO, SSR and SDFGI settings; reconfiguring an existing node is not undoable

setup_camera_3dA

Create or reconfigure a Camera3D; fov, rotation are in degrees and look_at is a world-space target; reconfiguring an existing node is not undoable

add_gridmapA

Create or reconfigure a GridMap with a MeshLibrary and paint cells; painted cells are not undoable

add_nodeC

Add a node of a ClassDB class or project class_name script under a parent in the edited scene

delete_nodeA

Delete a node from the edited scene (the scene root cannot be deleted)

duplicate_nodeA

Duplicate a node with its children under the same parent in the edited scene

move_nodeB

Reparent a node to a new parent in the edited scene

update_propertyA

Set one property on a node; compound values travel as constructor strings like Vector2(100, 200) or #ff0000

get_node_propertiesA

List a node's editor-visible properties, optionally filtered by name prefix

add_resourceC

Create a Resource subclass instance and assign it to a node property

set_anchor_presetC

Apply a Control layout anchor preset to a Control node

rename_nodeB

Rename a node in the edited scene

connect_signalA

Connect a node signal to a method on a target node, persisted into the scene file

disconnect_signalB

Disconnect a node signal from a method on a target node

get_node_groupsA

List the groups a node belongs to

set_node_groupsA

Set a node's full group membership, adding and removing to match the desired set

find_nodes_in_groupA

Find every node in the edited scene that belongs to a group

get_editor_selectionC

List the nodes currently selected in the editor scene tree

select_nodesC

Select nodes in the editor scene tree and optionally show them in the Inspector

clear_editor_selectionA

Clear the editor scene tree selection

list_scriptsB

List .gd/.cs/.gdshader files under a project path with their class_name or extends

read_scriptB

Read the full text of a script or shader file from the project

create_scriptB

Create a .gd or .cs script file, generating a GDScript template when content is empty

edit_scriptB

Edit a script file using exactly one mode: replacements list, content+start_line line-range replace, content alone full replace, or insert_at_line+text

attach_scriptB

Attach an existing script resource to a node in the edited scene

get_open_scriptsA

List the scripts currently open in the Godot script editor

validate_scriptA

Compile-check a GDScript file without attaching it, returning validity as data

create_shaderB

Create a shader file, generating a template for the given shader_type when content is empty

read_shaderA

Read the full source code of a shader file

edit_shaderB

Edit a shader file using exactly one mode: content for a full replace, or a replacements list of literal search/replace items

assign_shader_materialB

Wrap a shader in a new ShaderMaterial and assign it to a node in the edited scene

set_shader_paramA

Set one shader uniform on a node's existing ShaderMaterial

get_shader_paramsA

List every shader uniform and its current value on a node's ShaderMaterial

get_editor_errorsA

Collect recent editor errors and warnings from the editor log file, script editor compile markers and the debugger Errors tab

get_output_logA

Tail the editor's log file (user://logs/godot.log), keeping only lines containing a case-sensitive substring filter

get_editor_screenshotA

Capture a PNG screenshot of the Godot editor window; empty save_path returns base64, otherwise the image is written to disk

get_game_screenshotA

Capture a PNG screenshot of the running game's viewport; empty save_path returns base64, otherwise the image is written to disk

execute_editor_scriptA

Run GDScript in the editor process as the body of run(); call _mcp_print(v) to emit output and return a value to send it back; file and resource write APIs are refused unless allow_unsafe_editor_io is true

clear_outputA

Push old content out of view in the editor Output panel by printing blank lines (cosmetic only, nothing is deleted)

reload_pluginA

Reload the Godot MCP Bridge plugin; the WebSocket connection drops briefly and auto-reconnects

reload_projectA

Trigger a rescan of the project filesystem in the editor

get_signalsA

List every signal declared by a node in the open scene with its argument types and current connections

compare_screenshotsA

Compare two PNG images (res:// or user:// path, or raw base64) pixel by pixel and return the change count plus a red-highlighted diff image

set_auto_dismissA

Enable or disable automatic dismissal of blocking modal dialogs in the editor

get_editor_cameraA

Get the 3D editor viewport camera global position, rotation in degrees, fov and clip planes

set_editor_cameraA

Move the 3D editor viewport camera in world space; look_at is applied after rotation_degrees and overrides it

simulate_keyA

Send a keyboard event to the running game by key name such as W, SPACE, ESCAPE or F1 (dropped if no game is running)

simulate_mouse_clickA

Click a mouse button at viewport pixel x,y in the running game, auto-releasing so UI buttons fire (dropped if no game is running)

simulate_mouse_moveB

Move the mouse to viewport pixel x,y in the running game with an optional motion delta and held-button mask (dropped if no game is running)

simulate_actionA

Press or release a named InputMap action in the running game (dropped if no game is running)

simulate_sequenceA

Send an ordered batch of input events to the running game, one event every frame_delay frames (dropped if no game is running)

get_input_actionsA

List InputMap actions with their deadzone and bound events, optionally including builtin ui_* actions

set_input_actionB

Create or replace an InputMap action's bindings in project settings and in the live editor InputMap

run_test_scenarioA

Run an ordered input/wait/assert/screenshot scenario against the running game, optionally launching a scene first

assert_node_stateB

Assert a property of a node in the running game against an expected value using the given operator

assert_screen_textB

Assert that text is visible in any Control element of the running game

run_stress_testA

Hammer the running game with random input actions for a duration in seconds and report crashes and new log errors

get_test_reportB

Summarize every assertion recorded this plugin session and optionally clear the collected results

get_game_scene_treeA

Dump the live scene tree of the running game from the tree root, including autoloads

get_game_node_propertiesA

Read live property values of a node in the running game

set_game_node_propertyA

Set one property on a live node in the running game and return its old and new value

capture_framesB

Capture a burst of viewport frames from the running game as base64 PNGs, spaced by frame_interval frames

monitor_propertiesA

Sample properties of a live node over several frames to observe how they change over time

execute_game_scriptA

Run GDScript inside the running game process; code runs as the body of run(root: Node), use print() for output, no top-level func definitions and no await

start_recordingA

Start recording player input events in the running game; mouse motion is recorded unfiltered and can be voluminous

stop_recordingA

Stop input recording in the running game and return the recorded event list

replay_recordingA

Replay recorded input events into the running game, honoring their time_ms timeline scaled by speed

find_nodes_by_scriptB

Find live nodes in the running game whose attached script path contains the given substring

get_autoloadB

Read an autoload singleton at /root/ in the running game

batch_get_propertiesA

Read properties of several live nodes in one round trip; missing nodes report inline instead of failing

find_ui_elementsB

List visible Control nodes in the running game with their text, global rect and center point in screen pixels

click_button_by_textA

Press the first visible button in the running game whose text matches, programmatically rather than via the mouse

wait_for_nodeA

Poll the running game until a node exists at the given path or the timeout in seconds elapses

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

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/rezaahmadn/godot-mcp-bridge'

If you have feedback or need assistance with the MCP directory API, please join our Discord server