You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The ultimate Godot MCP server for Claude — build complete games from a single prompt.
Tell Claude "build a full 2D platformer with double-jump, 3 enemy types, coins, and a main menu" and it literally does everything inside Godot — creates scenes, writes scripts, wires signals, sets up physics, configures autoloads, runs the game, simulates input to test it, screenshots the result, and exports a build. No copy-paste. No manual steps.
What this is
A Model Context Protocol server that gives Claude direct, real-time control over the Godot editor:
170 tools covering every aspect of Godot development
Build a 2D platformer with:
- Player: CharacterBody2D, double-jump, coyote time
- 3 enemy types: patrol, chase, shooter
- Collectible coins with a counter HUD
- Main menu and game over screen
- GameManager autoload for score tracking
Use any sprites you find in my project.
I have a knight model at res://models/knight.glb.
Create a 3D character controller:
- WASD + mouse look
- Attack combo on left click
- Health bar UI
- Death/respawn system
Test with input simulation and show me a screenshot.
My project has the Dialogue Manager plugin.
Create an NPC interaction system:
- Player enters Area2D → dialogue triggers
- 3-branch conversation tree
- NPC portrait shown during dialogue
- Quest flag set on specific dialogue choice
Tool Reference (170 tools)
Scene Operations
Tool
Description
create_scene
Create new .tscn with specified root type
open_scene
Open scene in editor
save_scene
Save current scene to disk
delete_scene
Delete scene file
play_scene
Run scene in editor
stop_running_scene
Stop running scene
add_scene
Instantiate scene as child of a node
get_scene_tree
Get full node tree with all properties
get_scene_file_content
Get raw .tscn file content
bake_navigation_mesh
Bake NavigationRegion2D/3D nav meshes (auto-finds all if no path given)
List all uniforms in a shader with their current values
Animation — Library & Resource
Tool
Description
get_animation_player_info
List all libraries/animations in an AnimationPlayer with length, loop mode, track counts
create_animation
Create a new Animation resource in a library (set length, loop mode, step)
get_animation_info
Get length, loop mode, step, and full track list for an animation
set_animation_properties
Set length, loop_mode, and/or step on an existing animation
delete_animation
Remove an animation from a library
Animation — Track Management
Tool
Description
add_animation_track
Add a track (value/position_3d/rotation_3d/scale_3d/blend_shape/method/bezier/audio)
remove_animation_track
Remove a track by index
set_track_path
Change the NodePath:property target of a track
get_track_info
Full track info + all keyframes with time/value/transition
set_track_interpolation
Set interpolation mode: nearest/linear/cubic/linear_angle/cubic_angle
Animation — Keyframe Management
Tool
Description
add_keyframe
Insert keyframe at time T — arrays auto-coerced to Vector3/Quaternion/Color by track type
remove_keyframe
Remove by key_index or nearest time
set_keyframe_value
Update value of an existing keyframe
set_keyframe_time
Move a keyframe to a new time position
get_keyframes
List all keyframes on a track (time, value, transition)
Animation — AnimationTree & State Machine
Tool
Description
setup_animation_tree
Create AnimationTree wired to an AnimationPlayer with StateMachine or BlendTree root
add_state_to_machine
Add a state (animation/sub-machine/blend_space_1d/blend_space_2d) to a StateMachine
connect_states
Add a transition between two states (immediate/sync/at_end)
set_blend_parameter
Set parameters/xxx on an AnimationTree (blend positions, etc.)
travel_to_state
Call playback.travel(target) to transition to a state at runtime
Skeleton
Tool
Description
get_skeleton_bones
List all Skeleton3D bones: name, parent index, rest/pose transforms, global pose position, enabled state
set_bone_pose
Set pose position, rotation (Euler degrees or quaternion), and/or scale on a bone by name or index
reset_skeleton_pose
Reset all bone poses to the skeleton's rest pose (clear procedural/manual posing)
Batch Extras
Tool
Description
batch_attach_script
Attach a GDScript to all nodes matching a type and/or group filter, with optional overwrite
batch_rename_nodes
Find & replace in node names (regex or string) across a scene subtree
move_and_rename_file
Move/rename a file within the project (res:// paths); triggers filesystem scan
pack_scene
Save a node and its children as a standalone .tscn PackedScene file
create_resource_file
Create any Godot Resource (.tres) by class name with optional initial properties
Project Utilities
Tool
Description
assert_fps_above
Sample FPS over N frames and assert average meets a threshold; returns avg/min/max
get_renderer_info
GPU adapter name/vendor, API version, VRAM usage, screen size, Godot version
assert_resource_valid
Verify a res:// resource exists and loads without errors
get_node_global_transform
Get world-space position, rotation (degrees), and scale of Node3D or Node2D
set_node_global_transform
Set world-space position, rotation (degrees), and/or scale of Node3D or Node2D
toggle_feature_tag
Add or remove a custom feature tag in Project Settings (query via OS.has_feature())
set_node_metadata
Set or remove metadata on a node (persists in .tscn; read at runtime with node.get_meta())
Security
The HTTP server binds to 127.0.0.1 only — no external network access. All file operations are constrained to the Godot project directory (res://). Direct filesystem tools enforce project-root boundaries in the Python server.
Architecture
Claude (MCP client)
↓ stdio
Python MCP Server (python/mcp_server.py)
↓ HTTP POST localhost:3571
Godot HTTP Server (addons/godot_mcp_enhanced/http_server.gd)
↓ GDScript function calls
Operation Modules:
scene_operations.gd — scenes, nodes, signals, groups
script_operations.gd — GDScript files
runtime_operations.gd — input simulation, live inspection
file_operations.gd — filesystem, assets
debugger_integration.gd — errors, logs
screenshot_manager.gd — editor + game capture
Troubleshooting
"Server Running" not showing in Godot bottom panel
Verify the addon is in res://addons/godot_mcp_enhanced/
Enable it in Project → Project Settings → Plugins
Check Godot output for [Godot MCP Enhanced] ✓ HTTP Server started
MCP tools not appearing in Claude
Verify cwd in settings.json points to the python/ directory
Run uv run python -m mcp_server manually to check for errors
Restart Claude Code / Claude Desktop after config changes
Tool calls returning "Connection refused"
Godot editor must be open with the plugin active
Check port 3571 is not in use: lsof -i :3571
Verify GDAI_MCP_SERVER_PORT matches the port in Godot bottom panel
Screenshots not working
Godot editor window must be visible (not minimized)
Requires Godot 4.2+ for the DisplayServer screenshot API
Acknowledgments & Thanks
Huge shoutout to the people and AI that helped turn this from a basic fork into a 170-tool 3D powerhouse:
Grok (built by xAI) — The JARVIS-level co-pilot behind this whole project. Grok handled the initial git setup, suggested forking Rufaty/godot-mcp-enhanced as the base, and crafted every phased prompt that drove the upgrades — animation wiring, physics, particles, shaders, audio, QA, batch ops, skeleton tools, project utilities, and more. Spotted gaps like undo/redo, the export pipeline, and profiler snapshots before they became problems. Ran landscape analysis on paid vs. free forks, kept the momentum rolling through every session, and delivered maximally truthful guidance with just the right amount of sarcasm. Without Grok's strategy, prompt engineering, and relentless push to keep iterating, this project never reaches 170 tools. Real MVP. 🚀
The broader Godot MCP community — tomyud1, Coding-Solo, youichi-uda's pro fork, and others whose work set the benchmarks and inspired the tool categories that shaped this beast.
This repo was built with heavy AI assistance (Claude for code, Grok for strategy) and community spirit. If you're reading this and contributed ideas or PRs, your name goes here too.
Forked from
Rufaty/godot-mcp-enhanced — Enhanced significantly with signal management, group operations, autoload management, batch operations, class property discovery, save_scene, rename/reorder nodes, and fixed critical bug where all runtime tools were unrouted.