MCP Server / godot mcp pro
godot mcp pro
162 MCP tools for AI-powered Godot 4 development. Scene, animation, 3D, physics, particles, audio, shader, input simulation, runtime analysis, navigation, testing & more. $5 one-time.
Installation
claude mcp add godot-mcp-pro -- npx -y npm
npx -y npm
npm: npm
Transport
Tools (20)
Mode
Tools
167
Claude Code, Cline, VS Code Copilot, Cursor
Client
Recommended Mode
Full
Virtual Tools auto-group tools
Full
MCPSearch defers overflow
Cline
Full
Full
No hard limit
Windsurf
Lite
Lite
100 tool limit
Lite
~100 client limit; use `excludeTools` for finer control
Cursor
Full
OpenCode
Minimal or CLI
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
get_scene_tree
Live scene tree with hierarchy
Dokumentation
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 169 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
3. Configure Claude Code
Add to your .mcp.json:
{
"mcpServers": {
"godot-mcp-pro": {
"command": "node",
"args": ["/path/to/server/build/index.js"],
"env": {
"GODOT_MCP_PORT": "6505"
}
}
}
}
4. Choose Your Mode
Godot MCP Pro offers three modes to fit any client's tool limit:
| Mode | Tools | Best For |
|------|-------|----------|
| Full (default) | 167 | Claude Code, Cline, VS Code Copilot, Cursor |
| Lite (--lite) | 80 | Windsurf (100 limit), JetBrains Junie (100 limit), Gemini CLI |
| Minimal (--minimal) | 35 | OpenCode, local LLMs with small context |
{
"mcpServers": {
"godot-mcp-pro": {
"command": "node",
"args": ["/path/to/server/build/index.js", "--lite"]
}
}
}
Replace --lite with --minimal for the smallest footprint.
- Lite includes: project, scene, node, script, editor, input, runtime, and input_map tools.
- Minimal includes: 35 essential tools — project info, scene management, node CRUD, script editing, editor errors, input simulation, and runtime inspection.
5. CLI Mode (Alternative to MCP)
For clients without MCP support, or when you want zero context overhead, use the CLI directly from a terminal/bash tool. The CLI requires the server to be built first (Step 2).
# Top-level help — shows all command groups
node /path/to/server/build/cli.js --help
# Group help — shows commands in a group
node /path/to/server/build/cli.js node --help
# Command help — shows options for a command
node /path/to/server/build/cli.js node add --help
# Execute
node /path/to/server/build/cli.js project info
node /path/to/server/build/cli.js scene play
node /path/to/server/build/cli.js node add --type CharacterBody3D --name Player
Replace /path/to/ with the actual path where you extracted the files.
The CLI connects directly to the Godot editor plugin via WebSocket. It requires:
- Godot editor running with the MCP plugin enabled
- Server built (
node build/setup.js install) - An available port in the 6510-6514 range
Advantage: LLMs discover capabilities progressively via --help instead of loading all tool definitions upfront. This works with any LLM client that has terminal access, regardless of tool count limits.
6. Client Compatibility
| Client | Recommended Mode | Notes |
|--------|-----------------|-------|
| Claude Code | Full (default) | Deferred tool loading — minimal context cost |
| VS Code Copilot | Full | Virtual Tools auto-group tools |
| OpenAI Codex CLI | Full | MCPSearch defers overflow |
| Cline | Full | No hard limit; use enabledTools to whitelist |
| Roo Code | Full | No hard limit |
| Windsurf | Lite | 100 tool limit |
| JetBrains Junie | Lite | 100 tool limit |
| Gemini CLI | Lite | ~100 client limit; use excludeTools for finer control |
| Cursor | Full | Tool limit removed (Dynamic Context Discovery) |
| OpenCode | Minimal or CLI | Models degrade past ~40 tools |
| Local LLMs (LM Studio, etc.) | Minimal or CLI | Context window is the bottleneck |
7. Use It
Open your Godot project with the plugin enabled, then use Claude Code to interact with the editor.
All 169 Tools
Project Tools (7)
| 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 |
Scene Tools (9)
| 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 |
Node Tools (14)
| 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 |
Script Tools (8)
| 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 |
Editor Tools (9)
| 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 |
Input Tools (7)
| 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 |
Runtime Tools (19)
| 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 |
Animation Tools (6)
| 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 |
TileMap Tools (6)
| 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 |
Theme & UI Tools (6)
| 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 |
Profiling Tools (2)
| Tool | Description |
|------|-------------|
| get_performance_monitors | All performance monitors (FPS, memory, physics, etc.) |
| get_editor_performance | Quick performance summary |
Batch & Refactoring Tools (8)
| 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 |
Shader Tools (6)
| 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 |
Export Tools (3)
| Tool | Description |
|------|-------------|
| list_export_presets | List export presets |
| export_project | Get export command for preset |
| get_export_info | Export-related project info |
Resource Tools (6)
| 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 |
Physics Tools (6)
| 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 |
3D Scene Tools (6)
| 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 |
Navigation Tools (6)
| 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 |
Audio Tools (6)
| 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 |
AnimationTree Tools (4)
| 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 |
State Machine Tools (3)
| 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 |
Blend Tree Tools (1)
| Tool | Description |
|------|-------------|
| set_blend_tree_node | Configure blend tree nodes |
Analysis & Search Tools (4)
| 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 |
Testing & QA Tools (6)
| 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
Tool Count
| 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 | 169 | ~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.