$git clone https://github.com/tugcantopaloglu/godot-mcpA comprehensive Model Context Protocol (MCP) server that gives AI assistants full control over the Godot game engine. 157 tools spanning networking, 3D/2D rendering, UI controls, audio effects, animation trees, file I/O, run
| 1 | <img width="2752" height="1536" alt="godot_mcp_header" src="https://github.com/user-attachments/assets/ed7ac605-8fb5-4a5f-adf8-4b6912cbc18c" /> |
| 2 | |
| 3 | # Godot MCP - Full Control |
| 4 | |
| 5 | [](https://modelcontextprotocol.io/introduction) |
| 6 | [](https://godotengine.org) |
| 7 | [](https://www.typescriptlang.org/) |
| 8 | [](https://opensource.org/licenses/MIT) |
| 9 | |
| 10 | A comprehensive [Model Context Protocol](https://modelcontextprotocol.io/introduction) (MCP) server that gives AI assistants **full control** over the Godot game engine. **157 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. |
| 11 | |
| 12 | ## Acknowledgments |
| 13 | |
| 14 | This project is built upon and extends [godot-mcp](https://github.com/Coding-Solo/godot-mcp) by [Solomon Elias (Coding-Solo)](https://github.com/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! |
| 15 | |
| 16 | ## What's New (Improvements Over Original) |
| 17 | |
| 18 | The original godot-mcp provided 20 tools for basic project management and scene creation. This fork extends it to **157 tools** with the following major additions: |
| 19 | |
| 20 | ### New in 3.1 |
| 21 | - **`validate_script` autoload resolution** - Script validation now compiles the target through a `SceneTree` at `_initialize()` (after project autoloads are registered) instead of `--check-only` at `_init()`. References to autoload singletons no longer produce false `Identifier not found` errors, while real syntax/type errors are still caught. Verified building a full game whose scripts reference several autoloads. |
| 22 | - **`manage_input_map` event merging** - Adding a second key to an existing input action now merges it into that action's `events` array (with `physical_keycode` de-duplication) instead of writing a duplicate `actionname=` line, which previously left `project.godot` malformed and silently dropped earlier bindings. |
| 23 | |
| 24 | ### New in 3.0 |
| 25 | - **.NET / C# support** - Scaffold C# projects and generate C# scripts (`create_project` with `dotnet: true`, `create_csharp_script`); the `.csproj` SDK version is matched to your installed Godot. |
| 26 | - **GDScript diagnostics** - Validate scripts for syntax and type errors without running the game (`validate_script`, and `validate_scripts` for all git-changed or project-wide files). |
| 27 | - **Correctness and robustness fixes** across the headless scene operations and the runtime interaction server (resource-typed properties now persist, reparenting works, runtime commands are correlated by request id, and the tools survive projects with warnings-as-errors). Requires Godot 4.4 or later; tested and working with the latest Godot **4.7**. |
| 28 | |
| 29 | ### Runtime Code Execution |
| 30 | - **`game_eval`** - Execute arbitrary GDScript code in the running game with return values |
| 31 | - Full `await` support for async GDScript code |
| 32 | - Works even when the game is paused (`PROCESS_MODE_ALWAYS`) |
| 33 | |
| 34 | ### Runtime Node Inspection & Manipulation |
| 35 | - **`game_get_property`** / **`game_set_property`** - Read/write any property on any node by path |
| 36 | - **`game_call_method`** - Call any method on any node with arguments |
| 37 | - **`game_get_node_info`** - Full node introspection: properties, signals, methods, children |
| 38 | - **`game_instantiate_scene`** - Dynamically add scenes to the running game |
| 39 | - **`game_remove_node`** - Remove nodes at runtime |
| 40 | - **`game_change_scene`** - Switch scenes at runtime |
| 41 | - **`game_reparent_node`** - Move nodes between parents |
| 42 | |
| 43 | ### Signal System |