gopeak 2.3.6 → 2.3.8

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/README.md CHANGED
@@ -1,392 +1,279 @@
1
- # GoPeak
2
-
3
- [![](https://badge.mcpx.dev?type=server 'MCP Server')](https://modelcontextprotocol.io/introduction)
4
- [![Made with Godot](https://img.shields.io/badge/Made%20with-Godot-478CBF?style=flat&logo=godot%20engine&logoColor=white)](https://godotengine.org)
5
- [![](https://img.shields.io/badge/Node.js-339933?style=flat&logo=nodedotjs&logoColor=white 'Node.js')](https://nodejs.org/en/download/)
6
- [![](https://img.shields.io/badge/TypeScript-3178C6?style=flat&logo=typescript&logoColor=white 'TypeScript')](https://www.typescriptlang.org/)
7
- [![npm](https://img.shields.io/npm/v/gopeak?style=flat&logo=npm&logoColor=white 'npm')](https://www.npmjs.com/package/gopeak)
8
- [![](https://img.shields.io/github/last-commit/HaD0Yun/Gopeak-godot-mcp 'Last Commit')](https://github.com/HaD0Yun/Gopeak-godot-mcp/commits/main)
9
- [![](https://img.shields.io/github/stars/HaD0Yun/Gopeak-godot-mcp 'Stars')](https://github.com/HaD0Yun/Gopeak-godot-mcp/stargazers)
10
- [![](https://img.shields.io/github/forks/HaD0Yun/Gopeak-godot-mcp 'Forks')](https://github.com/HaD0Yun/Gopeak-godot-mcp/network/members)
11
- [![](https://img.shields.io/badge/License-MIT-red.svg 'MIT License')](https://opensource.org/licenses/MIT)
12
-
13
- ![GoPeak Hero](assets/gopeak-hero-v2.png)
14
-
15
- **GoPeak is an MCP server for Godot that lets AI assistants run, inspect, modify, and debug real projects end-to-end.**
16
-
17
- > Discord community chat is temporarily unavailable while the invite link is refreshed. Please use GitHub Discussions in the meantime: https://github.com/HaD0Yun/Gopeak-godot-mcp/discussions
18
-
19
- ---
20
-
21
- ## Quick Start (3 Minutes)
22
-
23
- ### Requirements
24
-
25
- - Godot 4.x
26
- - Node.js 18+
27
- - MCP-compatible client (Claude Desktop, Cursor, Cline, OpenCode, etc.)
28
-
29
- ### 1) Run GoPeak
30
-
31
- ```bash
32
- npx -y gopeak
33
- ```
34
-
35
- or install globally:
36
-
37
- ```bash
38
- npm install -g gopeak
39
- gopeak
40
- ```
41
-
42
- Optional shell hooks for update notifications are now **opt-in**:
43
-
44
- ```bash
45
- gopeak setup
46
- ```
47
-
48
- > `gopeak setup` only modifies supported bash/zsh rc files when you run it explicitly. `npm install` no longer installs shell hooks automatically.
49
-
50
- ### 2) Add MCP client config
51
-
52
- ```json
53
- {
54
- "mcpServers": {
55
- "godot": {
56
- "command": "npx",
57
- "args": ["-y", "gopeak"],
58
- "env": {
59
- "GODOT_PATH": "/path/to/godot",
60
- "GOPEAK_TOOL_PROFILE": "compact"
61
- }
62
- }
63
- }
64
- }
65
- ```
66
-
67
- > `GOPEAK_TOOL_PROFILE=compact` is the default. It exposes 33 core tools with 22 dynamic tool groups (78 additional tools) that activate on demand — keeping token usage low while preserving full capability.
68
-
69
- ### 3) First prompts to try
70
-
71
- - "List Godot projects in `/your/projects` and show project info."
72
- - "Create `scenes/Player.tscn` with `CharacterBody2D` root and add a movement script."
73
- - "Run project, get debug output, then fix top error."
74
-
75
- ---
76
-
77
- ## Why GoPeak
78
-
79
- - **Real project feedback loop**: run the game, inspect logs, and fix in-context.
80
- - **110+ tools available** across scene/script/resource/runtime/LSP/DAP/input/assets.
81
- - **Token-efficient by default**: compact tool surface (33 tools) + dynamic tool groups. Only activate what you need — no more 110-tool context bombs.
82
- - **Dynamic tool groups**: search with `tool.catalog` and matching groups auto-activate. Or manually activate with `tool.groups`.
83
- - **Deep Godot integration**: ClassDB queries, runtime inspection, debugger hooks, bridge-based scene/resource edits.
84
-
85
- ### Best For
86
-
87
- - Solo/indie developers moving quickly with AI assistance
88
- - Teams that need AI grounded in actual project/runtime state
89
- - Debug-heavy workflows (breakpoints, stack traces, live runtime checks)
90
-
91
- ---
92
-
93
- ## Tool Surface Model (Important)
94
-
95
- GoPeak supports three exposure profiles:
96
-
97
- - `compact` (default): 33 core tools + **22 dynamic tool groups** (78 additional tools activated on demand)
98
- - `full`: exposes full legacy tool list (110+)
99
- - `legacy`: same exposed behavior as `full`
100
-
101
- Configure with either:
102
-
103
- - `GOPEAK_TOOL_PROFILE`
104
- - `MCP_TOOL_PROFILE` (fallback alias)
105
-
106
- ### Dynamic Tool Groups (compact mode)
107
-
108
- In `compact` mode, 78 additional tools are organized into **22 groups** that activate automatically when needed:
109
-
110
- | Group | Tools | Description |
111
- |---|---|---|
112
- | `scene_advanced` | 3 | Duplicate, reparent nodes, load sprites |
113
- | `uid` | 2 | UID management for resources |
114
- | `import_export` | 5 | Import pipeline, reimport, validate project |
115
- | `autoload` | 4 | Autoload singletons, main scene |
116
- | `signal` | 2 | Disconnect signals, list connections |
117
- | `runtime` | 4 | Live scene inspection, runtime properties, metrics |
118
- | `resource` | 4 | Create/modify materials, shaders, resources |
119
- | `animation` | 5 | Animations, tracks, animation tree, state machine |
120
- | `plugin` | 3 | Enable/disable/list editor plugins |
121
- | `input` | 1 | Input action mapping |
122
- | `tilemap` | 2 | TileSet and TileMap cell painting |
123
- | `audio` | 4 | Audio buses, effects, volume |
124
- | `navigation` | 2 | Navigation regions and agents |
125
- | `theme_ui` | 3 | Theme colors, font sizes, shaders |
126
- | `asset_store` | 3 | Search/download CC0 assets |
127
- | `testing` | 6 | Screenshots, viewport capture, input injection |
128
- | `dx_tools` | 4 | Error log, project health, find usages, scaffold |
129
- | `intent_tracking` | 9 | Intent capture, decision logs, handoff briefs |
130
- | `class_advanced` | 1 | Class inheritance inspection |
131
- | `lsp` | 3 | GDScript completions, hover, symbols |
132
- | `dap` | 6 | Breakpoints, stepping, stack traces |
133
- | `version_gate` | 2 | Version validation, patch verification |
134
-
135
- **How it works:**
136
-
137
- 1. **Auto-activation via catalog**: Search with `tool.catalog` and matching groups activate automatically.
138
- > "Use `tool.catalog` with query `animation` and show relevant tools."
139
-
140
- 2. **Manual activation**: Directly activate a group with `tool.groups`.
141
- > "Use `tool.groups` to activate the `dap` group for debugging."
142
-
143
- 3. **Deactivation**: Remove groups when done to reduce context.
144
- > "Use `tool.groups` to reset all active groups."
145
-
146
- The server sends `notifications/tools/list_changed` so MCP clients (Claude Code, Claude Desktop) automatically refresh the tool list.
147
- If your MCP client caches tools aggressively and does not refresh after activation, reconnect the client or call the newly activated tool directly once to force a fresh `tools/list` round-trip.
148
-
149
- ### Typed property values for scene tools
150
-
151
- Bridge-backed scene tools (`add_node`, `set_node_properties`) now coerce common vector payloads such as `{ "x": 100, "y": 200 }` and `[100, 200]` for typed properties like `position` and `scale`. Tagged values are still the safest cross-tool form:
152
-
153
- ```json
154
- {
155
- "position": { "type": "Vector2", "x": 100, "y": 200 },
156
- "scale": { "type": "Vector2", "x": 2, "y": 2 }
157
- }
158
- ```
159
-
160
- The internal headless serializer uses `_type`, but MCP callers should prefer `type` when they need an explicit cross-tool Godot value tag.
161
-
162
- ### Don't worry about tokens
163
-
164
- GoPeak uses **cursor-based pagination** for `tools/list` even in `full` profile, tools are delivered in pages (default 33) instead of dumping all 110+ definitions at once. Your AI client fetches the next page only when it needs more.
165
-
166
- Set page size with `GOPEAK_TOOLS_PAGE_SIZE`:
167
-
168
- ```json
169
- {
170
- "env": {
171
- "GOPEAK_TOOLS_PAGE_SIZE": "25"
172
- }
173
- }
174
- ```
175
-
176
- ---
177
-
178
- ## Installation Options
179
-
180
- ### A) Recommended: npx
181
-
182
- ```bash
183
- npx -y gopeak
184
- ```
185
-
186
- ### B) Global install
187
-
188
- ```bash
189
- npm install -g gopeak
190
- gopeak
191
- ```
192
-
193
- Optional shell hooks for update notifications remain available via:
194
-
195
- ```bash
196
- gopeak setup
197
- ```
198
-
199
- ### C) From source
200
-
201
- ```bash
202
- git clone https://github.com/HaD0Yun/Gopeak-godot-mcp.git
203
- cd godot-mcp
204
- npm install
205
- npm run build
206
- node build/index.js
207
- ```
208
-
209
- GoPeak also exposes two CLI bin names:
210
-
211
- - `gopeak`
212
- - `godot-mcp`
213
-
214
- ---
215
-
216
- ## Documentation
217
-
218
- - [Documentation Map](docs/README.md)
219
- - [Architecture](docs/architecture.md)
220
- - [Platform Roadmap](docs/platform-roadmap.md)
221
- - [Unity-MCP Benchmark Plan](docs/unity-mcp-benchmark-plan.md)
222
- - [Release Process](docs/release-process.md)
223
-
224
- ## CI
225
-
226
- GitHub Actions runs on push/PR and executes:
227
-
228
- 1. `npm run build`
229
- 2. `npx tsc --noEmit`
230
- 3. `npm run smoke`
231
-
232
- Run the same checks locally before opening a PR:
233
-
234
- ```bash
235
- npm run ci
236
- npm run test:dynamic-groups
237
- npm run test:integration
238
- ```
239
-
240
- ---
241
-
242
- ## Versioning & Release
243
-
244
- Use the built-in bump script to keep `package.json` and `server.json` in sync:
245
-
246
- ```bash
247
- node scripts/bump-version.mjs patch
248
- node scripts/bump-version.mjs minor --dry-run
249
- ```
250
-
251
- Full release checklist: [`docs/release-process.md`](docs/release-process.md).
252
-
253
- ---
254
-
255
- ## Addons (Recommended)
256
-
257
- ### Auto Reload + Editor Bridge + Runtime Addon installer
258
-
259
- Install in your Godot project folder:
260
-
261
- ```bash
262
- curl -sL https://raw.githubusercontent.com/HaD0Yun/Gopeak-godot-mcp/main/install-addon.sh | bash
263
- ```
264
-
265
- PowerShell:
266
-
267
- ```powershell
268
- iwr https://raw.githubusercontent.com/HaD0Yun/Gopeak-godot-mcp/main/install-addon.ps1 -UseBasicParsing | iex
269
- ```
270
-
271
- Then enable plugins in **Project Settings → Plugins** (especially `godot_mcp_editor` for bridge-backed scene/resource tools).
272
-
273
- ---
274
-
275
- ## Core Capabilities
276
-
277
- - **Project control**: launch editor, run/stop project, capture debug output
278
- - **Scene editing**: create scenes, add/delete/reparent nodes, edit properties
279
- - **Script workflows**: create/modify scripts, inspect script structure
280
- - **Resources**: create/modify resources, materials, shaders, tilesets
281
- - **Signals/animation**: connect signals, build animations/tracks/state machines
282
- - **Runtime tools**: inspect live tree, set properties, call methods, metrics
283
- - **LSP + DAP**: diagnostics/completion/hover + breakpoints/step/stack trace
284
- - **Input + screenshots**: keyboard/mouse/action injection and viewport capture
285
- - **Asset library**: search/fetch CC0 assets (Poly Haven, AmbientCG, Kenney)
286
-
287
- ### Tool families (examples)
288
-
289
- | Area | Examples |
290
- |---|---|
291
- | Project | `project.list`, `project.info`, `editor.run` |
292
- | Scene/Node | `scene.create`, `scene.node.add`, `set_node_properties` |
293
- | Script | `script.create`, `script.modify`, `script.info` |
294
- | Runtime | `runtime.status`, `inspect_runtime_tree`, `call_runtime_method` |
295
- | LSP/DAP | `lsp.diagnostics`, `lsp_get_hover`, `dap_set_breakpoint`, `dap.output` |
296
- | Input/Visual | `inject_key`, `inject_mouse_click`, `capture_screenshot` |
297
-
298
- ---
299
-
300
- ## Project Visualizer
301
-
302
- Visualize your entire project architecture with `visualizer.map` (`map_project` legacy). Scripts are grouped by folder structure into color-coded categories.
303
-
304
- ![Project Visualizer — AI-generated architecture map](assets/visualizer-category-map.png)
305
-
306
- ---
307
-
308
- ## Quick Prompt Examples
309
-
310
- ### Build
311
- - "Create a Player scene with CharacterBody2D, Sprite2D, CollisionShape2D, and a basic movement script."
312
- - "Add an enemy spawner scene and wire spawn signals to GameManager."
313
-
314
- ### Debug
315
- - "Run the project, collect errors, and fix the top 3 issues automatically."
316
- - "Set a breakpoint at `scripts/player.gd:42`, continue execution, and show stack trace when hit."
317
-
318
- ### Runtime testing
319
- - "Press `ui_accept`, move mouse to (400, 300), click, then capture a screenshot."
320
- - "Inspect live scene tree and report nodes with missing scripts or invalid references."
321
-
322
- ### Discovery & dynamic groups
323
- - "Use `tool.catalog` with query `tilemap` and list the most relevant tools."
324
- - "Activate the `dap` tool group for breakpoint debugging with `tool.groups`."
325
- - "Find import pipeline tools with `tool.catalog` query `import` and run the best one for texture settings."
326
- - "Reset all active tool groups with `tool.groups` to reduce context."
327
-
328
- ---
329
-
330
- ## Technical Reference
331
-
332
- ### Environment variables
333
-
334
- | Name | Purpose | Default |
335
- |---|---|---|
336
- | `GOPEAK_TOOL_PROFILE` | Tool exposure profile: `compact`, `full`, `legacy` | `compact` |
337
- | `MCP_TOOL_PROFILE` | Fallback profile env alias | `compact` |
338
- | `GODOT_PATH` | Explicit Godot executable path | auto-detect |
339
- | `GODOT_BRIDGE_PORT` | Bridge/Visualizer HTTP+WS port override (aliases: `MCP_BRIDGE_PORT`, `GOPEAK_BRIDGE_PORT`) | `6505` |
340
- | `DEBUG` | Enable server debug logs (`true`/`false`) | `false` |
341
- | `LOG_MODE` | Recording mode: `lite` or `full` | `lite` |
342
- | `GOPEAK_TOOLS_PAGE_SIZE` | Number of tools per `tools/list` page (pagination) | `33` |
343
- | `GOPEAK_BRIDGE_PORT` | Port for unified bridge/visualizer server | `6505` |
344
- | `GOPEAK_BRIDGE_HOST` | Bind host for bridge/visualizer server | `127.0.0.1` |
345
-
346
- ### Ports
347
-
348
- | Port | Service |
349
- |---|---|
350
- | `6505` (default) | Unified Godot Bridge + Visualizer server (+ `/health`, `/mcp`) on loopback by default |
351
- | `6005` | Godot LSP |
352
- | `6006` | Godot DAP |
353
- | `7777` | Runtime addon command socket (only needed for runtime tools) |
354
-
355
- ### Minimal port profiles
356
-
357
- - **Core editing only**: bridge port (`GODOT_BRIDGE_PORT`, default `6505`)
358
- - **Core + runtime actions (screenshots/input/runtime inspect)**: bridge port + `7777`
359
- - **Full debugging + diagnostics**: bridge port + `6005` + `6006` + `7777`
360
-
361
- ---
362
-
363
- ## Troubleshooting
364
-
365
- - **Godot not found** → set `GODOT_PATH`
366
- - **No MCP tools visible** → restart your MCP client
367
- - **Project path invalid** → confirm `project.godot` exists
368
- - **Runtime tools not working** → install/enable runtime addon plugin
369
- - **Need a tool that is not visible** → run `tool.catalog` to search and auto-activate matching groups, or use `tool.groups` to activate a specific group
370
- - **`get_editor_status` says disconnected while the Godot editor shows connected** → check whether another `gopeak`/MCP server instance already owns bridge port `6505`; the status payload now reports the startup error and suggests stopping duplicate servers
371
-
372
- ---
373
-
374
- ## Docs & Project Links
375
-
376
- - [Architecture (MCP Platform Direction)](docs/architecture.md)
377
- - [Platform Roadmap (P1/P2/P3)](docs/platform-roadmap.md)
378
- - [CHANGELOG](CHANGELOG.md)
379
- - [ROADMAP](ROADMAP.md)
380
- - [CONTRIBUTING](CONTRIBUTING.md)
381
-
382
- ---
383
-
384
- ## License
385
-
386
- MIT — see [LICENSE](LICENSE).
387
-
388
- ## Credits
389
-
390
- - Original MCP server by [Coding-Solo](https://github.com/Coding-Solo/godot-mcp)
391
- - GoPeak enhancements by [HaD0Yun](https://github.com/HaD0Yun)
392
- - Project visualizer inspired by [tomyud1/godot-mcp](https://github.com/tomyud1/godot-mcp)
1
+ # GoPeak
2
+
3
+ [![](https://badge.mcpx.dev?type=server 'MCP Server')](https://modelcontextprotocol.io/introduction)
4
+ [![Made with Godot](https://img.shields.io/badge/Made%20with-Godot-478CBF?style=flat&logo=godot%20engine&logoColor=white)](https://godotengine.org)
5
+ [![](https://img.shields.io/badge/Node.js-339933?style=flat&logo=nodedotjs&logoColor=white 'Node.js')](https://nodejs.org/en/download/)
6
+ [![npm](https://img.shields.io/npm/v/gopeak?style=flat&logo=npm&logoColor=white 'npm')](https://www.npmjs.com/package/gopeak)
7
+ [![](https://img.shields.io/badge/License-MIT-red.svg 'MIT License')](https://opensource.org/licenses/MIT)
8
+
9
+ 🌐 **Languages**: **English** | [한국어](README-ko.md) | [日本語](README-ja.md) | [Deutsch](README-de.md) | [Português](README-pt_BR.md) | [简体中文](README-zh.md)
10
+
11
+ ![GoPeak Hero](assets/gopeak-hero-v2.png)
12
+
13
+ **GoPeak is an MCP server for Godot 4 that gives AI assistants a real edit → run → inspect → fix loop.**
14
+
15
+ It is designed for trusted Godot 4 workflows: small default tool surface, setup-gated advanced capabilities, and explicit compatibility rules for older/legacy tool names.
16
+
17
+ > English is the canonical source of truth. Localized READMEs are concise overviews and may lag behind `README.md`.
18
+ >
19
+ > Discord is temporarily unavailable while the invite link is refreshed. Use [GitHub Discussions](https://github.com/HaD0Yun/Gopeak-godot-mcp/discussions) for now.
20
+
21
+ ---
22
+
23
+ ## Quick Start
24
+
25
+ ### Requirements
26
+
27
+ - Godot 4.x
28
+ - Node.js 18+
29
+ - MCP-compatible client such as Claude Desktop, Cursor, Cline, or OpenCode
30
+
31
+ ### 1) Run GoPeak
32
+
33
+ ```bash
34
+ npx -y gopeak
35
+ ```
36
+
37
+ or install globally:
38
+
39
+ ```bash
40
+ npm install -g gopeak
41
+ gopeak
42
+ ```
43
+
44
+ ### 2) Add MCP client config
45
+
46
+ ```json
47
+ {
48
+ "mcpServers": {
49
+ "godot": {
50
+ "command": "npx",
51
+ "args": ["-y", "gopeak"],
52
+ "env": {
53
+ "GODOT_PATH": "/path/to/godot",
54
+ "GOPEAK_TOOL_PROFILE": "compact"
55
+ }
56
+ }
57
+ }
58
+ }
59
+ ```
60
+
61
+ `compact` is the default profile. It keeps the initial MCP context small and exposes additional setup-gated groups only when requested.
62
+
63
+ ### 3) Try these prompts
64
+
65
+ - "List Godot projects in `/your/projects` and show project info."
66
+ - "Create `scenes/Player.tscn` with a `CharacterBody2D` root and a movement script."
67
+ - "Run the project, read the debug output, and fix the top error."
68
+ - "Use `tool.catalog` to find animation tools, then activate the right group."
69
+
70
+ ---
71
+
72
+ ## What You Get
73
+
74
+ | Workflow | What GoPeak can do |
75
+ |---|---|
76
+ | Project control | Find projects, launch the editor, run/stop the game, collect debug output. |
77
+ | Scene + script editing | Create scenes, add nodes, edit typed properties, create/modify GDScript. |
78
+ | Resource workflows | Work with resources, materials, shaders, imports, and export-related checks. |
79
+ | Debugging | Use logs, Godot LSP diagnostics, DAP breakpoints/stack traces, and runtime inspection when configured. |
80
+ | Runtime testing | Capture screenshots, inspect live trees, inject input, and call runtime methods through the addon. |
81
+ | Tool discovery | Keep the default surface compact, then activate capability groups with `tool.catalog` or `tool.groups`. |
82
+
83
+ ### Setup gates
84
+
85
+ Some capabilities require extra Godot-side services. GoPeak labels these instead of pretending everything is always available:
86
+
87
+ | Capability | Requires |
88
+ |---|---|
89
+ | Editor bridge scene/resource edits | `godot_mcp_editor` plugin enabled in the Godot project. |
90
+ | Runtime inspection, screenshots, input injection | Runtime addon/socket, default port `7777`. |
91
+ | GDScript LSP tools | Godot LSP enabled on port `6005`. |
92
+ | DAP debugging tools | Godot DAP enabled on port `6006`. |
93
+ | Asset store/provider tools | Network access and provider availability. |
94
+
95
+ ---
96
+
97
+ ## Add the Godot Plugins
98
+
99
+ Install from your Godot project folder:
100
+
101
+ ```bash
102
+ curl -sL https://raw.githubusercontent.com/HaD0Yun/Gopeak-godot-mcp/main/install-addon.sh | bash
103
+ ```
104
+
105
+ PowerShell:
106
+
107
+ ```powershell
108
+ iwr https://raw.githubusercontent.com/HaD0Yun/Gopeak-godot-mcp/main/install-addon.ps1 -UseBasicParsing | iex
109
+ ```
110
+
111
+ Then enable plugins in **Project Settings → Plugins**:
112
+
113
+ - `godot_mcp_editor` for bridge-backed scene/resource tools
114
+ - `godot_mcp_runtime` for runtime inspection, screenshots, and input workflows
115
+
116
+ Optional shell hooks for update notifications are opt-in:
117
+
118
+ ```bash
119
+ gopeak setup
120
+ ```
121
+
122
+ `gopeak setup` only modifies supported bash/zsh rc files when you run it explicitly. `npm install` does not install shell hooks automatically.
123
+
124
+ ---
125
+
126
+ ## Tool Profiles
127
+
128
+ GoPeak supports three exposure profiles:
129
+
130
+ | Profile | Use when |
131
+ |---|---|
132
+ | `compact` | Default. Trusted core tools plus dynamic groups activated on demand. |
133
+ | `full` | Compatibility/audit mode for the full legacy surface. |
134
+ | `legacy` | Older config alias with the same exposed behavior as `full`. |
135
+
136
+ Set either `GOPEAK_TOOL_PROFILE` or the fallback alias `MCP_TOOL_PROFILE`.
137
+
138
+ ### Dynamic groups
139
+
140
+ In compact mode, search with `tool.catalog`; matching groups auto-activate. You can also manage groups directly with `tool.groups`.
141
+
142
+ Common groups:
143
+
144
+ | Group | Status | Notes |
145
+ |---|---|---|
146
+ | `runtime` | optional-runtime | Live scene tree, properties, method calls, metrics. Requires runtime addon/socket. |
147
+ | `testing` | optional-runtime | Screenshots, viewport capture, input injection. Requires runtime/editor setup. |
148
+ | `lsp` | optional-lsp | Diagnostics, completion, hover, symbols. Requires Godot LSP on port `6005`. |
149
+ | `dap` | optional-dap | Breakpoints, stepping, stack traces. Requires Godot DAP on port `6006`. |
150
+ | `asset_store` | optional-network | External CC0 asset search/download. Network/provider dependent. |
151
+ | `class_advanced` | trusted-static | ClassDB/inheritance discovery backed by static engine metadata. |
152
+ | `tilemap` | audit-required | Must account for Godot 4.3+ `TileMapLayer` behavior before promotion. |
153
+ | mutation groups | audit-required | Scene/resource/script/settings/signal/autoload/import/audio/navigation/theme/animation groups need fixture evidence before being marketed as fully trusted. |
154
+ | `intent_tracking` | workflow-layer | Workflow memory/handoff helpers, not a Godot engine primitive. Keep opt-in. |
155
+
156
+ If your MCP client does not refresh after activation, reconnect the client or call the newly activated tool once to force a fresh `tools/list` round-trip.
157
+
158
+ GoPeak also uses cursor-based pagination for `tools/list` so large profiles are not dumped into context at once. Tune it with `GOPEAK_TOOLS_PAGE_SIZE` when needed.
159
+
160
+ ---
161
+
162
+ ## Typed Godot Values
163
+
164
+ Bridge-backed scene tools such as `add_node` and `set_node_properties` accept common vector payloads for typed properties:
165
+
166
+ ```json
167
+ {
168
+ "position": { "type": "Vector2", "x": 100, "y": 200 },
169
+ "scale": { "type": "Vector2", "x": 2, "y": 2 }
170
+ }
171
+ ```
172
+
173
+ Plain `{ "x": 100, "y": 200 }` and `[100, 200]` are also coerced for common `Vector2` fields, but tagged values are safest across tools.
174
+
175
+ ---
176
+
177
+ ## Useful Commands
178
+
179
+ ```bash
180
+ # run from npm
181
+ npx -y gopeak
182
+
183
+ # install globally
184
+ npm install -g gopeak
185
+
186
+ # run from source
187
+ git clone https://github.com/HaD0Yun/Gopeak-godot-mcp.git
188
+ cd Gopeak-godot-mcp
189
+ npm install
190
+ npm run build
191
+ node build/index.js
192
+
193
+ # local verification
194
+ npm run ci
195
+ npm run test:dynamic-groups
196
+ npm run test:metadata
197
+ npm run test:packaging
198
+ ```
199
+
200
+ CLI bin names:
201
+
202
+ - `gopeak`
203
+ - `godot-mcp`
204
+
205
+ ---
206
+
207
+ ## Environment & Ports
208
+
209
+ | Name | Purpose | Default |
210
+ |---|---|---|
211
+ | `GOPEAK_TOOL_PROFILE` | Tool exposure profile: `compact`, `full`, `legacy` | `compact` |
212
+ | `MCP_TOOL_PROFILE` | Fallback profile env alias | `compact` |
213
+ | `GODOT_PATH` | Explicit Godot executable path | auto-detect |
214
+ | `GODOT_BRIDGE_PORT` | Bridge/Visualizer HTTP+WS port override | `6505` |
215
+ | `GOPEAK_BRIDGE_HOST` | Bridge/Visualizer bind host | `127.0.0.1` |
216
+ | `GOPEAK_TOOLS_PAGE_SIZE` | Number of tools per `tools/list` page | `33` |
217
+ | `GOPEAK_RUNTIME_TIMEOUT_MS` | Runtime addon command timeout in milliseconds | `10000` |
218
+ | `DEBUG` | Enable server debug logs | `false` |
219
+ | `LOG_MODE` | Recording mode: `lite` or `full` | `lite` |
220
+
221
+ | Port | Service |
222
+ |---|---|
223
+ | `6505` | Unified Godot Bridge + Visualizer server on loopback by default. |
224
+ | `6005` | Godot LSP. |
225
+ | `6006` | Godot DAP. |
226
+ | `7777` | Runtime addon command socket. |
227
+
228
+ Runtime screenshot tools (`capture_screenshot`, `capture_viewport`) use a GoPeak-managed temporary PNG file when the runtime addon supports `output_path`, then return normal MCP image content. Older runtime addons that do not receive an `output_path` continue to return inline base64 screenshots.
229
+
230
+ ---
231
+
232
+ ## Troubleshooting
233
+
234
+ - **Godot not found** → set `GODOT_PATH`.
235
+ - **No MCP tools visible** → restart your MCP client.
236
+ - **Need a hidden tool** → search with `tool.catalog` or activate a group with `tool.groups`.
237
+ - **Project path invalid** → confirm `project.godot` exists.
238
+ - **Runtime tools not working** → install/enable the runtime addon and check port `7777`.
239
+ - **Runtime screenshots time out** → update the runtime addon so screenshot commands support the managed `output_path` flow. For slow runtime responses, raise `GOPEAK_RUNTIME_TIMEOUT_MS`; older addons may still time out on large inline base64 screenshots.
240
+ - **Editor bridge disconnected** → stop duplicate `gopeak`/MCP servers that may already own bridge port `6505`; `get_editor_status` reports bridge startup errors such as `EADDRINUSE`.
241
+
242
+ ---
243
+
244
+ ## Migration & Deprecation Policy
245
+
246
+ GoPeak treats `compact` as the safe default and `full`/`legacy` as compatibility profiles. Future hide, remove, rename, or API-contract changes must include:
247
+
248
+ 1. old → new mapping or an explicit no-replacement note;
249
+ 2. profile impact (`compact`, `full`, `legacy`, or opt-in group);
250
+ 3. alias window and planned removal timing;
251
+ 4. README/docs and release-note updates;
252
+ 5. verification proving `tools/list` exposure and alias behavior;
253
+ 6. migration prompt examples for common Godot workflows.
254
+
255
+ Current stance: legacy tool names and compact aliases remain supported. Optional external groups (`runtime`, `testing`, `lsp`, `dap`, `asset_store`) are setup-gated, not always-available core behavior.
256
+
257
+ Full policy: [docs/migration-policy.md](docs/migration-policy.md).
258
+
259
+ ---
260
+
261
+ ## More Docs
262
+
263
+ - [Documentation Map](docs/README.md)
264
+ - [Architecture](docs/architecture.md)
265
+ - [Migration Policy](docs/migration-policy.md)
266
+ - [Release Process](docs/release-process.md)
267
+ - [CHANGELOG](CHANGELOG.md)
268
+ - [ROADMAP](ROADMAP.md)
269
+ - [CONTRIBUTING](CONTRIBUTING.md)
270
+
271
+ ---
272
+
273
+ ## License & Credits
274
+
275
+ MIT see [LICENSE](LICENSE).
276
+
277
+ - Original MCP server by [Coding-Solo](https://github.com/Coding-Solo/godot-mcp)
278
+ - GoPeak enhancements by [HaD0Yun](https://github.com/HaD0Yun)
279
+ - Project visualizer inspired by [tomyud1/godot-mcp](https://github.com/tomyud1/godot-mcp)