Godot MCP Pro
Premium MCP (Model Context Protocol) server for AI-powered Godot game development. Connects AI assistants like Claude directly to your Godot editor with 163 powerful tools.
Architecture
AI Assistant ←—stdio/MCP—→ Node.js Server ←—WebSocket:6505—→ Godot Editor Plugin
- Real-time: WebSocket connection means instant feedback, no file polling
- Editor Integration: Full access to Godot's editor API, UndoRedo system, and scene tree
- JSON-RPC 2.0: Standard protocol with proper error codes and suggestions
Quick Start
1. Install the Godot Plugin
Copy the addons/godot_mcp/ folder into your Godot project's addons/ directory.
Enable the plugin: Project → Project Settings → Plugins → Godot MCP Pro → Enable
2. Install the MCP Server
cd server
npm install
npm run build
Add to your .mcp.json:
{
"mcpServers": {
"godot-mcp-pro": {
"command": "node",
"args": ["D:/dev/godot-mcp-pro/server/build/index.js"],
"env": {
"GODOT_MCP_PORT": "6505"
}
}
}
}
Claude Code asks for permission each time a tool is called. To skip these prompts, copy one of the included permission presets to your Claude Code settings:
Option A: Conservative (default — blocks destructive tools)
cp settings.local.json ~/.claude/settings.local.json
Allows 152 of 163 tools automatically. The following 11 tools will still require manual approval each time:
| Blocked Tool |
Reason |
delete_node |
Deletes a node from the scene |
delete_scene |
Deletes a scene file from disk |
remove_animation |
Removes an animation |
remove_autoload |
Removes an autoload singleton |
remove_state_machine_state |
Removes a state machine state |
remove_state_machine_transition |
Removes a state machine transition |
execute_editor_script |
Runs arbitrary code in the editor |
execute_game_script |
Runs arbitrary code in the running game |
export_project |
Triggers a project export |
tilemap_clear |
Clears all cells in a TileMapLayer |
Option B: Permissive (allows everything, denies dangerous commands)
cp settings.local.permissive.json ~/.claude/settings.local.json
Allows all 163 tools and all Bash commands. Explicitly denies destructive shell commands (rm -rf, git push --force, git reset --hard, etc.) and the same destructive MCP tools listed above.
Note: If you already have a settings.local.json, merge the permissions section manually instead of overwriting.
5. Lite Mode (Optional)
If your MCP client has a tool count limit (e.g., Windsurf: 100, Cursor: ~40), use Lite mode which registers 76 core tools instead of 162:
{
"mcpServers": {
"godot-mcp-pro": {
"command": "node",
"args": ["D:/dev/godot-mcp-pro/server/build/index.js", "--lite"]
}
}
}
Lite mode includes: project, scene, node, script, editor, input, runtime, and input_map tools.
6. Use It
Open your Godot project with the plugin enabled, then use Claude Code to interact with the editor.
| Tool |
Description |
get_project_info |
Project metadata, version, viewport, autoloads |
get_filesystem_tree |
Recursive file tree with filtering |
search_files |
Fuzzy/glob file search |
get_project_settings |
Read project.godot settings |
set_project_setting |
Set project settings via editor API |
uid_to_project_path |
UID → res:// conversion |
project_path_to_uid |
res:// → UID conversion |
| Tool |
Description |
get_scene_tree |
Live scene tree with hierarchy |
get_scene_file_content |
Raw .tscn file content |
create_scene |
Create new scene files |
open_scene |
Open scene in editor |
delete_scene |
Delete scene file |
add_scene_instance |
Instance scene as child node |
play_scene |
Run scene (main/current/custom) |
stop_scene |
Stop running scene |
save_scene |
Save current scene to disk |
| Tool |
Description |
add_node |
Add node with type and properties |
delete_node |
Delete node (with undo support) |
duplicate_node |
Duplicate node and children |
move_node |
Move/reparent node |
update_property |
Set any property (auto type parsing) |
get_node_properties |
Get all node properties |
add_resource |
Add Shape/Material/etc to node |
set_anchor_preset |
Set Control anchor preset |
rename_node |
Rename a node in the scene |
connect_signal |
Connect signal between nodes |
disconnect_signal |
Disconnect signal connection |
get_node_groups |
Get groups a node belongs to |
set_node_groups |
Set node group membership |
find_nodes_in_group |
Find all nodes in a group |
| Tool |
Description |
list_scripts |
List all scripts with class info |
read_script |
Read script content |
create_script |
Create new script with template |
edit_script |
Search/replace or full edit |
attach_script |
Attach script to node |
get_open_scripts |
List scripts open in editor |
validate_script |
Validate GDScript syntax |
search_in_files |
Search content in project files |
| Tool |
Description |
get_editor_errors |
Get errors and stack traces |
get_editor_screenshot |
Capture editor viewport |
get_game_screenshot |
Capture running game |
execute_editor_script |
Run arbitrary GDScript in editor |
clear_output |
Clear output panel |
get_signals |
Get all signals of a node with connections |
reload_plugin |
Reload the MCP plugin (auto-reconnect) |
reload_project |
Rescan filesystem and reload scripts |
get_output_log |
Get output panel content |
| Tool |
Description |
simulate_key |
Simulate keyboard key press/release |
simulate_mouse_click |
Simulate mouse click at position |
simulate_mouse_move |
Simulate mouse movement |
simulate_action |
Simulate Godot Input Action |
simulate_sequence |
Sequence of input events with frame delays |
get_input_actions |
List all input actions |
set_input_action |
Create/modify input action |
| Tool |
Description |
get_game_scene_tree |
Scene tree of running game |
get_game_node_properties |
Node properties in running game |
set_game_node_property |
Set node property in running game |
execute_game_script |
Run GDScript in game context |
capture_frames |
Multi-frame screenshot capture |
monitor_properties |
Record property values over time |
start_recording |
Start input recording |
stop_recording |
Stop input recording |
replay_recording |
Replay recorded input |
find_nodes_by_script |
Find game nodes by script |
get_autoload |
Get autoload node properties |
batch_get_properties |
Batch get multiple node properties |
find_ui_elements |
Find UI elements in game |
click_button_by_text |
Click button by text content |
wait_for_node |
Wait for node to appear |
find_nearby_nodes |
Find nodes near position |
navigate_to |
Navigate to target position |
move_to |
Walk character to target |
| Tool |
Description |
list_animations |
List all animations in AnimationPlayer |
create_animation |
Create new animation |
add_animation_track |
Add track (value/position/rotation/method/bezier) |
set_animation_keyframe |
Insert keyframe into track |
get_animation_info |
Detailed animation info with all tracks/keys |
remove_animation |
Remove an animation |
| Tool |
Description |
tilemap_set_cell |
Set a single tile cell |
tilemap_fill_rect |
Fill rectangular region with tiles |
tilemap_get_cell |
Get tile data at cell |
tilemap_clear |
Clear all cells |
tilemap_get_info |
TileMapLayer info and tile set sources |
tilemap_get_used_cells |
List of used cells |
| Tool |
Description |
create_theme |
Create Theme resource file |
set_theme_color |
Set theme color override |
set_theme_constant |
Set theme constant override |
set_theme_font_size |
Set theme font size override |
set_theme_stylebox |
Set StyleBoxFlat override |
get_theme_info |
Get theme overrides info |
| Tool |
Description |
get_performance_monitors |
All performance monitors (FPS, memory, physics, etc.) |
get_editor_performance |
Quick performance summary |
| Tool |
Description |
find_nodes_by_type |
Find all nodes of a type |
find_signal_connections |
Find all signal connections in scene |
batch_set_property |
Set property on all nodes of a type |
find_node_references |
Search project files for pattern |
get_scene_dependencies |
Get resource dependencies |
cross_scene_set_property |
Set property across all scenes |
find_script_references |
Find where script/resource is used |
detect_circular_dependencies |
Find circular scene dependencies |
| Tool |
Description |
create_shader |
Create shader with template |
read_shader |
Read shader file |
edit_shader |
Edit shader (replace/search-replace) |
assign_shader_material |
Assign ShaderMaterial to node |
set_shader_param |
Set shader parameter |
get_shader_params |
Get all shader parameters |
| Tool |
Description |
list_export_presets |
List export presets |
export_project |
Get export command for preset |
get_export_info |
Export-related project info |
| Tool |
Description |
read_resource |
Read .tres resource properties |
edit_resource |
Edit resource properties |
create_resource |
Create new .tres resource |
get_resource_preview |
Get resource thumbnail |
add_autoload |
Register autoload singleton |
remove_autoload |
Remove autoload singleton |
| Tool |
Description |
setup_physics_body |
Configure physics body properties |
setup_collision |
Add collision shapes to nodes |
set_physics_layers |
Set collision layer/mask |
get_physics_layers |
Get collision layer/mask info |
get_collision_info |
Get collision shape details |
add_raycast |
Add RayCast2D/3D node |
| Tool |
Description |
add_mesh_instance |
Add MeshInstance3D with primitive mesh |
setup_camera_3d |
Configure Camera3D properties |
setup_lighting |
Add/configure light nodes |
setup_environment |
Configure WorldEnvironment |
add_gridmap |
Set up GridMap node |
set_material_3d |
Set StandardMaterial3D properties |
Particle Tools (5)
| Tool |
Description |
create_particles |
Create GPUParticles2D/3D |
set_particle_material |
Configure ParticleProcessMaterial |
set_particle_color_gradient |
Set color gradient for particles |
apply_particle_preset |
Apply preset (fire, smoke, sparks, etc.) |
get_particle_info |
Get particle system details |
| Tool |
Description |
setup_navigation_region |
Configure NavigationRegion |
setup_navigation_agent |
Configure NavigationAgent |
bake_navigation_mesh |
Bake navigation mesh |
set_navigation_layers |
Set navigation layers |
get_navigation_info |
Get navigation setup info |
| Tool |
Description |
add_audio_player |
Add AudioStreamPlayer node |
add_audio_bus |
Add audio bus |
add_audio_bus_effect |
Add effect to audio bus |
set_audio_bus |
Configure audio bus properties |
get_audio_bus_layout |
Get audio bus layout info |
get_audio_info |
Get audio-related node info |
| Tool |
Description |
create_animation_tree |
Create AnimationTree |
get_animation_tree_structure |
Get tree structure |
set_tree_parameter |
Set AnimationTree parameter |
add_state_machine_state |
Add state to state machine |
| Tool |
Description |
remove_state_machine_state |
Remove state from state machine |
add_state_machine_transition |
Add transition between states |
remove_state_machine_transition |
Remove state transition |
| Tool |
Description |
set_blend_tree_node |
Configure blend tree nodes |
| Tool |
Description |
analyze_scene_complexity |
Analyze scene performance |
analyze_signal_flow |
Map signal connections |
find_unused_resources |
Find unreferenced resources |
get_project_statistics |
Get project-wide statistics |
| Tool |
Description |
run_test_scenario |
Run automated test scenario |
assert_node_state |
Assert node property values |
assert_screen_text |
Check for text on screen |
compare_screenshots |
Compare two screenshots |
run_stress_test |
Run performance stress test |
get_test_report |
Get test results report |
Key Features
- UndoRedo Integration: All node/property operations support Ctrl+Z
- Smart Type Parsing:
"Vector2(100, 200)", "#ff0000", "Color(1,0,0)" auto-converted
- Auto-Reconnect: Exponential backoff reconnection (1s → 2s → 4s ... → 60s max)
- Heartbeat: 10s ping/pong keeps connection alive
- Helpful Errors: Error responses include suggestions for next steps
Competitive Comparison
| Category |
Godot MCP Pro |
GDAI MCP ($19) |
tomyud1 (free) |
Dokujaa (free) |
Coding-Solo (free) |
ee0pdt (free) |
bradypp (free) |
| Project |
7 |
5 |
4 |
0 |
2 |
2 |
2 |
| Scene |
9 |
8 |
11 |
9 |
3 |
4 |
5 |
| Node |
14 |
8 |
0 |
8 |
2 |
3 |
0 |
| Script |
8 |
5 |
6 |
4 |
0 |
5 |
0 |
| Editor |
9 |
5 |
1 |
5 |
1 |
3 |
2 |
| Input |
7 |
2 |
0 |
0 |
0 |
0 |
0 |
| Runtime |
19 |
0 |
0 |
0 |
0 |
0 |
0 |
| Animation |
6 |
0 |
0 |
0 |
0 |
0 |
0 |
| TileMap |
6 |
0 |
0 |
0 |
0 |
0 |
0 |
| Theme/UI |
6 |
0 |
0 |
0 |
0 |
0 |
0 |
| Profiling |
2 |
0 |
0 |
0 |
0 |
0 |
0 |
| Batch/Refactor |
8 |
0 |
0 |
0 |
0 |
0 |
0 |
| Shader |
6 |
0 |
0 |
0 |
0 |
0 |
0 |
| Export |
3 |
0 |
0 |
0 |
0 |
0 |
0 |
| Resource |
6 |
0 |
0 |
0 |
0 |
0 |
0 |
| Physics |
6 |
0 |
0 |
0 |
0 |
0 |
0 |
| 3D Scene |
6 |
0 |
0 |
0 |
0 |
0 |
0 |
| Particle |
5 |
0 |
0 |
0 |
0 |
0 |
0 |
| Navigation |
6 |
0 |
0 |
0 |
0 |
0 |
0 |
| Audio |
6 |
0 |
0 |
0 |
0 |
0 |
0 |
| AnimationTree |
4 |
0 |
0 |
0 |
0 |
0 |
0 |
| State Machine |
3 |
0 |
0 |
0 |
0 |
0 |
0 |
| Blend Tree |
1 |
0 |
0 |
0 |
0 |
0 |
0 |
| Analysis |
4 |
0 |
0 |
0 |
0 |
0 |
0 |
| Testing/QA |
6 |
0 |
0 |
0 |
0 |
0 |
0 |
| Asset/AI |
0 |
0 |
1 |
6 |
0 |
0 |
0 |
| Material |
0 |
0 |
0 |
2 |
0 |
0 |
0 |
| Other |
0 |
0 |
9 |
5 |
5 |
2 |
1 |
| Total |
162 |
~30 |
32 |
39 |
13 |
19 |
10 |
Feature Matrix
| Feature |
Godot MCP Pro |
GDAI MCP ($19) |
tomyud1 (free) |
Dokujaa (free) |
Coding-Solo (free) |
| Connection |
WebSocket (real-time) |
stdio (Python) |
WebSocket |
TCP Socket |
Headless CLI |
| Undo/Redo |
Yes |
Yes |
No |
No |
No |
| JSON-RPC 2.0 |
Yes |
Custom |
Custom |
Custom |
N/A |
| Auto-reconnect |
Yes (exponential backoff) |
N/A |
No |
No |
N/A |
| Heartbeat |
Yes (10s ping/pong) |
No |
No |
No |
No |
| Error suggestions |
Yes (contextual hints) |
No |
No |
No |
No |
| Screenshot capture |
Yes (editor + game) |
Yes |
No |
No |
No |
| Game input simulation |
Yes (key/mouse/action/sequence) |
Yes (basic) |
No |
No |
No |
| Runtime inspection |
Yes (scene tree + properties + monitor) |
No |
No |
No |
No |
| Signal management |
Yes (connect/disconnect/inspect) |
No |
No |
No |
No |
| Browser visualizer |
No |
No |
Yes |
No |
No |
| AI 3D mesh generation |
No |
No |
No |
Yes (Meshy API) |
No |
Exclusive Categories (No Competitor Has These)
| Category |
Tools |
Why It Matters |
| Animation |
6 tools |
Create animations, add tracks, set keyframes — all programmatically |
| TileMap |
6 tools |
Set cells, fill rects, query tile data — essential for 2D level design |
| Theme/UI |
6 tools |
StyleBox, colors, fonts — build UI themes without manual editor work |
| Profiling |
2 tools |
FPS, memory, draw calls, physics — performance monitoring |
| Batch/Refactor |
8 tools |
Find by type, batch property changes, cross-scene updates, dependency analysis |
| Shader |
6 tools |
Create/edit shaders, assign materials, set parameters |
| Export |
3 tools |
List presets, get export commands, check templates |
| Physics |
6 tools |
Set up collision shapes, bodies, raycasts, and layer management |
| 3D Scene |
6 tools |
Add meshes, cameras, lights, environment, GridMap support |
| Particle |
5 tools |
Create particles with custom materials, presets, and gradients |
| Navigation |
6 tools |
Configure navigation regions, agents, pathfinding, baking |
| Audio |
6 tools |
Complete audio bus system, effects, players, live management |
| AnimationTree |
4 tools |
Build state machines with transitions and blend trees |
| State Machine |
3 tools |
Advanced state machine management for complex animations |
| Testing/QA |
6 tools |
Automated testing, assertions, stress testing, screenshot comparison |
| Runtime |
19 tools |
Inspect and control game at runtime: inspect, record, replay, navigate |
Architecture Advantages
| Aspect |
Godot MCP Pro |
Typical Competitor |
| Protocol |
JSON-RPC 2.0 (standard, extensible) |
Custom JSON or CLI-based |
| Connection |
Persistent WebSocket with heartbeat |
Per-command subprocess or raw TCP |
| Reliability |
Auto-reconnect with exponential backoff (1s→60s) |
Manual reconnection required |
| Type Safety |
Smart type parsing (Vector2, Color, Rect2, hex colors) |
String-only or limited types |
| Error Handling |
Structured errors with codes + suggestions |
Generic error messages |
| Undo Support |
All mutations go through UndoRedo system |
Direct modifications (no undo) |
| Port Management |
Auto-scan ports 6505-6509 |
Fixed port, conflicts possible |
License
Proprietary — see LICENSE for details. Purchase includes lifetime updates for v1.x.
163 MCP Tools for AI-Powered Godot Development
Connect AI assistants (Claude Code, Cursor, Windsurf, Cline) directly to your Godot 4 editor via the Model Context Protocol (MCP).
Architecture:
AI Assistant <--MCP--> Node.js Server <--WebSocket:6505--> Godot Editor Plugin
23 Tool Categories (163 tools total):
Project (7) — Project info, file search, settings, UID conversion
Scene (9) — Scene tree, create/open/delete, play/stop, instancing
Node (14) — Add/delete/duplicate/move, properties, signals, groups
Script (8) — Read/create/edit, attach, validate syntax, search
Editor (9) — Screenshots, error log, execute scripts, reload
Input (7) — Key/mouse/action simulation, sequences, input mapping
Runtime (19) — Game inspection, recording/replay, navigate, UI click
Animation (6) — Create animations, tracks, keyframes with easing
AnimationTree (8) — State machines, transitions, blend trees
3D Scene (6) — Meshes, cameras, lights, environment, GridMap
Physics (6) — Bodies, collision shapes, layers, raycasts
Particle (5) — GPU particles, materials, gradients, presets
Navigation (6) — Regions, agents, baking, layer management
Audio (6) — Players, bus layout, effects
TileMap (6) — Set/fill/query cells, tile set info
Theme/UI (6) — Colors, fonts, constants, StyleBox
Shader (6) — Create/edit shaders, assign materials, parameters
Resource (6) — Read/edit/create .tres, autoloads
Batch/Refactor (8) — Find by type, cross-scene updates, dependencies
Analysis (4) — Scene complexity, signal flow, unused resources
Testing/QA (6) — Automated tests, assertions, screenshot compare
Profiling (2) — Performance monitors, FPS/memory/draw calls
Export (3) — Presets, export commands, template info
Key Features:
- UndoRedo Integration — All mutations support Ctrl+Z
- Smart Type Parsing — "Vector2(100, 200)", "#ff0000", "Color(1,0,0)" auto-converted
- Auto-Reconnect — Exponential backoff (1s to 60s max)
- Heartbeat — 10s ping/pong keeps connection alive
- Error Suggestions — Structured errors with contextual hints
- 2D & 3D — Full support for both 2D and 3D workflows
- Lite Mode — 76 core tools for clients with tool limits (Cursor, Windsurf)
- Permission Presets — Pre-configured settings for Claude Code auto-approval
Quick Start:
1. Copy addons/godot_mcp/ to your project
2. Enable plugin in Project Settings > Plugins
3. Install MCP server: cd server && npm install && npm run build
4. Configure your AI client's .mcp.json
Requirements:
- Godot 4.4+
- Node.js 18+
- MCP-compatible AI client (Claude Code, Cursor, Windsurf, VS Code + Cline, etc.)
Links:
Website & Docs: https://godot-mcp.abyo.net/
Purchase (itch.io): https://y1uda.itch.io/godot-mcp-pro — $5 one-time, lifetime updates for v1.x
GitHub: https://github.com/youichi-uda/godot-mcp-pro
Note: This repository contains the Godot editor plugin (addon). The full package including the MCP server is available via purchase.