@keeveeg/godot-mcp 1.0.0 → 1.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +431 -0
- package/package.json +17 -9
- /package/{dist → server/dist}/config.d.ts +0 -0
- /package/{dist → server/dist}/config.d.ts.map +0 -0
- /package/{dist → server/dist}/config.js +0 -0
- /package/{dist → server/dist}/config.js.map +0 -0
- /package/{dist → server/dist}/godot-bridge.d.ts +0 -0
- /package/{dist → server/dist}/godot-bridge.d.ts.map +0 -0
- /package/{dist → server/dist}/godot-bridge.js +0 -0
- /package/{dist → server/dist}/godot-bridge.js.map +0 -0
- /package/{dist → server/dist}/index.d.ts +0 -0
- /package/{dist → server/dist}/index.d.ts.map +0 -0
- /package/{dist → server/dist}/index.js +0 -0
- /package/{dist → server/dist}/index.js.map +0 -0
- /package/{dist → server/dist}/server.d.ts +0 -0
- /package/{dist → server/dist}/server.d.ts.map +0 -0
- /package/{dist → server/dist}/server.js +0 -0
- /package/{dist → server/dist}/server.js.map +0 -0
- /package/{dist → server/dist}/tools/accessibility.d.ts +0 -0
- /package/{dist → server/dist}/tools/accessibility.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/accessibility.js +0 -0
- /package/{dist → server/dist}/tools/accessibility.js.map +0 -0
- /package/{dist → server/dist}/tools/addon_management.d.ts +0 -0
- /package/{dist → server/dist}/tools/addon_management.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/addon_management.js +0 -0
- /package/{dist → server/dist}/tools/addon_management.js.map +0 -0
- /package/{dist → server/dist}/tools/analysis.d.ts +0 -0
- /package/{dist → server/dist}/tools/analysis.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/analysis.js +0 -0
- /package/{dist → server/dist}/tools/analysis.js.map +0 -0
- /package/{dist → server/dist}/tools/analytics.d.ts +0 -0
- /package/{dist → server/dist}/tools/analytics.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/analytics.js +0 -0
- /package/{dist → server/dist}/tools/analytics.js.map +0 -0
- /package/{dist → server/dist}/tools/animation.d.ts +0 -0
- /package/{dist → server/dist}/tools/animation.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/animation.js +0 -0
- /package/{dist → server/dist}/tools/animation.js.map +0 -0
- /package/{dist → server/dist}/tools/asset_pipeline.d.ts +0 -0
- /package/{dist → server/dist}/tools/asset_pipeline.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/asset_pipeline.js +0 -0
- /package/{dist → server/dist}/tools/asset_pipeline.js.map +0 -0
- /package/{dist → server/dist}/tools/asset_scaffolding.d.ts +0 -0
- /package/{dist → server/dist}/tools/asset_scaffolding.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/asset_scaffolding.js +0 -0
- /package/{dist → server/dist}/tools/asset_scaffolding.js.map +0 -0
- /package/{dist → server/dist}/tools/audio.d.ts +0 -0
- /package/{dist → server/dist}/tools/audio.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/audio.js +0 -0
- /package/{dist → server/dist}/tools/audio.js.map +0 -0
- /package/{dist → server/dist}/tools/audio_config.d.ts +0 -0
- /package/{dist → server/dist}/tools/audio_config.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/audio_config.js +0 -0
- /package/{dist → server/dist}/tools/audio_config.js.map +0 -0
- /package/{dist → server/dist}/tools/batch.d.ts +0 -0
- /package/{dist → server/dist}/tools/batch.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/batch.js +0 -0
- /package/{dist → server/dist}/tools/batch.js.map +0 -0
- /package/{dist → server/dist}/tools/build_config.d.ts +0 -0
- /package/{dist → server/dist}/tools/build_config.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/build_config.js +0 -0
- /package/{dist → server/dist}/tools/build_config.js.map +0 -0
- /package/{dist → server/dist}/tools/cicd_pipeline.d.ts +0 -0
- /package/{dist → server/dist}/tools/cicd_pipeline.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/cicd_pipeline.js +0 -0
- /package/{dist → server/dist}/tools/cicd_pipeline.js.map +0 -0
- /package/{dist → server/dist}/tools/cloud_services.d.ts +0 -0
- /package/{dist → server/dist}/tools/cloud_services.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/cloud_services.js +0 -0
- /package/{dist → server/dist}/tools/cloud_services.js.map +0 -0
- /package/{dist → server/dist}/tools/code_generation.d.ts +0 -0
- /package/{dist → server/dist}/tools/code_generation.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/code_generation.js +0 -0
- /package/{dist → server/dist}/tools/code_generation.js.map +0 -0
- /package/{dist → server/dist}/tools/code_quality.d.ts +0 -0
- /package/{dist → server/dist}/tools/code_quality.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/code_quality.js +0 -0
- /package/{dist → server/dist}/tools/code_quality.js.map +0 -0
- /package/{dist → server/dist}/tools/collaboration.d.ts +0 -0
- /package/{dist → server/dist}/tools/collaboration.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/collaboration.js +0 -0
- /package/{dist → server/dist}/tools/collaboration.js.map +0 -0
- /package/{dist → server/dist}/tools/debug_config.d.ts +0 -0
- /package/{dist → server/dist}/tools/debug_config.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/debug_config.js +0 -0
- /package/{dist → server/dist}/tools/debug_config.js.map +0 -0
- /package/{dist → server/dist}/tools/debugging.d.ts +0 -0
- /package/{dist → server/dist}/tools/debugging.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/debugging.js +0 -0
- /package/{dist → server/dist}/tools/debugging.js.map +0 -0
- /package/{dist → server/dist}/tools/documentation_tools.d.ts +0 -0
- /package/{dist → server/dist}/tools/documentation_tools.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/documentation_tools.js +0 -0
- /package/{dist → server/dist}/tools/documentation_tools.js.map +0 -0
- /package/{dist → server/dist}/tools/editor.d.ts +0 -0
- /package/{dist → server/dist}/tools/editor.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/editor.js +0 -0
- /package/{dist → server/dist}/tools/editor.js.map +0 -0
- /package/{dist → server/dist}/tools/editor_config.d.ts +0 -0
- /package/{dist → server/dist}/tools/editor_config.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/editor_config.js +0 -0
- /package/{dist → server/dist}/tools/editor_config.js.map +0 -0
- /package/{dist → server/dist}/tools/export.d.ts +0 -0
- /package/{dist → server/dist}/tools/export.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/export.js +0 -0
- /package/{dist → server/dist}/tools/export.js.map +0 -0
- /package/{dist → server/dist}/tools/game_template.d.ts +0 -0
- /package/{dist → server/dist}/tools/game_template.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/game_template.js +0 -0
- /package/{dist → server/dist}/tools/game_template.js.map +0 -0
- /package/{dist → server/dist}/tools/gameplay_automation.d.ts +0 -0
- /package/{dist → server/dist}/tools/gameplay_automation.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/gameplay_automation.js +0 -0
- /package/{dist → server/dist}/tools/gameplay_automation.js.map +0 -0
- /package/{dist → server/dist}/tools/git_integration.d.ts +0 -0
- /package/{dist → server/dist}/tools/git_integration.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/git_integration.js +0 -0
- /package/{dist → server/dist}/tools/git_integration.js.map +0 -0
- /package/{dist → server/dist}/tools/headless_testing.d.ts +0 -0
- /package/{dist → server/dist}/tools/headless_testing.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/headless_testing.js +0 -0
- /package/{dist → server/dist}/tools/headless_testing.js.map +0 -0
- /package/{dist → server/dist}/tools/iap_monetization.d.ts +0 -0
- /package/{dist → server/dist}/tools/iap_monetization.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/iap_monetization.js +0 -0
- /package/{dist → server/dist}/tools/iap_monetization.js.map +0 -0
- /package/{dist → server/dist}/tools/index.d.ts +0 -0
- /package/{dist → server/dist}/tools/index.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/index.js +0 -0
- /package/{dist → server/dist}/tools/index.js.map +0 -0
- /package/{dist → server/dist}/tools/input.d.ts +0 -0
- /package/{dist → server/dist}/tools/input.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/input.js +0 -0
- /package/{dist → server/dist}/tools/input.js.map +0 -0
- /package/{dist → server/dist}/tools/localization.d.ts +0 -0
- /package/{dist → server/dist}/tools/localization.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/localization.js +0 -0
- /package/{dist → server/dist}/tools/localization.js.map +0 -0
- /package/{dist → server/dist}/tools/marketing.d.ts +0 -0
- /package/{dist → server/dist}/tools/marketing.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/marketing.js +0 -0
- /package/{dist → server/dist}/tools/marketing.js.map +0 -0
- /package/{dist → server/dist}/tools/memory_profiling.d.ts +0 -0
- /package/{dist → server/dist}/tools/memory_profiling.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/memory_profiling.js +0 -0
- /package/{dist → server/dist}/tools/memory_profiling.js.map +0 -0
- /package/{dist → server/dist}/tools/mod_support.d.ts +0 -0
- /package/{dist → server/dist}/tools/mod_support.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/mod_support.js +0 -0
- /package/{dist → server/dist}/tools/mod_support.js.map +0 -0
- /package/{dist → server/dist}/tools/navigation.d.ts +0 -0
- /package/{dist → server/dist}/tools/navigation.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/navigation.js +0 -0
- /package/{dist → server/dist}/tools/navigation.js.map +0 -0
- /package/{dist → server/dist}/tools/networking.d.ts +0 -0
- /package/{dist → server/dist}/tools/networking.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/networking.js +0 -0
- /package/{dist → server/dist}/tools/networking.js.map +0 -0
- /package/{dist → server/dist}/tools/node.d.ts +0 -0
- /package/{dist → server/dist}/tools/node.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/node.js +0 -0
- /package/{dist → server/dist}/tools/node.js.map +0 -0
- /package/{dist → server/dist}/tools/node_config.d.ts +0 -0
- /package/{dist → server/dist}/tools/node_config.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/node_config.js +0 -0
- /package/{dist → server/dist}/tools/node_config.js.map +0 -0
- /package/{dist → server/dist}/tools/particles.d.ts +0 -0
- /package/{dist → server/dist}/tools/particles.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/particles.js +0 -0
- /package/{dist → server/dist}/tools/particles.js.map +0 -0
- /package/{dist → server/dist}/tools/performance_optimization.d.ts +0 -0
- /package/{dist → server/dist}/tools/performance_optimization.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/performance_optimization.js +0 -0
- /package/{dist → server/dist}/tools/performance_optimization.js.map +0 -0
- /package/{dist → server/dist}/tools/physics.d.ts +0 -0
- /package/{dist → server/dist}/tools/physics.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/physics.js +0 -0
- /package/{dist → server/dist}/tools/physics.js.map +0 -0
- /package/{dist → server/dist}/tools/physics_config.d.ts +0 -0
- /package/{dist → server/dist}/tools/physics_config.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/physics_config.js +0 -0
- /package/{dist → server/dist}/tools/physics_config.js.map +0 -0
- /package/{dist → server/dist}/tools/platform_export.d.ts +0 -0
- /package/{dist → server/dist}/tools/platform_export.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/platform_export.js +0 -0
- /package/{dist → server/dist}/tools/platform_export.js.map +0 -0
- /package/{dist → server/dist}/tools/platform_specific.d.ts +0 -0
- /package/{dist → server/dist}/tools/platform_specific.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/platform_specific.js +0 -0
- /package/{dist → server/dist}/tools/platform_specific.js.map +0 -0
- /package/{dist → server/dist}/tools/profiling.d.ts +0 -0
- /package/{dist → server/dist}/tools/profiling.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/profiling.js +0 -0
- /package/{dist → server/dist}/tools/profiling.js.map +0 -0
- /package/{dist → server/dist}/tools/project.d.ts +0 -0
- /package/{dist → server/dist}/tools/project.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/project.js +0 -0
- /package/{dist → server/dist}/tools/project.js.map +0 -0
- /package/{dist → server/dist}/tools/project_config.d.ts +0 -0
- /package/{dist → server/dist}/tools/project_config.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/project_config.js +0 -0
- /package/{dist → server/dist}/tools/project_config.js.map +0 -0
- /package/{dist → server/dist}/tools/project_creation.d.ts +0 -0
- /package/{dist → server/dist}/tools/project_creation.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/project_creation.js +0 -0
- /package/{dist → server/dist}/tools/project_creation.js.map +0 -0
- /package/{dist → server/dist}/tools/rendering_config.d.ts +0 -0
- /package/{dist → server/dist}/tools/rendering_config.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/rendering_config.js +0 -0
- /package/{dist → server/dist}/tools/rendering_config.js.map +0 -0
- /package/{dist → server/dist}/tools/resource.d.ts +0 -0
- /package/{dist → server/dist}/tools/resource.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/resource.js +0 -0
- /package/{dist → server/dist}/tools/resource.js.map +0 -0
- /package/{dist → server/dist}/tools/resource_config.d.ts +0 -0
- /package/{dist → server/dist}/tools/resource_config.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/resource_config.js +0 -0
- /package/{dist → server/dist}/tools/resource_config.js.map +0 -0
- /package/{dist → server/dist}/tools/runtime.d.ts +0 -0
- /package/{dist → server/dist}/tools/runtime.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/runtime.js +0 -0
- /package/{dist → server/dist}/tools/runtime.js.map +0 -0
- /package/{dist → server/dist}/tools/save_load.d.ts +0 -0
- /package/{dist → server/dist}/tools/save_load.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/save_load.js +0 -0
- /package/{dist → server/dist}/tools/save_load.js.map +0 -0
- /package/{dist → server/dist}/tools/scene.d.ts +0 -0
- /package/{dist → server/dist}/tools/scene.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/scene.js +0 -0
- /package/{dist → server/dist}/tools/scene.js.map +0 -0
- /package/{dist → server/dist}/tools/scene3d.d.ts +0 -0
- /package/{dist → server/dist}/tools/scene3d.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/scene3d.js +0 -0
- /package/{dist → server/dist}/tools/scene3d.js.map +0 -0
- /package/{dist → server/dist}/tools/scene_config.d.ts +0 -0
- /package/{dist → server/dist}/tools/scene_config.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/scene_config.js +0 -0
- /package/{dist → server/dist}/tools/scene_config.js.map +0 -0
- /package/{dist → server/dist}/tools/scene_scaffolding.d.ts +0 -0
- /package/{dist → server/dist}/tools/scene_scaffolding.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/scene_scaffolding.js +0 -0
- /package/{dist → server/dist}/tools/scene_scaffolding.js.map +0 -0
- /package/{dist → server/dist}/tools/script.d.ts +0 -0
- /package/{dist → server/dist}/tools/script.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/script.js +0 -0
- /package/{dist → server/dist}/tools/script.js.map +0 -0
- /package/{dist → server/dist}/tools/script_scaffolding.d.ts +0 -0
- /package/{dist → server/dist}/tools/script_scaffolding.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/script_scaffolding.js +0 -0
- /package/{dist → server/dist}/tools/script_scaffolding.js.map +0 -0
- /package/{dist → server/dist}/tools/security.d.ts +0 -0
- /package/{dist → server/dist}/tools/security.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/security.js +0 -0
- /package/{dist → server/dist}/tools/security.js.map +0 -0
- /package/{dist → server/dist}/tools/shader.d.ts +0 -0
- /package/{dist → server/dist}/tools/shader.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/shader.js +0 -0
- /package/{dist → server/dist}/tools/shader.js.map +0 -0
- /package/{dist → server/dist}/tools/shared-types.d.ts +0 -0
- /package/{dist → server/dist}/tools/shared-types.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/shared-types.js +0 -0
- /package/{dist → server/dist}/tools/shared-types.js.map +0 -0
- /package/{dist → server/dist}/tools/testing.d.ts +0 -0
- /package/{dist → server/dist}/tools/testing.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/testing.js +0 -0
- /package/{dist → server/dist}/tools/testing.js.map +0 -0
- /package/{dist → server/dist}/tools/theme.d.ts +0 -0
- /package/{dist → server/dist}/tools/theme.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/theme.js +0 -0
- /package/{dist → server/dist}/tools/theme.js.map +0 -0
- /package/{dist → server/dist}/tools/tilemap.d.ts +0 -0
- /package/{dist → server/dist}/tools/tilemap.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/tilemap.js +0 -0
- /package/{dist → server/dist}/tools/tilemap.js.map +0 -0
- /package/{dist → server/dist}/tools/version_control_advanced.d.ts +0 -0
- /package/{dist → server/dist}/tools/version_control_advanced.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/version_control_advanced.js +0 -0
- /package/{dist → server/dist}/tools/version_control_advanced.js.map +0 -0
- /package/{dist → server/dist}/tools/visual_testing.d.ts +0 -0
- /package/{dist → server/dist}/tools/visual_testing.d.ts.map +0 -0
- /package/{dist → server/dist}/tools/visual_testing.js +0 -0
- /package/{dist → server/dist}/tools/visual_testing.js.map +0 -0
- /package/{dist → server/dist}/types.d.ts +0 -0
- /package/{dist → server/dist}/types.d.ts.map +0 -0
- /package/{dist → server/dist}/types.js +0 -0
- /package/{dist → server/dist}/types.js.map +0 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 KeeVeeG
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,431 @@
|
|
|
1
|
+
# Godot MCP
|
|
2
|
+
|
|
3
|
+
**AI-powered game development for Godot Engine via Model Context Protocol**
|
|
4
|
+
|
|
5
|
+
[](https://www.typescriptlang.org/)
|
|
6
|
+
[](https://docs.godotengine.org/)
|
|
7
|
+
[](https://godotengine.org/)
|
|
8
|
+
[](https://modelcontextprotocol.io/)
|
|
9
|
+
[](LICENSE)
|
|
10
|
+
|
|
11
|
+
Godot MCP connects AI assistants (Claude, Cursor, VS Code Copilot, OpenCode, and any MCP-compatible client) directly to the Godot editor. It exposes 300+ tools across 40+ modules, covering everything from scene construction and node manipulation to runtime inspection, input recording, physics setup, animation authoring, project export, addon management, debugging, and platform-specific configuration.
|
|
12
|
+
|
|
13
|
+
The AI can read your scene tree, create nodes, write scripts, simulate gameplay input, capture screenshots, run assertions, and batch-modify properties across scenes, all through a single WebSocket bridge.
|
|
14
|
+
|
|
15
|
+
📋 Browse the [full tools catalog](https://keeveeg.github.io/godot-mcp/tools.html) — searchable list of all 300+ tools with descriptions.
|
|
16
|
+
|
|
17
|
+
> This project was fully developed by **MiMo-V2.5-Pro** (Xiaomi AI).
|
|
18
|
+
|
|
19
|
+
## Table of Contents
|
|
20
|
+
|
|
21
|
+
- [Features](#features)
|
|
22
|
+
- [Architecture](#architecture)
|
|
23
|
+
- [Installation](#installation)
|
|
24
|
+
- [Configuration](#configuration)
|
|
25
|
+
- [Tool Categories](#tool-categories)
|
|
26
|
+
- [Troubleshooting](#troubleshooting)
|
|
27
|
+
|
|
28
|
+
## Features
|
|
29
|
+
|
|
30
|
+
- **300+ tools** for complete Godot development workflows
|
|
31
|
+
- **Real-time scene manipulation**. Add, delete, move, rename, and reconfigure nodes without leaving your AI chat
|
|
32
|
+
- **Runtime game inspection**. Query the live scene tree, read/write properties during gameplay, and execute GDScript in the running game
|
|
33
|
+
- **Input recording and replay**. Record player sessions, replay them at variable speed, and simulate keyboard/mouse/action input
|
|
34
|
+
- **Visual testing with screenshots**. Capture editor and game viewport screenshots for visual regression checks
|
|
35
|
+
- **Animation authoring**. Create clips, add tracks, set keyframes, build state machines, and configure blend trees
|
|
36
|
+
- **Physics setup**. Add bodies, collision shapes, raycasts, physics materials, and configure layers/masks
|
|
37
|
+
- **Audio management**. Add players, configure bus layouts, insert effects (reverb, delay, chorus, etc.)
|
|
38
|
+
- **Navigation**. Set up regions, agents, bake navmeshes, and query pathfinding between points
|
|
39
|
+
- **TileMap editing**. Set cells, fill rectangles, clear areas, and read tile data
|
|
40
|
+
- **Theme and shader tools**. Create themes, set colors/fonts/styleboxes; create, edit, and validate shaders
|
|
41
|
+
- **Batch operations**. Find nodes by type, set properties across scenes, detect circular dependencies
|
|
42
|
+
- **Testing framework**. Run multi-step test scenarios, assert node state, check screen text, run stress tests
|
|
43
|
+
- **Undo/redo support**. All editor mutations go through Godot's built-in undo system
|
|
44
|
+
- **Auto port scanning**. Server and plugin negotiate on ports 6505-6514 automatically
|
|
45
|
+
- **Zero project modification**. The addon installs as a standard Godot plugin, no engine changes required
|
|
46
|
+
|
|
47
|
+
## Architecture
|
|
48
|
+
|
|
49
|
+
```
|
|
50
|
+
+-----------------------------------------------------------------------+
|
|
51
|
+
| MCP Client (Claude, Cursor, VS Code, OpenCode) |
|
|
52
|
+
| | stdio (JSON-RPC 2.0) |
|
|
53
|
+
+-----------------------------------------------------------------------+
|
|
54
|
+
|
|
|
55
|
+
v
|
|
56
|
+
+-----------------------------------------------------------------------+
|
|
57
|
+
| Node.js MCP Server (TypeScript) |
|
|
58
|
+
| server/src/index.ts |
|
|
59
|
+
| |
|
|
60
|
+
| +----------------+ +----------------+ +-------------------------+ |
|
|
61
|
+
| | Tool Registry | | WebSocket | | JSON-RPC 2.0 | |
|
|
62
|
+
| | (40+ modules) | | Server | | Bridge | |
|
|
63
|
+
| +-------+--------+ +-------+--------+ +-------------------------+ |
|
|
64
|
+
| | | |
|
|
65
|
+
| | +--------------+ |
|
|
66
|
+
| | | :6505-6514 (auto port scan) |
|
|
67
|
+
| v v |
|
|
68
|
+
+-----------------------------------------------------------------------+
|
|
69
|
+
|
|
|
70
|
+
| WebSocket (JSON-RPC 2.0)
|
|
71
|
+
v
|
|
72
|
+
+------------------------------------------------------------------------+
|
|
73
|
+
| Godot Editor Plugin (GDScript) |
|
|
74
|
+
| |
|
|
75
|
+
| +------------------------------------------------------------------+ |
|
|
76
|
+
| | addons/godot_mcp/ | |
|
|
77
|
+
| | +----------------+ +----------------+ +--------------------+ | |
|
|
78
|
+
| | | WebSocket | | Command | | UndoRedo | | |
|
|
79
|
+
| | | Client | | Router | | Helper | | |
|
|
80
|
+
| | +----------------+ +----------------+ +--------------------+ | |
|
|
81
|
+
| | +------------------------------------------------------------+ | |
|
|
82
|
+
| | | Command Modules (40+ files, 300+ tools) | | |
|
|
83
|
+
| | | project | scene | node | script | editor | input | ... | | |
|
|
84
|
+
| | +------------------------------------------------------------+ | |
|
|
85
|
+
| +------------------------------------------------------------------+ |
|
|
86
|
+
| |
|
|
87
|
+
| +------------------------------------------------------------------+ |
|
|
88
|
+
| | Runtime Autoload (mcp_runtime.gd) | |
|
|
89
|
+
| | - Scene tree queries at runtime | |
|
|
90
|
+
| | - Property read/write during gameplay | |
|
|
91
|
+
| | - Input simulation and recording | |
|
|
92
|
+
| | - Screenshot capture | |
|
|
93
|
+
| | - Signal watching | |
|
|
94
|
+
| +------------------------------------------------------------------+ |
|
|
95
|
+
+------------------------------------------------------------------------+
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**Data flow:**
|
|
99
|
+
|
|
100
|
+
1. AI client sends a tool call over stdio (JSON-RPC 2.0)
|
|
101
|
+
2. MCP server receives it, looks up the tool in the registry
|
|
102
|
+
3. Server forwards the call over WebSocket to the Godot editor plugin
|
|
103
|
+
4. Plugin's command router dispatches to the correct command module
|
|
104
|
+
5. Command module calls Godot Editor API (with undo/redo wrapping for mutations)
|
|
105
|
+
6. Result flows back: Plugin -> WebSocket -> MCP Server -> stdio -> AI Client
|
|
106
|
+
|
|
107
|
+
## Installation
|
|
108
|
+
|
|
109
|
+
### Prerequisites
|
|
110
|
+
|
|
111
|
+
- **Godot 4.x** (tested with 4.7)
|
|
112
|
+
- An MCP-compatible AI client (Claude Desktop, Cursor, VS Code with Copilot, OpenCode, etc.)
|
|
113
|
+
|
|
114
|
+
### Godot Addon Installation
|
|
115
|
+
|
|
116
|
+
1. Copy `addon/godot_mcp/` into your project's `addons/` directory.
|
|
117
|
+
|
|
118
|
+
2. Open your project in Godot.
|
|
119
|
+
|
|
120
|
+
3. Go to **Project -> Project Settings -> Plugins**.
|
|
121
|
+
|
|
122
|
+
4. Find **Godot MCP** in the list and set it to **Active**.
|
|
123
|
+
|
|
124
|
+
5. The plugin will start scanning ports 6505-6514 for a running MCP server. Once connected, the **MCP** tab appears in the bottom panel showing connection status and activity log.
|
|
125
|
+
|
|
126
|
+
## Configuration
|
|
127
|
+
|
|
128
|
+
### MCP Client
|
|
129
|
+
|
|
130
|
+
Add the following to your MCP client's configuration file:
|
|
131
|
+
|
|
132
|
+
```json
|
|
133
|
+
{
|
|
134
|
+
"mcpServers": {
|
|
135
|
+
"godot": {
|
|
136
|
+
"command": "npx",
|
|
137
|
+
"args": ["-y", "@keeveeg/godot-mcp"]
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
For local development, use the full path:
|
|
144
|
+
|
|
145
|
+
```json
|
|
146
|
+
{
|
|
147
|
+
"mcpServers": {
|
|
148
|
+
"godot": {
|
|
149
|
+
"command": "node",
|
|
150
|
+
"args": ["/path/to/godot-mcp/server/dist/index.js"]
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
```
|
|
155
|
+
|
|
156
|
+
| Client | Config file |
|
|
157
|
+
| -------------- | ---------------------------------------------------------------------------------------------------------------------- |
|
|
158
|
+
| Claude Desktop | `~/.config/claude/claude_desktop_config.json` (Linux/macOS) or `%APPDATA%\Claude\claude_desktop_config.json` (Windows) |
|
|
159
|
+
| Cursor | `.cursor/mcp.json` in project root |
|
|
160
|
+
| OpenCode | `opencode.json` in project root or `~/.config/opencode/opencode.json` globally |
|
|
161
|
+
|
|
162
|
+
Example `opencode.json`:
|
|
163
|
+
|
|
164
|
+
```json
|
|
165
|
+
{
|
|
166
|
+
"mcp": {
|
|
167
|
+
"godot": {
|
|
168
|
+
"type": "local",
|
|
169
|
+
"command": ["npx", "-y", "--registry=https://npm.pkg.github.com", "@keeveeg/godot-mcp"]
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
### Environment Variables
|
|
176
|
+
|
|
177
|
+
| Variable | Default | Description |
|
|
178
|
+
| ----------------- | ------- | ------------------------------------------------------ |
|
|
179
|
+
| `GODOT_MCP_DEBUG` | (unset) | Set to any value to enable debug logging in the server |
|
|
180
|
+
|
|
181
|
+
### Tool Enable/Disable
|
|
182
|
+
|
|
183
|
+
Create a `godot_mcp_config.json` file in your Godot project root to selectively disable tools:
|
|
184
|
+
|
|
185
|
+
```json
|
|
186
|
+
{
|
|
187
|
+
"enabled_tools": {
|
|
188
|
+
"delete_scene": false,
|
|
189
|
+
"reload_project": false,
|
|
190
|
+
"execute_editor_script": false
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
Tools not listed in the config are enabled by default. The plugin reads this file on startup.
|
|
196
|
+
|
|
197
|
+
## Tool Categories
|
|
198
|
+
|
|
199
|
+
All 300+ tools organized by category. Each tool maps to a Godot editor operation.
|
|
200
|
+
|
|
201
|
+
### Project
|
|
202
|
+
|
|
203
|
+
Query project metadata, browse the filesystem tree, search files by name or content, read and write project settings in `project.godot`, and convert between Godot UIDs and file paths.
|
|
204
|
+
|
|
205
|
+
### Scene
|
|
206
|
+
|
|
207
|
+
Full lifecycle management for scenes: create new scenes with a chosen root node type, open and save scene files, delete scenes from disk, instantiate scene references as children, play and stop scenes in the editor, and list all currently loaded scenes.
|
|
208
|
+
|
|
209
|
+
### Node
|
|
210
|
+
|
|
211
|
+
Core scene-tree manipulation: add, delete, duplicate, move, and rename nodes; read and write any property on a node; connect and disconnect signals; manage node groups and editor selection; and set anchor presets on Control nodes.
|
|
212
|
+
|
|
213
|
+
### Script
|
|
214
|
+
|
|
215
|
+
GDScript file operations: list all scripts in the project, read and create script files, edit scripts by replacing text segments, attach scripts to nodes, validate scripts for syntax errors, and search across project files.
|
|
216
|
+
|
|
217
|
+
### Editor
|
|
218
|
+
|
|
219
|
+
Interact with the Godot editor itself: capture editor and game screenshots, execute arbitrary GDScript in the editor context, read errors and the output log, reload plugins and the project, and inspect signal connections on nodes.
|
|
220
|
+
|
|
221
|
+
### Input
|
|
222
|
+
|
|
223
|
+
Simulate player input during gameplay: send keyboard key presses/releases, mouse clicks and movements, trigger input actions from the InputMap, run sequenced input chains with timing, and manage the project's input action definitions.
|
|
224
|
+
|
|
225
|
+
### Runtime
|
|
226
|
+
|
|
227
|
+
Deep runtime introspection: query the live scene tree and node properties during gameplay, execute GDScript in the running game, capture viewport frames, monitor property changes over time, record and replay sessions, find nodes by script or proximity, click UI elements by text, and watch for signal emissions.
|
|
228
|
+
|
|
229
|
+
### Animation
|
|
230
|
+
|
|
231
|
+
Animation authoring and management: list, create, and remove animations on an AnimationPlayer; add tracks and set keyframes; build and inspect AnimationTree state machines and blend trees; set tree parameters; and add states to state machines.
|
|
232
|
+
|
|
233
|
+
### TileMap
|
|
234
|
+
|
|
235
|
+
2D tile-based level editing: set individual cells, fill rectangular regions, read cell data, clear areas, query the TileSet configuration, and list all used cell coordinates.
|
|
236
|
+
|
|
237
|
+
### Theme
|
|
238
|
+
|
|
239
|
+
UI theme creation and modification: create Theme resources, set colors, constants, font sizes, and StyleBoxes for specific control types, and inspect the full override list of an existing theme.
|
|
240
|
+
|
|
241
|
+
### Shader
|
|
242
|
+
|
|
243
|
+
Shader development workflow: create and read shader files, edit shaders by replacing text, create ShaderMaterials and assign them to nodes, get and set shader uniform parameters, list all shaders in the project, and validate shaders for compilation errors.
|
|
244
|
+
|
|
245
|
+
### Resource
|
|
246
|
+
|
|
247
|
+
General resource management: read `.tres`/`.res` files, edit resource properties, create new resources, get preview thumbnails, manage autoload singletons, duplicate resources, list resources by type, and inspect resource dependency graphs.
|
|
248
|
+
|
|
249
|
+
### Physics
|
|
250
|
+
|
|
251
|
+
Physics body and collision setup: add and configure RigidBody, CharacterBody, and StaticBody nodes; add collision shapes; set collision layers and masks; add raycast nodes; and create and assign physics materials.
|
|
252
|
+
|
|
253
|
+
### Scene3D
|
|
254
|
+
|
|
255
|
+
3D scene construction: add MeshInstance3D nodes with primitive meshes, configure Camera3D nodes, set up DirectionalLight3D, OmniLight3D, and SpotLight3D, configure WorldEnvironment, add GridMap nodes for tile-based 3D levels, and apply StandardMaterial3D or ShaderMaterial.
|
|
256
|
+
|
|
257
|
+
### Particles
|
|
258
|
+
|
|
259
|
+
Particle system creation and configuration: create GPUParticles2D/3D nodes, set ParticleProcessMaterial properties, configure color gradients, apply presets (fire, smoke, sparks, rain, snow, confetti, magic), set emission shapes, and adjust velocity curves.
|
|
260
|
+
|
|
261
|
+
### Navigation
|
|
262
|
+
|
|
263
|
+
Pathfinding infrastructure: add NavigationRegion2D/3D, NavigationAgent2D/3D, and NavigationLink2D/3D nodes; bake navigation meshes; set navigation layers and masks; query navigation map data; and find paths between two points.
|
|
264
|
+
|
|
265
|
+
### Audio
|
|
266
|
+
|
|
267
|
+
Audio playback and bus management: add AudioStreamPlayer, AudioStreamPlayer2D, and AudioStreamPlayer3D nodes; create and configure audio buses; insert effects like reverb, delay, chorus, and compressor; adjust bus volume, mute, and solo; and read the current bus layout.
|
|
268
|
+
|
|
269
|
+
### Batch
|
|
270
|
+
|
|
271
|
+
Bulk operations across scenes: find all nodes of a specific type, trace signal connections, set a property on every matching node at once, find references to nodes and scripts across scenes, get scene dependencies, apply cross-scene property changes, and detect circular dependencies.
|
|
272
|
+
|
|
273
|
+
### Analysis
|
|
274
|
+
|
|
275
|
+
Project health and complexity analysis: analyze scene node count, depth, and resource usage; map signal flow and connections across a scene; find unused resources that no scene or script references; and get aggregate project statistics like file counts, sizes, node types, and script languages.
|
|
276
|
+
|
|
277
|
+
### Testing
|
|
278
|
+
|
|
279
|
+
Automated testing against the running game: run multi-step test scenarios combining input, waits, and assertions; check node property values and on-screen text; spawn entities and measure performance under stress; and get aggregated test reports for the session.
|
|
280
|
+
|
|
281
|
+
### Profiling
|
|
282
|
+
|
|
283
|
+
Performance monitoring: read FPS, memory, physics, rendering, and audio counters from Godot's built-in performance monitors, and query editor-level metrics like compile times and resource load times.
|
|
284
|
+
|
|
285
|
+
### Export
|
|
286
|
+
|
|
287
|
+
Project export management: list configured export presets, export the project for specific platforms, validate the project for export readiness, query available export templates, and create new export presets.
|
|
288
|
+
|
|
289
|
+
### Addon Management
|
|
290
|
+
|
|
291
|
+
Plugin and addon lifecycle: list all installed addons with versions and status, install addons from the Asset Library, git repositories, or local paths, uninstall addons and clean up their files, update addons to the latest version, and configure addon settings.
|
|
292
|
+
|
|
293
|
+
### Audio Configuration
|
|
294
|
+
|
|
295
|
+
Advanced audio bus layout management: read all audio settings including bus layout and driver info, replace the entire bus layout, add or remove individual buses at specific positions, set bus volume levels, and inspect all effects on a bus with their properties.
|
|
296
|
+
|
|
297
|
+
### Build Configuration
|
|
298
|
+
|
|
299
|
+
Build pipeline configuration: read and set build configuration presets, choose the scripting backend, configure export filters for resource inclusion, set custom feature tags, adjust debug and optimization options, validate build settings, and get CLI export commands for specific platforms.
|
|
300
|
+
|
|
301
|
+
### Debug Configuration
|
|
302
|
+
|
|
303
|
+
Debug and profiling settings: read and configure remote debugging connections, enable or disable built-in profilers, set error and warning handling behavior during gameplay, and read or clear the editor log.
|
|
304
|
+
|
|
305
|
+
### Debugging
|
|
306
|
+
|
|
307
|
+
Interactive debugging workflow: set and remove breakpoints (with optional conditions), list all active breakpoints, inspect the call stack with local variables when paused, evaluate GDScript expressions in context, step over, step into, and continue execution.
|
|
308
|
+
|
|
309
|
+
### Editor Configuration
|
|
310
|
+
|
|
311
|
+
Editor appearance and layout: read all editor settings, switch color themes, change workspace layouts, adjust font size and UI scale, save and load named layouts, and reset to factory defaults.
|
|
312
|
+
|
|
313
|
+
### Gameplay Automation
|
|
314
|
+
|
|
315
|
+
Automated gameplay testing: run scripted gameplay scenarios combining input, waits, and checks; record gameplay sessions capturing input events and game state; replay recordings; create test characters at specific positions; navigate characters using direct movement or pathfinding; assert multiple game state conditions at once; and wait for specific game events with timeouts.
|
|
316
|
+
|
|
317
|
+
### Memory Profiling
|
|
318
|
+
|
|
319
|
+
Memory diagnostics: get detailed memory usage breakdowns by category (static, video, textures, buffers, objects), track object creation for specific classes over time, detect potential memory leaks in the scene tree and object graph, count live objects by class, and force garbage collection with a report of freed memory.
|
|
320
|
+
|
|
321
|
+
### Node Configuration
|
|
322
|
+
|
|
323
|
+
Node type introspection and presets: get default property values for any node type, apply configuration presets (e.g., platformer body, top-down camera), browse all available node types by category, and inspect signals, methods, enumerations, constants, and the full class hierarchy for a type.
|
|
324
|
+
|
|
325
|
+
### Physics Configuration
|
|
326
|
+
|
|
327
|
+
Physics engine tuning: read and set gravity vectors and magnitudes, change the physics simulation tick rate, select the physics engine backend, assign human-readable names to collision layers, and configure default linear damping for physics bodies.
|
|
328
|
+
|
|
329
|
+
### Platform Export
|
|
330
|
+
|
|
331
|
+
Platform-specific build pipeline: export for a specific target platform, validate platform export readiness, list installed export templates, create platform-specific export presets, run exported builds and capture their output, and perform detailed platform export validation.
|
|
332
|
+
|
|
333
|
+
### Platform Specific
|
|
334
|
+
|
|
335
|
+
Platform configuration for mobile and web: read and write platform-specific settings, configure iOS bundle ID, team ID, and code signing; set up Android package names, keystores, and permissions; configure web/HTML5 canvas resize, threading, and PWA support; and query platform capabilities and build validation.
|
|
336
|
+
|
|
337
|
+
### Project Configuration
|
|
338
|
+
|
|
339
|
+
Project settings and input management: read and write individual project settings, get all settings with optional prefix filtering, reset settings to defaults, manage the entire input map (actions, deadzones, event mappings), and configure autoload singleton ordering.
|
|
340
|
+
|
|
341
|
+
### Project Creation
|
|
342
|
+
|
|
343
|
+
New project scaffolding: create complete Godot projects from scratch or from templates, scaffold standard folder structures, import assets into new projects, initialize git repositories with proper `.gitignore`, generate README and LICENSE files, install dependencies and addons, validate project structure, and list available templates.
|
|
344
|
+
|
|
345
|
+
### Rendering Configuration
|
|
346
|
+
|
|
347
|
+
Rendering pipeline settings: read all rendering settings, apply quality presets, switch the renderer, configure anti-aliasing (MSAA, FXAA, TAA), adjust shadow and global illumination quality, enable or disable post-processing, set viewport dimensions and stretch mode, configure window size and vsync, and query GPU info and rendering statistics.
|
|
348
|
+
|
|
349
|
+
### Resource Configuration
|
|
350
|
+
|
|
351
|
+
Resource type system: browse all registered resource types, inspect serializable properties for any resource type with their types, create resource files from templates or defaults, import files as resources with custom settings, and read or update resource import settings.
|
|
352
|
+
|
|
353
|
+
### Save/Load
|
|
354
|
+
|
|
355
|
+
Game state persistence testing: save the current game state to numbered slots with metadata, load states from save files, list and delete save files, and compare two save states to get a diff of their contents.
|
|
356
|
+
|
|
357
|
+
### Scene Configuration
|
|
358
|
+
|
|
359
|
+
Scene structure metadata: inspect the scene inheritance chain (instantiated and inherited scenes), toggle unique name flags on nodes, manage scene groups and which nodes belong to them, and read or set metadata on the scene's root node.
|
|
360
|
+
|
|
361
|
+
### Visual Testing
|
|
362
|
+
|
|
363
|
+
Visual regression testing: take screenshots with scene context metadata, compare screenshots pixel-by-pixel with mismatch percentages, assert that screenshots match baselines within thresholds, record multiple frames over time for regression testing, aggregate visual diff reports, and manage visual baselines for future comparisons.
|
|
364
|
+
|
|
365
|
+
## Troubleshooting
|
|
366
|
+
|
|
367
|
+
### Connection Problems
|
|
368
|
+
|
|
369
|
+
**"Godot editor is not connected"**
|
|
370
|
+
|
|
371
|
+
The MCP server is running but Godot hasn't connected yet.
|
|
372
|
+
|
|
373
|
+
- Make sure the Godot editor is open with the MCP plugin active
|
|
374
|
+
- Check the **MCP** panel in Godot's bottom dock for connection status
|
|
375
|
+
- Verify no firewall is blocking localhost connections on ports 6505-6514
|
|
376
|
+
- Look at Godot's output log for `[MCP]` messages
|
|
377
|
+
|
|
378
|
+
**"Failed to bind to any port in range 6505-6514"**
|
|
379
|
+
|
|
380
|
+
All ports in the scanning range are occupied.
|
|
381
|
+
|
|
382
|
+
- Check if another instance of the MCP server is already running
|
|
383
|
+
- Kill any stale `node` processes: `pkill -f "godot-mcp"` (Linux/macOS) or use Task Manager (Windows)
|
|
384
|
+
- The server will automatically try the next available port
|
|
385
|
+
|
|
386
|
+
### Godot Path Not Found
|
|
387
|
+
|
|
388
|
+
**Tools return errors about missing files or paths**
|
|
389
|
+
|
|
390
|
+
- Use `res://` prefixed paths (e.g., `res://scenes/main.tscn`)
|
|
391
|
+
- Use `get_filesystem_tree` to verify the project structure
|
|
392
|
+
- Make sure the Godot project is the one you think it is (check `get_project_info`)
|
|
393
|
+
|
|
394
|
+
### WebSocket Timeout
|
|
395
|
+
|
|
396
|
+
**"Request timed out after 30000ms"**
|
|
397
|
+
|
|
398
|
+
The Godot editor took too long to respond.
|
|
399
|
+
|
|
400
|
+
- The editor may be busy (compiling, loading a large scene)
|
|
401
|
+
- Check if a dialog is blocking the editor (the plugin auto-dismisses most dialogs during gameplay)
|
|
402
|
+
- Try the request again
|
|
403
|
+
- For large operations, the editor may need more time
|
|
404
|
+
|
|
405
|
+
### Plugin Not Loading
|
|
406
|
+
|
|
407
|
+
**No `[MCP]` messages in Godot's output log**
|
|
408
|
+
|
|
409
|
+
- Verify the `addons/godot_mcp/` directory is in the correct location
|
|
410
|
+
- Go to **Project -> Project Settings -> Plugins** and check if Godot MCP appears
|
|
411
|
+
- If it appears but is disabled, enable it
|
|
412
|
+
- Check for GDScript errors in the output log
|
|
413
|
+
- Try **Project -> Reload Current Project**
|
|
414
|
+
|
|
415
|
+
### Tools Not Working During Gameplay
|
|
416
|
+
|
|
417
|
+
**Runtime tools return errors when the game is running**
|
|
418
|
+
|
|
419
|
+
The `mcp_runtime.gd` autoload must be present in your project for runtime tools to work. The plugin registers it automatically in `project.godot`, but verify it's there:
|
|
420
|
+
|
|
421
|
+
1. Open `project.godot` and check the `[autoload]` section
|
|
422
|
+
2. You should see: `mcp_runtime="res://addons/godot_mcp/services/mcp_runtime.gd"`
|
|
423
|
+
3. **Important**: Do NOT use the `*` prefix (e.g. `*res://...`) — the `*` means "editor only" and the autoload won't load in-game
|
|
424
|
+
4. Check Godot's output log for `[MCP Runtime] Loaded and ready for IPC`
|
|
425
|
+
5. If the autoload isn't showing, try stopping and restarting the game
|
|
426
|
+
|
|
427
|
+
### Port Already in Use
|
|
428
|
+
|
|
429
|
+
**Server logs show "Port 6505 is busy"**
|
|
430
|
+
|
|
431
|
+
This is normal. The server will try port 6506, then 6507, etc., until it finds an open one. The Godot plugin scans all ports in the range, so it will find the server regardless of which port it landed on.
|
package/package.json
CHANGED
|
@@ -1,15 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keeveeg/godot-mcp",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "MCP server for Godot Engine — 300+ AI-powered tools for game development",
|
|
5
5
|
"author": "KeeVeeG",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"repository": {
|
|
8
8
|
"type": "git",
|
|
9
|
-
"url": "https://github.com/KeeVeeG/godot-mcp"
|
|
10
|
-
"directory": "server"
|
|
9
|
+
"url": "https://github.com/KeeVeeG/godot-mcp"
|
|
11
10
|
},
|
|
12
11
|
"homepage": "https://keeveeg.github.io/godot-mcp",
|
|
12
|
+
"bugs": {
|
|
13
|
+
"url": "https://github.com/KeeVeeG/godot-mcp/issues"
|
|
14
|
+
},
|
|
13
15
|
"keywords": [
|
|
14
16
|
"godot",
|
|
15
17
|
"mcp",
|
|
@@ -20,17 +22,21 @@
|
|
|
20
22
|
"gamedev"
|
|
21
23
|
],
|
|
22
24
|
"type": "module",
|
|
23
|
-
"main": "dist/index.js",
|
|
25
|
+
"main": "server/dist/index.js",
|
|
24
26
|
"bin": {
|
|
25
|
-
"godot-mcp": "dist/index.js"
|
|
27
|
+
"godot-mcp": "server/dist/index.js"
|
|
26
28
|
},
|
|
27
29
|
"files": [
|
|
28
|
-
"dist/"
|
|
30
|
+
"server/dist/",
|
|
31
|
+
"README.md",
|
|
32
|
+
"LICENSE"
|
|
29
33
|
],
|
|
30
34
|
"scripts": {
|
|
31
|
-
"build": "tsc",
|
|
32
|
-
"start": "node dist/index.js",
|
|
33
|
-
"dev": "tsc --watch"
|
|
35
|
+
"build": "cd server && tsc",
|
|
36
|
+
"start": "node server/dist/index.js",
|
|
37
|
+
"dev": "cd server && tsc --watch",
|
|
38
|
+
"format": "prettier --write \"**/*.{js,ts,css,html}\"",
|
|
39
|
+
"prepare": "husky"
|
|
34
40
|
},
|
|
35
41
|
"dependencies": {
|
|
36
42
|
"@modelcontextprotocol/sdk": "^1.12.1",
|
|
@@ -40,6 +46,8 @@
|
|
|
40
46
|
"devDependencies": {
|
|
41
47
|
"@types/node": "^22.0.0",
|
|
42
48
|
"@types/ws": "^8.5.13",
|
|
49
|
+
"husky": "^9.1.7",
|
|
50
|
+
"prettier": "^3.9.4",
|
|
43
51
|
"typescript": "^5.7.0",
|
|
44
52
|
"vitest": "^3.0.0"
|
|
45
53
|
},
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|