godot-mcp
Provides comprehensive control over the Godot game engine, offering 149 tools for scene manipulation, runtime code execution, node inspection, animation, physics, audio, networking, project management, and more.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@godot-mcp Create a new Godot project and add a player character with a movement script."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Godot MCP - Full Control
A comprehensive Model Context Protocol (MCP) server that gives AI assistants full control over the Godot game engine. 149 tools spanning networking, 3D/2D rendering, UI controls, audio effects, animation trees, file I/O, runtime code execution, property inspection, scene manipulation, signal management, physics, project creation, and more.
Acknowledgments
This project is built upon and extends godot-mcp by Solomon Elias (Coding-Solo). The original project provided the foundational architecture including the TypeScript MCP server, headless GDScript operations system, and TCP-based runtime interaction server. Thank you for making this possible with your excellent open-source work!
Related MCP server: Gear
What's New (Improvements Over Original)
The original godot-mcp provided 20 tools for basic project management and scene creation. This fork extends it to 149 tools with the following major additions:
Runtime Code Execution
game_eval- Execute arbitrary GDScript code in the running game with return valuesFull
awaitsupport for async GDScript codeWorks even when the game is paused (
PROCESS_MODE_ALWAYS)
Runtime Node Inspection & Manipulation
game_get_property/game_set_property- Read/write any property on any node by pathgame_call_method- Call any method on any node with argumentsgame_get_node_info- Full node introspection: properties, signals, methods, childrengame_instantiate_scene- Dynamically add scenes to the running gamegame_remove_node- Remove nodes at runtimegame_change_scene- Switch scenes at runtimegame_reparent_node- Move nodes between parents
Signal System
game_connect_signal- Wire up signal connections at runtimegame_disconnect_signal- Remove signal connectionsgame_emit_signal- Emit signals with arguments
Animation & Tweening
game_play_animation- Control AnimationPlayer (play, stop, pause, list)game_tween_property- Smooth property animation with configurable easing
Game Control & Debugging
game_pause- Pause/unpause the gamegame_performance- FPS, frame time, memory, object counts, draw callsgame_wait- Wait N frames (timing-sensitive operations)game_get_nodes_in_group- Query nodes by groupgame_find_nodes_by_class- Find all nodes of a specific class
Headless Scene Operations (No Running Game Needed)
read_scene- Parse any .tscn file and get full node tree with properties as JSONmodify_scene_node- Change node properties in scene filesremove_scene_node- Remove nodes from scene filesattach_script- Attach GDScript files to nodes in scenescreate_resource- Create .tres resource files (materials, themes, etc.)
Project Management
read_project_settings- Parse project.godot as structured JSONmodify_project_settings- Change project settings programmaticallylist_project_files- List and filter project files by extension
File I/O
read_file/write_file/delete_file- Full file system access within Godot projectscreate_directory- Create directory structures for scripts, scenes, assets
Error & Log Capture
game_get_errors- Get new push_error/push_warning messages since last callgame_get_logs- Get new print output from the running game since last call
Enhanced Input
game_key_hold/game_key_release- Hold keys down for movement testing (WASD etc.)game_scroll- Mouse scroll wheel eventsgame_mouse_drag- Drag between two points over multiple framesgame_gamepad- Gamepad button and axis input events
Project Creation & Configuration
create_project- Create a new Godot project from scratchmanage_autoloads- Add, remove, or list autoloadsmanage_input_map- Add, remove, or list input actions and key bindingsmanage_export_presets- Create or modify export preset configuration
Camera, Physics & Audio
game_get_camera/game_set_camera- Query and control 2D/3D camerasgame_raycast- Cast physics rays (auto-detects 2D vs 3D)game_get_audio- Get audio bus layout and playing streamsgame_spawn_node- Create any node type at runtime with propertiesgame_set_shader_param- Set shader parameters on materialsgame_audio_play/game_audio_bus- Full audio playback and bus controlgame_navigate_path- Query navigation paths (2D/3D)game_tilemap- Get/set TileMapLayer cellsgame_add_collision- Add collision shapes to physics bodiesgame_environment- Configure post-processing (fog, glow, SSAO, tonemap, etc.)game_manage_group- Add/remove nodes from groupsgame_create_timer- Create timer nodes programmaticallygame_set_particles- Configure GPUParticles2D/3D properties and process materialsgame_create_animation- Create animations with value/method/bezier/audio tracks and keyframesexport_project- Trigger headless project export builds (CI/CD ready)game_serialize_state- Save/load entire node tree state as JSONgame_physics_body- Configure mass, velocity, damping, friction, bouncegame_create_joint- Create physics joints (pin, spring, hinge, cone, slider)game_bone_pose- Get/set skeleton bone poses for character animationgame_ui_theme- Apply color, constant, and font size theme overridesgame_viewport- Create/configure SubViewport nodesgame_debug_draw- Draw debug geometry (lines, spheres, boxes)
Networking
game_http_request- HTTP GET/POST/PUT/DELETE with headers and bodygame_websocket- WebSocket client connect/disconnect/send messagesgame_multiplayer- ENet multiplayer create server/client/disconnectgame_rpc- Call or configure RPC methods on nodes
System & Window Control
game_script- Attach, detach, or get source of node scripts at runtimegame_window- Get/set window size, fullscreen, title, positiongame_os_info- Get platform, locale, screen, adapter, memory infogame_time_scale- Get/set Engine.time_scale and timing infogame_process_mode- Set node process mode (pausable/always/disabled)game_world_settings- Get/set gravity, physics FPS, and world settings
Advanced Signals & Input
game_list_signals- List all signals on a node with connectionsgame_await_signal- Await a signal with timeout and return argsgame_touch- Simulate touch press/release/drag and gesturesgame_input_state- Query pressed keys, mouse position, connected padsgame_input_action- Manage runtime InputMap actions and strength
3D Rendering & Geometry
game_csg- Create/configure CSG nodes with boolean operationsgame_multimesh- Create/configure MultiMeshInstance3D for instancinggame_procedural_mesh- Generate meshes via ArrayMesh from vertex datagame_light_3d- Create/configure 3D lights (directional/omni/spot)game_mesh_instance- Create MeshInstance3D with primitive meshesgame_gridmap- GridMap set/get/clear cells and query used cellsgame_3d_effects- Create ReflectionProbe, Decal, or FogVolumegame_gi- Create/configure VoxelGI or LightmapGIgame_path_3d- Create Path3D/Curve3D and manage curve pointsgame_sky- Create/configure Sky with procedural/physical skygame_camera_attributes- Configure DOF, exposure, auto-exposure on cameragame_navigation_3d- Create/configure NavigationRegion3D and bakegame_physics_3d- Area3D queries and point/shape intersection tests
2D Systems
game_canvas- Create/configure CanvasLayer and CanvasModulategame_canvas_draw- 2D drawing: line/rect/circle/polygon/text/cleargame_light_2d- Create/configure 2D lights and light occludersgame_parallax- Create/configure ParallaxBackground and layersgame_shape_2d- Line2D/Polygon2D point manipulationgame_path_2d- Path2D/Curve2D management and AnimatedSprite2Dgame_physics_2d- Area2D queries and 2D point/shape intersections
Advanced Animation
game_animation_tree- AnimationTree state machine travel and paramsgame_animation_control- AnimationPlayer seek/queue/speed/info controlgame_skeleton_ik- SkeletonIK3D start/stop/set target position
Advanced Audio
game_audio_effect- Add/remove/configure audio bus effectsgame_audio_bus_layout- Create/remove/reorder audio buses and routinggame_audio_spatial- Configure AudioStreamPlayer3D spatial properties
Editor & Project Tools
rename_file- Rename or move a file within the projectmanage_resource- Read or modify .tres/.res resource filescreate_script- Create a GDScript file from a templatemanage_scene_signals- List/add/remove signal connections in .tscn filesmanage_layers- List/set named layer definitions in projectmanage_plugins- List/enable/disable editor pluginsmanage_shader- Create or read .gdshader filesmanage_theme_resource- Create/read/modify Theme .tres resourcesset_main_scene- Set the main scene in project.godotmanage_scene_structure- Rename/duplicate/move nodes within .tscn scenesmanage_translations- List/add/remove translation files in projectgame_locale- Set/get locale and translate strings at runtime
UI Controls
game_ui_control- Set focus, anchors, tooltip, mouse filter on Controlgame_ui_text- LineEdit/TextEdit/RichTextLabel text operationsgame_ui_popup- Show/hide/popup for Popup/Dialog/Window nodesgame_ui_tree- Tree control: get/select/collapse/add/remove itemsgame_ui_item_list- ItemList/OptionButton: get/select/add/remove itemsgame_ui_tabs- TabContainer/TabBar: get/set current tabgame_ui_menu- PopupMenu/MenuBar: add/remove/get menu itemsgame_ui_range- ProgressBar/Slider/SpinBox/ColorPicker get/set
Rendering & Resources
game_render_settings- Get/set MSAA, FXAA, TAA, scaling mode/scalegame_resource- Runtime resource load, save, or preload
Robustness Improvements
Reentrancy guard - Prevents concurrent command processing during async operations
Full type conversion - Supports Vector2/3, Color, Quaternion, Basis, Transform2D/3D, AABB, Rect2, and all packed array types
Smart property type detection - Uses node's
get_property_list()for automatic type conversionPackedArray serialization - Proper JSON arrays instead of string fallback
Graceful error handling - Scene read fallback to raw .tscn text on missing dependencies
All 149 Tools
Project Management (7 tools)
Tool | Description |
| Launch Godot editor for a project |
| Run a Godot project and capture output |
| Stop the running project |
| Get console output and errors |
| Get installed Godot version |
| Find Godot projects in a directory |
| Get project metadata |
Scene Management (7 tools)
Tool | Description |
| Create a new scene with a root node type |
| Add a node to an existing scene |
| Load a texture into a Sprite2D node |
| Export a scene as MeshLibrary |
| Save a scene (with optional variant path) |
| Get UID for a file (Godot 4.4+) |
| Resave resources to update UIDs |
Headless Scene Operations (5 tools)
Tool | Description |
| Read full scene tree as JSON |
| Modify node properties in a scene file |
| Remove a node from a scene file |
| Attach a GDScript to a scene node |
| Create a .tres resource file |
Project Settings (3 tools)
Tool | Description |
| Parse project.godot as JSON |
| Change a project setting |
| List/filter project files |
Runtime Input (4 tools)
Tool | Description |
| Capture a screenshot (base64 PNG) |
| Click at a position |
| Send key press or input action |
| Move the mouse |
Runtime Inspection (3 tools)
Tool | Description |
| Get all visible UI elements |
| Get full scene tree structure |
| Detailed node introspection |
Runtime Code Execution (1 tool)
Tool | Description |
| Execute arbitrary GDScript with return values |
Runtime Node Manipulation (7 tools)
Tool | Description |
| Get any node property |
| Set any node property (auto type conversion) |
| Call any method on a node |
| Add a PackedScene to the running tree |
| Remove a node from the tree |
| Switch to a different scene |
| Move a node to a new parent |
Runtime Signals (5 tools)
Tool | Description |
| Connect a signal to a method |
| Disconnect a signal |
| Emit a signal with arguments |
| List all signals on a node with connections |
| Await a signal with timeout and return args |
Runtime Animation (2 tools)
Tool | Description |
| Control AnimationPlayer |
| Tween a property with easing |
Runtime Utilities (5 tools)
Tool | Description |
| Pause/unpause the game |
| Get FPS, memory, draw calls |
| Wait N frames |
| Query nodes by group |
| Find nodes by class type |
File I/O (4 tools)
Tool | Description |
| Read a text file from a Godot project |
| Create or overwrite a text file |
| Delete a file from a project |
| Create a directory inside a project |
Error & Log Capture (2 tools)
Tool | Description |
| Get new errors/warnings since last call |
| Get new print output since last call |
Enhanced Input (8 tools)
Tool | Description |
| Hold a key down (no auto-release) |
| Release a held key |
| Mouse scroll wheel event |
| Drag between two points over N frames |
| Gamepad button or axis input |
| Simulate touch press/release/drag and gestures |
| Query pressed keys, mouse position, connected pads |
| Manage runtime InputMap actions and strength |
Project Creation (4 tools)
Tool | Description |
| Create a new Godot project from scratch |
| Add, remove, or list autoloads |
| Add, remove, or list input actions |
| Create or modify export presets |
Advanced Runtime (24 tools)
Tool | Description |
| Get active camera position/rotation/zoom |
| Move or rotate the active camera |
| Cast a ray and return collision results |
| Get audio bus layout and playing streams |
| Create a new node of any type at runtime |
| Set a shader parameter on a node's material |
| Play, stop, or pause an AudioStreamPlayer node |
| Set volume, mute, or solo on an audio bus |
| Query a navigation path between two points |
| Get or set cells in a TileMapLayer node |
| Add a collision shape to a physics body node |
| Get or set environment and post-processing settings |
| Add or remove a node from a group, or list groups |
| Create a Timer node with configuration |
| Configure GPUParticles2D/3D node properties |
| Create an animation with tracks and keyframes |
| Save or load node tree state as JSON |
| Configure physics body properties (mass, velocity) |
| Create a physics joint between two bodies |
| Get or set bone poses on a Skeleton3D node |
| Apply theme overrides to a Control node |
| Create or configure a SubViewport node |
| Draw debug lines, spheres, or boxes in 3D |
Build & Export (1 tool)
Tool | Description |
| Export a Godot project using a preset |
Networking (4 tools)
Tool | Description |
| HTTP GET/POST/PUT/DELETE with headers and body |
| WebSocket client connect/disconnect/send messages |
| ENet multiplayer create server/client/disconnect |
| Call or configure RPC methods on nodes |
System & Window (6 tools)
Tool | Description |
| Attach, detach, or get source of node scripts |
| Get/set window size, fullscreen, title, position |
| Get platform, locale, screen, adapter, memory info |
| Get/set Engine.time_scale and timing info |
| Set node process mode (pausable/always/disabled) |
| Get/set gravity, physics FPS, and world settings |
3D Rendering & Geometry (13 tools)
Tool | Description |
| Create/configure CSG nodes with boolean operations |
| Create/configure MultiMeshInstance3D for instancing |
| Generate meshes via ArrayMesh from vertex data |
| Create/configure 3D lights (directional/omni/spot) |
| Create MeshInstance3D with primitive meshes |
| GridMap set/get/clear cells and query used cells |
| Create ReflectionProbe, Decal, or FogVolume |
| Create/configure VoxelGI or LightmapGI |
| Create Path3D/Curve3D and manage curve points |
| Create/configure Sky with procedural/physical sky |
| Configure DOF, exposure, auto-exposure on camera |
| Create/configure NavigationRegion3D and bake |
| Area3D queries and point/shape intersection tests |
2D Systems (7 tools)
Tool | Description |
| Create/configure CanvasLayer and CanvasModulate |
| 2D drawing: line/rect/circle/polygon/text/clear |
| Create/configure 2D lights and light occluders |
| Create/configure ParallaxBackground and layers |
| Line2D/Polygon2D point manipulation |
| Path2D/Curve2D management and AnimatedSprite2D |
| Area2D queries and 2D point/shape intersections |
Advanced Animation (3 tools)
Tool | Description |
| AnimationTree state machine travel and params |
| AnimationPlayer seek/queue/speed/info control |
| SkeletonIK3D start/stop/set target position |
Advanced Audio (3 tools)
Tool | Description |
| Add/remove/configure audio bus effects |
| Create/remove/reorder audio buses and routing |
| Configure AudioStreamPlayer3D spatial properties |
Editor & Project Tools (12 tools)
Tool | Description |
| Rename or move a file within the project |
| Read or modify .tres/.res resource files |
| Create a GDScript file from a template |
| List/add/remove signal connections in .tscn files |
| List/set named layer definitions in project |
| List/enable/disable editor plugins |
| Create or read .gdshader files |
| Create/read/modify Theme .tres resources |
| Set the main scene in project.godot |
| Rename/duplicate/move nodes within .tscn scenes |
| List/add/remove translation files in project |
| Set/get locale and translate strings at runtime |
UI Controls (8 tools)
Tool | Description |
| Set focus, anchors, tooltip, mouse filter on Control |
| LineEdit/TextEdit/RichTextLabel text operations |
| Show/hide/popup for Popup/Dialog/Window nodes |
| Tree control: get/select/collapse/add/remove items |
| ItemList/OptionButton: get/select/add/remove items |
| TabContainer/TabBar: get/set current tab |
| PopupMenu/MenuBar: add/remove/get menu items |
| ProgressBar/Slider/SpinBox/ColorPicker get/set |
Rendering & Resources (2 tools)
Tool | Description |
| Get/set MSAA, FXAA, TAA, scaling mode/scale |
| Runtime resource load, save, or preload |
Requirements
Godot Engine (4.x recommended, 4.4+ for UID features)
Node.js >= 18.0.0
An AI assistant that supports MCP (Claude Code, Cline, Cursor, etc.)
Installation
git clone https://github.com/tugcantopaloglu/godot-mcp.git
cd godot-mcp
npm install
npm run buildConfiguration
Claude Code
Add to your Claude Code MCP settings:
{
"mcpServers": {
"godot": {
"command": "node",
"args": ["/absolute/path/to/godot-mcp/build/index.js"],
"env": {
"GODOT_PATH": "/path/to/godot",
"DEBUG": "true"
}
}
}
}Cline (VS Code)
Add to your Cline MCP settings (cline_mcp_settings.json):
{
"mcpServers": {
"godot": {
"command": "node",
"args": ["/absolute/path/to/godot-mcp/build/index.js"],
"disabled": false
}
}
}Cursor
Create .cursor/mcp.json in your project:
{
"mcpServers": {
"godot": {
"command": "node",
"args": ["/absolute/path/to/godot-mcp/build/index.js"]
}
}
}Runtime Tools Setup
To use the game_* runtime tools, your Godot project needs the MCP interaction server autoload. Copy build/scripts/mcp_interaction_server.gd to your project and register it as an autoload:
Copy
build/scripts/mcp_interaction_server.gdto your project's scripts folderIn Godot: Project > Project Settings > Autoload
Add the script with the name
McpInteractionServer
The server listens on 127.0.0.1:9090 and accepts JSON commands over TCP when the game is running.
Environment Variables
Variable | Description |
| Path to the Godot executable (overrides auto-detection) |
| Set to |
Architecture
The server uses two communication channels:
Headless CLI - For operations that don't need a running game (scene reading, modification, resource creation). Runs Godot with
--headless --script godot_operations.gd <operation> <json_params>.TCP Socket - For runtime interaction with a running game. The
mcp_interaction_server.gdautoload listens on port 9090 and processes JSON commands sent by the TypeScript MCP server.
Source layout
Path | Description |
| MCP server, tool definitions, and all handlers |
| Pure utility functions (parameter mapping, validation, error helpers) |
| Headless GDScript operations runner |
| TCP interaction server autoload |
| Vitest test suite |
Testing
The project uses Vitest with 390 tests across 3 files:
File | Tests | What it covers |
| 31 | Parameter mappings, normalization, path validation, error responses, version detection |
| 157 | All 149 tools defined, schemas valid, names unique, descriptions < 80 chars |
| 202 | Game command arg transforms, required-param validation, headless op path checks, source structure |
npm test # run once
npm run test:watch # watch modeExample Prompts
"Run my Godot project and check for errors"
"Eval this in my running game: return get_tree().current_scene.name"
"Get the player's position in the running game"
"Set the player's health to 100"
"Read the test_level.tscn scene and show me the node tree"
"Change the player's speed property in the player.tscn scene file"
"List all .gd files in my project"
"Connect the enemy's 'died' signal to the game manager's 'on_enemy_died' method"
"Tween the camera's position to (0, 10, -5) over 2 seconds with ease-out"
"Get performance metrics - what's my FPS and draw call count?"
"Pause the game and take a screenshot"
"Find all CharacterBody3D nodes in the scene"
"Create a new Godot project called 'MyGame' and write a player script"
"Hold down the W key for 2 seconds to test walking"
"Cast a ray from the player downward to check for ground"
"Get the camera position and move it to look at the player"
"Show me the latest error messages from the running game"License
This project is licensed under the MIT License - see the LICENSE file for details.
Credits
Original project: godot-mcp by Solomon Elias (Coding-Solo) - provided the foundational MCP server architecture, headless operations system, and TCP interaction framework
Extended by: Tugcan Topaloglu - extended to 149 tools covering networking, 3D/2D rendering, UI controls, audio effects, animation trees, file I/O, runtime code execution, node manipulation, signals, project creation, camera control, physics, and comprehensive type conversion
Available Tools
154 toolsadd_nodeC
Add a node to an existing scene
Inputs: nodeName (required), nodeType (required), scenePath (required), projectPath (required), +2 more.
attach_scriptB
Attach a GDScript to a scene node (headless)
Inputs: nodePath (required), scenePath (required), scriptPath (required), projectPath (required).
create_directoryC
Create a directory inside a Godot project
Inputs: projectPath (required), directoryPath (required).
create_projectB
Create a new Godot project from scratch
Inputs: projectName (required), projectPath (required).
create_resourceB
Create a .tres resource file (headless)
Inputs: projectPath (required), resourcePath (required), resourceType (required), properties.
create_sceneC
Create a new Godot scene file
Inputs: scenePath (required), projectPath (required), rootNodeType.
create_scriptB
Create a GDScript file from a template
Inputs: scriptPath (required), projectPath (required), source, extends, +2 more.
delete_fileB
Delete a file from a Godot project
Inputs: filePath (required), projectPath (required).
export_mesh_libraryB
Export a scene as a MeshLibrary resource
Inputs: scenePath (required), outputPath (required), projectPath (required), meshItemNames.
export_projectC
Export a Godot project using a preset
Inputs: outputPath (required), presetName (required), projectPath (required), debug.
game_3d_effectsB
Create ReflectionProbe, Decal, or FogVolume
Inputs: effectType (required), parentPath (required), name, size, +1 more.
game_add_collisionC
Add a collision shape to a physics body node
Inputs: shapeType (required), parentPath (required), disabled, shapeParams, +2 more.
game_animation_controlC
AnimationPlayer seek/queue/speed/info control
Inputs: action (required), nodePath (required), speed, position, +1 more.
game_animation_treeC
AnimationTree state machine travel and params
Inputs: action (required), nodePath (required), paramName, stateName, +1 more.
game_audio_busB
Set volume, mute, or solo on an audio bus
Inputs: mute, solo, volume, busName.
game_audio_bus_layoutC
Create/remove/reorder audio buses and routing
Inputs: action (required), index, sendTo, busName.
game_audio_effectC
Add/remove/configure audio bus effects
Inputs: action (required), index, busName, effectType, +1 more.
game_audio_playC
Play, stop, or pause an AudioStreamPlayer node
Inputs: nodePath (required), bus, pitch, action, +3 more.
game_audio_spatialC
Configure AudioStreamPlayer3D spatial properties
Inputs: action (required), nodePath (required), maxDb, unitSize, +2 more.
game_await_signalC
Await a signal with timeout and return args
Inputs: nodePath (required), signalName (required), timeout.
game_bone_poseB
Get or set bone poses on a Skeleton3D node
Inputs: nodePath (required), scale, action, boneName, +3 more.
game_call_methodB
Call a method on any node in the running game with optional arguments
Inputs: method (required), nodePath (required), args.
game_camera_attributesB
Configure DOF, exposure, auto-exposure on camera
Inputs: action, dofBlurFar, dofBlurNear, autoExposure, +3 more.
game_canvasC
Create/configure CanvasLayer and CanvasModulate
Inputs: action (required), name, color, layer, +2 more.
game_canvas_drawC
2D drawing: line/rect/circle/polygon/text/clear
Inputs: action (required), to, from, rect, +8 more.
game_change_sceneA
Switch to a different scene file in the running game
Inputs: scenePath (required).
game_clickA
Click at a position in the running Godot game window
Inputs: x (required), y (required), button.
game_connect_signalB
Connect a signal from one node to a method on another node in the running game
Inputs: method (required), nodePath (required), signalName (required), targetPath (required).
game_create_animationC
Create an animation with tracks and keyframes
Inputs: nodePath (required), animationName (required), length, tracks, +2 more.
game_create_jointC
Create a physics joint between two bodies
Inputs: jointType (required), parentPath (required), length, damping, +4 more.
game_create_timerC
Create a Timer node with configuration
Inputs: name, oneShot, waitTime, autostart, +1 more.
game_csgC
Create/configure CSG nodes with boolean operations
Inputs: action (required), name, size, height, +6 more.
game_debug_drawB
Draw debug lines, spheres, or boxes in 3D
Inputs: action (required), to, from, size, +4 more.
game_disconnect_signalB
Disconnect a signal connection in the running game
Inputs: method (required), nodePath (required), signalName (required), targetPath (required).
game_emit_signalA
Emit a signal on a node in the running game, optionally with arguments
Inputs: nodePath (required), signalName (required), args.
game_environmentC
Get or set environment and post-processing settings
Inputs: action, contrast, glowBloom, brightness, +15 more.
game_evalC
Execute GDScript in the running game. Use "return" for values.
Inputs: code (required).
game_find_nodes_by_classB
Find all nodes of a specific class type in the running game
Inputs: className (required), rootPath.
game_gamepadA
Send gamepad button or axis input event
Inputs: type (required), index (required), value (required), device.
game_get_audioB
Get audio bus layout and playing streams
Inputs: no named parameters.
game_get_cameraA
Get active camera position, rotation, and size
Inputs: no named parameters.
game_get_errorsA
Get new push_error/push_warning messages since last call
Inputs: no named parameters.
game_get_logsA
Get new print output from the running game since last call
Inputs: no named parameters.
game_get_node_infoB
Get node info: class, properties, signals, methods, children
Inputs: nodePath (required).
game_get_nodes_in_groupA
Get all nodes belonging to a specific group in the running game
Inputs: group (required).
game_get_propertyB
Get a property value from any node in the running game by its path
Inputs: nodePath (required), property (required).
game_get_scene_treeB
Get scene tree structure of the running game
Inputs: no named parameters.
game_get_uiB
Get visible UI elements from the running game
Inputs: no named parameters.
game_giB
Create/configure VoxelGI or LightmapGI
Inputs: giType (required), parentPath (required), name, size.
game_gridmapC
GridMap set/get/clear cells and query used cells
Inputs: action (required), nodePath (required), x, y, +3 more.
game_http_requestB
HTTP GET/POST/PUT/DELETE with headers and body
Inputs: url (required), body, method, headers, +1 more.
game_input_actionC
Manage runtime InputMap actions and strength
Inputs: action (required), key, strength, actionName.
game_input_stateC
Query pressed keys, mouse position, connected pads
Inputs: x, y, action, mouseMode.
game_instantiate_sceneA
Load a PackedScene and add it as a child of a node in the running game
Inputs: scenePath (required), parentPath.
game_key_holdA
Hold a key down without auto-releasing
Inputs: key, action.
game_key_pressC
Send a key press or input action to the running game
Inputs: key, action, pressed.
game_key_releaseA
Release a previously held key
Inputs: key, action.
game_light_2dB
Create/configure 2D lights and light occluders
Inputs: action (required), name, color, range, +3 more.
game_light_3dB
Create/configure 3D lights (directional/omni/spot)
Inputs: action (required), name, color, range, +6 more.
game_list_signalsC
List all signals on a node with connections
Inputs: nodePath (required).
game_localeB
Set/get locale and translate strings at runtime
Inputs: action (required), key, locale.
game_manage_groupC
Add or remove a node from a group, or list groups
Inputs: action (required), group, nodePath.
game_mesh_instanceC
Create MeshInstance3D with primitive meshes
Inputs: meshType (required), parentPath (required), name, size, +3 more.
game_mouse_dragC
Drag mouse between two points over N frames
Inputs: toX (required), toY (required), fromX (required), fromY (required), +2 more.
game_mouse_moveB
Move the mouse in the running Godot game
Inputs: x (required), y (required), relative_x, relative_y.
game_multimeshB
Create/configure MultiMeshInstance3D for instancing
Inputs: action (required), name, count, index, +4 more.
game_multiplayerC
ENet multiplayer create server/client/disconnect
Inputs: action (required), port, address, maxClients.
game_os_infoA
Get platform, locale, screen, adapter, memory info
Inputs: no named parameters.
game_parallaxB
Create/configure ParallaxBackground and layers
Inputs: action (required), name, nodePath, mirroring, +3 more.
game_path_2dD
Path2D/Curve2D management and AnimatedSprite2D
Inputs: action (required), name, point, points, +2 more.
game_path_3dB
Create Path3D/Curve3D and manage curve points
Inputs: action (required), name, point, points, +2 more.
game_pauseB
Pause or unpause the running game
Inputs: paused.
game_performanceA
Get performance metrics (FPS, memory, draw calls)
Inputs: no named parameters.
game_physics_2dC
Area2D queries and 2D point/shape intersections
Inputs: action (required), to, from, nodePath, +1 more.
game_physics_3dC
Area3D queries and point/shape intersection tests
Inputs: action (required), to, from, nodePath, +1 more.
game_physics_bodyC
Configure physics body properties (mass, velocity, etc.)
Inputs: nodePath (required), mass, bounce, freeze, +7 more.
game_play_animationB
Control an AnimationPlayer node: play, stop, pause, or list animations
Inputs: nodePath (required), action, animation.
game_procedural_meshC
Generate meshes via ArrayMesh from vertex data
Inputs: vertices (required), parentPath (required), uvs, name, +2 more.
game_process_modeC
Set node process mode (pausable/always/disabled)
Inputs: mode (required), nodePath (required).
game_raycastB
Cast a ray and return collision results
Inputs: to (required), from (required), collisionMask.
game_remove_nodeB
Remove and free a node from the running game's scene tree
Inputs: nodePath (required).
game_render_settingsC
Get/set MSAA, FXAA, TAA, scaling mode/scale
Inputs: taa, fxaa, action, msaa2d, +3 more.
game_reparent_nodeA
Move a node to a new parent in the running game's scene tree
Inputs: nodePath (required), newParentPath (required), keepGlobalTransform.
game_resourceC
Runtime resource load, save, or preload
Inputs: path (required), action (required), nodePath, property.
game_rpcC
Call or configure RPC methods on nodes
Inputs: action (required), method (required), nodePath (required), args, +3 more.
game_screenshotA
Screenshot the running game (returns base64 PNG)
Inputs: no named parameters.
game_scriptC
Attach, detach, or get source of node scripts
Inputs: action (required), nodePath (required), source, className.
game_scrollC
Send mouse scroll wheel event at position
Inputs: x (required), y (required), amount, direction.
game_serialize_stateC
Save or load node tree state as JSON
Inputs: data, action, maxDepth, nodePath.
game_set_cameraC
Move or rotate the active camera
Inputs: fov, zoom, position, rotation.
game_set_particlesC
Configure GPUParticles2D/3D node properties
Inputs: nodePath (required), amount, oneShot, emitting, +5 more.
game_set_propertyC
Set a property on a node in the running game
Inputs: value (required), nodePath (required), property (required), typeHint.
game_set_shader_paramC
Set a shader parameter on a node's material
Inputs: value (required), nodePath (required), paramName (required), typeHint.
game_shape_2dC
Line2D/Polygon2D point manipulation
Inputs: action (required), nodePath (required), color, point, +2 more.
game_skeleton_ikC
SkeletonIK3D start/stop/set target position
Inputs: action (required), nodePath (required), target.
game_skyC
Create/configure Sky with procedural/physical sky
Inputs: action (required), skyType, topColor, sunEnergy, +2 more.
game_spawn_nodeB
Create a new node of any type at runtime
Inputs: type (required), name, parentPath, properties.
game_terrainC
Create/modify terrain meshes from heightmap data
Inputs: action (required), x, z, name, +9 more.
game_tilemapB
Get or set cells in a TileMapLayer node
Inputs: action (required), nodePath (required), x, y, +2 more.
game_time_scaleC
Get/set Engine.time_scale and timing info
Inputs: action, timeScale.
game_touchC
Simulate touch press/release/drag and gestures
Inputs: x (required), y (required), action (required), toX, +3 more.
game_tween_propertyC
Tween a node property in the running game
Inputs: nodePath (required), property (required), finalValue (required), duration, +2 more.
game_ui_controlB
Set focus, anchors, tooltip, mouse filter on Control
Inputs: action (required), nodePath (required), minSize, tooltip, +2 more.
game_ui_item_listB
ItemList/OptionButton: get/select/add/remove items
Inputs: action (required), nodePath (required), text, index.
game_ui_popupB
Show/hide/popup for Popup/Dialog/Window nodes
Inputs: action (required), nodePath (required), size, text, +1 more.
game_ui_rangeC
ProgressBar/Slider/SpinBox/ColorPicker get/set
Inputs: action (required), nodePath (required), step, color, +3 more.
game_ui_tabsC
TabContainer/TabBar: get/set current tab
Inputs: action (required), nodePath (required), index, title.
game_ui_textB
LineEdit/TextEdit/RichTextLabel text operations
Inputs: action (required), nodePath (required), text, selectionTo, +2 more.
game_ui_themeC
Apply theme overrides to a Control node
Inputs: nodePath (required), overrides (required).
game_ui_treeB
Tree control: get/select/collapse/add/remove items
Inputs: action (required), nodePath (required), text, column, +1 more.
game_videoB
Video playback control: play, pause, stop, seek on VideoStreamPlayer
Inputs: action (required), loop, name, volume, +5 more.
game_viewportC
Create or configure a SubViewport node
Inputs: msaa, name, width, action, +4 more.
game_visual_shaderC
Create and edit VisualShader graphs: add/connect/disconnect nodes
Inputs: action (required), toNode, toPort, fromNode, +6 more.
game_waitB
Wait N frames in the running game
Inputs: frames.
game_websocketC
WebSocket client connect/disconnect/send messages
Inputs: action (required), url, message.
game_windowC
Get/set window size, fullscreen, title, position
Inputs: title, vsync, width, action, +4 more.
game_world_settingsC
Get/set gravity, physics FPS, and world settings
Inputs: action, gravity, physicsFps, gravityDirection.
get_debug_outputB
Get the current debug output and errors
Inputs: no named parameters.
get_godot_versionA
Get the installed Godot version
Inputs: no named parameters.
get_project_infoC
Retrieve metadata about a Godot project
Inputs: projectPath (required).
get_uidB
Get the UID for a specific file in a Godot project (for Godot 4.4+)
Inputs: filePath (required), projectPath (required).
launch_editorB
Launch Godot editor for a specific project
Inputs: projectPath (required).
list_project_filesB
List project files, optionally filtered by extension
Inputs: projectPath (required), extensions, subdirectory.
list_projectsA
List Godot projects in a directory
Inputs: directory (required), recursive.
load_spriteC
Load a sprite into a Sprite2D node
Inputs: nodePath (required), scenePath (required), projectPath (required), texturePath (required).
manage_autoloadsB
Add, remove, or list autoloads in a Godot project
Inputs: action (required), projectPath (required), name, path.
manage_ci_pipelineB
Create/read GitHub Actions workflow for automated Godot exports
Inputs: action (required), projectPath (required), platforms, godotVersion.
manage_docker_exportC
Create Dockerfile for headless Godot export
Inputs: action (required), projectPath (required), baseImage, exportPreset, +1 more.
manage_export_presetsC
Create or modify export preset configuration
Inputs: action (required), projectPath (required), name, platform, +1 more.
manage_input_mapC
Add, remove, or list input actions and bindings
Inputs: action (required), projectPath (required), key, deadzone, +1 more.
manage_layersC
List/set named layer definitions in project
Inputs: action (required), projectPath (required), name, layer, +1 more.
manage_pluginsC
List/enable/disable editor plugins
Inputs: action (required), projectPath (required), pluginName.
manage_resourceC
Read or modify .tres/.res resource files
Inputs: action (required), projectPath (required), resourcePath (required), properties.
manage_scene_signalsB
List/add/remove signal connections in .tscn files
Inputs: action (required), scenePath (required), projectPath (required), method, +3 more.
manage_scene_structureC
Rename/duplicate/move nodes within .tscn scenes
Inputs: action (required), nodePath (required), scenePath (required), projectPath (required), +2 more.
manage_shaderC
Create or read .gdshader files
Inputs: action (required), shaderPath (required), projectPath (required), source, +1 more.
manage_theme_resourceB
Create/read/modify Theme .tres resources
Inputs: action (required), projectPath (required), resourcePath (required), properties.
manage_translationsC
List/add/remove translation files in project
Inputs: action (required), projectPath (required), translationPath.
modify_project_settingsC
Modify a project.godot setting
Inputs: key (required), value (required), section (required), projectPath (required).
modify_scene_nodeA
Modify node properties in a scene file (headless)
Inputs: nodePath (required), scenePath (required), properties (required), projectPath (required).
read_fileC
Read a text file from a Godot project
Inputs: filePath (required), projectPath (required).
read_project_settingsA
Read project.godot as structured JSON
Inputs: projectPath (required).
read_sceneB
Read scene file as JSON node tree (headless)
Inputs: scenePath (required), projectPath (required).
remove_scene_nodeB
Remove a node from a scene file (headless)
Inputs: nodePath (required), scenePath (required), projectPath (required).
rename_fileB
Rename or move a file within the project
Inputs: newPath (required), filePath (required), projectPath (required).
run_projectB
Run the Godot project and capture output
Inputs: projectPath (required), scene.
save_sceneC
Save changes to a scene file
Inputs: scenePath (required), projectPath (required), newPath.
set_main_sceneC
Set the main scene in project.godot
Inputs: scenePath (required), projectPath (required).
stop_projectA
Stop the currently running Godot project
Inputs: no named parameters.
update_project_uidsA
Update UID references by resaving resources (4.4+)
Inputs: projectPath (required).
write_fileA
Create or overwrite a text file in a Godot project
Inputs: content (required), filePath (required), projectPath (required).
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 154 tools
With 154 tools, many have highly overlapping scopes: game_spawn_node vs add_node vs game_instantiate_scene, modify_scene_node vs manage_scene_structure, and a dense cluster of game_audio_* and game_ui_* tools. While individual descriptions clarify some boundaries, the sheer number of similar runtime manipulation tools makes misselection likely.
Tool names follow three recognizable conventions: game_* for runtime actions, manage_* for project/config operations, and bare verb_noun for scene/file editing. Although consistently snake_case, the mixing of prefixes and standalone verbs like export_mesh_library or update_project_uids prevents a single predictable pattern.
154 tools is far beyond typical MCP server scope and will overwhelm agents with too many options. Even a comprehensive Godot toolkit does not justify this extreme count, as many features could be consolidated or exposed through fewer, broader tools.
The tool surface is exceptionally broad, covering project management, scene editing, runtime game control, input simulation, UI interaction, physics, audio, rendering, animation, and export. There are no obvious dead ends or missing operations for the implied Godot development workflow.
Maintenance
Related MCP Connectors
Make games with AI: one MCP server that connects your agent to Unity, Unreal and Godot editors.
A comprehensive Model Context Protocol (MCP) server that enables AI assistants to control Unreal E…
An MCP server that gives your AI access to the source code and docs of all public github repos
Nifty's MCP server — exposes tasks, projects, messages, and files as tools for AI agents.
Related MCP Servers
- AlicenseAqualityDmaintenanceAn MCP server that gives AI assistants direct control over Godot 4 game development projects. It enables launching the editor, running projects, creating and editing scenes, writing GDScript, and inspecting assets through natural language commands.4414 npm4MIT
- AlicenseAqualityDmaintenanceAn MCP server that enables AI assistants to directly run, inspect, modify, and debug Godot game development projects through 110+ tools covering scenes, scripts, resources, runtime debugging, and asset management.3321 npm3MIT
- AlicenseCqualityCmaintenanceAn MCP server providing AI assistants with 149 tools to fully control the Godot game engine, including runtime code execution, scene manipulation, physics, audio, networking, animation, and more.10098 npm510MIT
- AlicenseAqualityDmaintenanceAn MCP server that gives AI assistants full control over the Godot game engine, enabling scene building, script writing, game running, and more through natural language.75187 npm8MIT