Back to MCP Servers

Godot Mcp Pro

Premium MCP server for Godot game engine with 84 tools for scene editing, scripting, animation, tilemap, shader, input simulation, and runtime debugging.

gaminggo
By youichi-uda
47362Updated 2 weeks agoGDScriptNOASSERTION

Installation

npx -y godot-mcp-pro

Configuration

{
  "mcpServers": {
    "godot-mcp-pro": {
      "command": "npx",
      "args": ["-y", "godot-mcp-pro"]
    }
  }
}

How to use

  1. Run the installation command above (if needed)
  2. Open your Claude Code settings file (~/.claude/settings.json)
  3. Add the configuration to the mcpServers section
  4. Restart Claude Code to apply changes

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 175 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

What's in this repo

⚠️ This public repo only contains the free Godot addon/plugin. The MCP server (Node.js, required to connect AI assistants) is distributed as part of the paid package — one-time purchase, lifetime updates:

The paid zip includes the addon, the server/ directory with pre-built JavaScript, INSTALL.md, and AI-client instructions. If you cloned this repo and don't see a server/ folder, that's expected — grab the full package from one of the links above.

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

The server/ directory is only included in the full paid package (see above). After downloading and extracting the zip, run:

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 four modes to fit any client's tool limit:

ModeToolsBest For
Full (default)175Claude Code, Cline, VS Code Copilot, Cursor
3D (--3d)103Antigravity and other 100-tool-limit clients needing 3D
Lite (--lite)84Windsurf, JetBrains Junie, Gemini CLI
Minimal (--minimal)35OpenCode, 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

ClientRecommended ModeNotes
Claude CodeFull (default)Deferred tool loading — minimal context cost
VS Code CopilotFullVirtual Tools auto-group tools
OpenAI Codex CLIFullMCPSearch defers overflow
ClineFullNo hard limit; use enabledTools to whitelist
Roo CodeFullNo hard limit
WindsurfLite100 tool limit
JetBrains JunieLite100 tool limit
Gemini CLILite~100 client limit; use excludeTools for finer control
CursorFullTool limit removed (Dynamic Context Discovery)
OpenCodeMinimal or CLIModels degrade past ~40 tools
Local LLMs (LM Studio, etc.)Minimal or CLIContext 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 175 Tools

Project Tools (7)

ToolDescription
get_project_infoProject metadata, version, viewport, autoloads
get_filesystem_treeRecursive file tree with filtering
search_filesFuzzy/glob file search
get_project_settingsRead project.godot settings
set_project_settingSet project settings via editor API
uid_to_project_pathUID → res:// conversion
project_path_to_uidres:// → UID conversion

Scene Tools (9)

ToolDescription
get_scene_treeLive scene tree with hierarchy
get_scene_file_contentRaw .tscn file content
create_sceneCreate new scene files
open_sceneOpen scene in editor
delete_sceneDelete scene file
add_scene_instanceInstance scene as child node
play_sceneRun scene (main/current/custom)
stop_sceneStop running scene
save_sceneSave current scene to disk

Node Tools (17)

ToolDescription
add_nodeAdd node with type and properties
delete_nodeDelete node (with undo support)
duplicate_nodeDuplicate node and children
move_nodeMove/reparent node
update_propertySet any property (auto type parsing)
get_node_propertiesGet all node properties
add_resourceAdd Shape/Material/etc to node
set_anchor_presetSet Control anchor preset
rename_nodeRename a node in the scene
connect_signalConnect signal between nodes
disconnect_signalDisconnect signal connection
get_node_groupsGet groups a node belongs to
set_node_groupsSet node group membership
find_nodes_in_groupFind all nodes in a group
get_editor_selectionGet currently selected scene nodes
select_nodesSelect, focus, and inspect scene nodes
clear_editor_selectionClear the editor scene selection

Script Tools (8)

ToolDescription
list_scriptsList all scripts with class info
read_scriptRead script content
create_scriptCreate new script with template
edit_scriptSearch/replace or full edit
attach_scriptAttach script to node
get_open_scriptsList scripts open in editor
validate_scriptValidate GDScript syntax
search_in_filesSearch content in project files

Editor Tools (9)

ToolDescription
get_editor_errorsGet errors and stack traces
get_editor_screenshotCapture editor viewport
get_game_screenshotCapture running game
execute_editor_scriptRun arbitrary GDScript in editor
clear_outputClear output panel
get_signalsGet all signals of a node with connections
reload_pluginReload the MCP plugin (auto-reconnect)
reload_projectRescan filesystem and reload scripts
get_output_logGet output panel content

Input Tools (7)

ToolDescription
simulate_keySimulate keyboard key press/release
simulate_mouse_clickSimulate mouse click at position
simulate_mouse_moveSimulate mouse movement
simulate_actionSimulate Godot Input Action
simulate_sequenceSequence of input events with frame delays
get_input_actionsList all input actions
set_input_actionCreate/modify input action

Runtime Tools (19)

ToolDescription
get_game_scene_treeScene tree of running game
get_game_node_propertiesNode properties in running game
set_game_node_propertySet node property in running game
execute_game_scriptRun GDScript in game context
capture_framesMulti-frame screenshot capture
monitor_propertiesRecord property values over time
start_recordingStart input recording
stop_recordingStop input recording
replay_recordingReplay recorded input
find_nodes_by_scriptFind game nodes by script
get_autoloadGet autoload node properties
batch_get_propertiesBatch get multiple node properties
find_ui_elementsFind UI elements in game
click_button_by_textClick button by text content
wait_for_nodeWait for node to appear
find_nearby_nodesFind nodes near position
navigate_toNavigate to target position
move_toWalk character to target

Animation Tools (6)

ToolDescription
list_animationsList all animations in AnimationPlayer
create_animationCreate new animation
add_animation_trackAdd track (value/position/rotation/method/bezier)
set_animation_keyframeInsert keyframe into track
get_animation_infoDetailed animation info with all tracks/keys
remove_animationRemove an animation

TileMap Tools (6)

ToolDescription
tilemap_set_cellSet a single tile cell
tilemap_fill_rectFill rectangular region with tiles
tilemap_get_cellGet tile data at cell
tilemap_clearClear all cells
tilemap_get_infoTileMapLayer info and tile set sources
tilemap_get_used_cellsList of used cells

Theme & UI Tools (6)

ToolDescription
create_themeCreate Theme resource file
set_theme_colorSet theme color override
set_theme_constantSet theme constant override
set_theme_font_sizeSet theme font size override
set_theme_styleboxSet StyleBoxFlat override
get_theme_infoGet theme overrides info

Profiling Tools (2)

ToolDescription
get_performance_monitorsAll performance monitors (FPS, memory, physics, etc.)
get_editor_performanceQuick performance summary

Batch & Refactoring Tools (8)

ToolDescription
find_nodes_by_typeFind all nodes of a type
find_signal_connectionsFind all signal connections in scene
batch_set_propertySet property on all nodes of a type
find_node_referencesSearch project files for pattern
get_scene_dependenciesGet resource dependencies
cross_scene_set_propertySet property across all scenes
find_script_referencesFind where script/resource is used
detect_circular_dependenciesFind circular scene dependencies

Shader Tools (6)

ToolDescription
create_shaderCreate shader with template
read_shaderRead shader file
edit_shaderEdit shader (replace/search-replace)
assign_shader_materialAssign ShaderMaterial to node
set_shader_paramSet shader parameter
get_shader_paramsGet all shader parameters

Export Tools (3)

ToolDescription
list_export_presetsList export presets
export_projectGet export command for preset
get_export_infoExport-related project info

Resource Tools (6)

ToolDescription
`read_resource

View source on GitHub