godot-mcp-runtime 3.0.0 → 3.1.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/README.md +55 -67
- package/dist/dispatch.js +27 -27
- package/dist/dispatch.js.map +1 -1
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/scripts/godot_operations.gd +150 -115
- package/dist/scripts/mcp_bridge.gd +19 -24
- package/dist/tools/autoload-tools.d.ts +8 -8
- package/dist/tools/autoload-tools.d.ts.map +1 -1
- package/dist/tools/autoload-tools.js +15 -11
- package/dist/tools/autoload-tools.js.map +1 -1
- package/dist/tools/node-tools.d.ts.map +1 -1
- package/dist/tools/node-tools.js +105 -25
- package/dist/tools/node-tools.js.map +1 -1
- package/dist/tools/project-tools.d.ts.map +1 -1
- package/dist/tools/project-tools.js +52 -15
- package/dist/tools/project-tools.js.map +1 -1
- package/dist/tools/runtime-tools.d.ts.map +1 -1
- package/dist/tools/runtime-tools.js +224 -28
- package/dist/tools/runtime-tools.js.map +1 -1
- package/dist/tools/scene-tools.d.ts.map +1 -1
- package/dist/tools/scene-tools.js +30 -12
- package/dist/tools/scene-tools.js.map +1 -1
- package/dist/tools/validate-tools.d.ts.map +1 -1
- package/dist/tools/validate-tools.js +89 -30
- package/dist/tools/validate-tools.js.map +1 -1
- package/dist/utils/autoload-ini.d.ts +6 -0
- package/dist/utils/autoload-ini.d.ts.map +1 -1
- package/dist/utils/autoload-ini.js +13 -0
- package/dist/utils/autoload-ini.js.map +1 -1
- package/dist/utils/bridge-manager.d.ts +18 -1
- package/dist/utils/bridge-manager.d.ts.map +1 -1
- package/dist/utils/bridge-manager.js +61 -11
- package/dist/utils/bridge-manager.js.map +1 -1
- package/dist/utils/bridge-protocol.d.ts +6 -3
- package/dist/utils/bridge-protocol.d.ts.map +1 -1
- package/dist/utils/bridge-protocol.js +28 -15
- package/dist/utils/bridge-protocol.js.map +1 -1
- package/dist/utils/godot-runner.d.ts +47 -3
- package/dist/utils/godot-runner.d.ts.map +1 -1
- package/dist/utils/godot-runner.js +239 -56
- package/dist/utils/godot-runner.js.map +1 -1
- package/dist/utils/logger.d.ts +1 -0
- package/dist/utils/logger.d.ts.map +1 -1
- package/dist/utils/logger.js +1 -1
- package/dist/utils/logger.js.map +1 -1
- package/package.json +2 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { join, sep } from 'path';
|
|
1
|
+
import { join, sep, resolve } from 'path';
|
|
2
2
|
import { existsSync, readFileSync, writeFileSync, mkdirSync } from 'fs';
|
|
3
|
-
import { normalizeParameters, validateProjectArgs, createErrorResponse, getErrorMessage, BRIDGE_WAIT_SPAWNED_TIMEOUT_MS, } from '../utils/godot-runner.js';
|
|
3
|
+
import { normalizeParameters, validateProjectArgs, validateSubPath, createErrorResponse, getErrorMessage, isUnderDir, BRIDGE_WAIT_SPAWNED_TIMEOUT_MS, } from '../utils/godot-runner.js';
|
|
4
4
|
import { attachRuntimeWarnings, parseBridgeJson, MAX_RUNTIME_ERROR_CONTEXT_LINES, } from '../utils/handler-helpers.js';
|
|
5
5
|
import { logDebug } from '../utils/logger.js';
|
|
6
6
|
import { randomUUID } from 'crypto';
|
|
@@ -25,7 +25,7 @@ export const runtimeToolDefinitions = [
|
|
|
25
25
|
},
|
|
26
26
|
{
|
|
27
27
|
name: 'run_project',
|
|
28
|
-
description: 'Spawn a Godot project as a child process with stdout/stderr captured.
|
|
28
|
+
description: 'Spawn a Godot project as a child process with stdout/stderr captured. Required before take_screenshot, simulate_input, get_ui_elements, run_script, or get_debug_output. For a Godot process you launched yourself, use attach_project instead. Verifies MCP bridge readiness before returning success. Returns plain-text status with the assigned bridge port. Call stop_project when done. Errors if projectPath is not a Godot project or another session is already active.',
|
|
29
29
|
annotations: { destructiveHint: true },
|
|
30
30
|
inputSchema: {
|
|
31
31
|
type: 'object',
|
|
@@ -42,13 +42,19 @@ export const runtimeToolDefinitions = [
|
|
|
42
42
|
type: 'boolean',
|
|
43
43
|
description: 'If true, hides the Godot window off-screen and blocks all physical keyboard and mouse input, while keeping programmatic input (simulate_input, run_script) and screenshots fully active. Useful for automated agent-driven testing where the window should not be visible or interactive.',
|
|
44
44
|
},
|
|
45
|
+
bridgePort: {
|
|
46
|
+
type: 'number',
|
|
47
|
+
minimum: 1,
|
|
48
|
+
maximum: 65535,
|
|
49
|
+
description: "TCP port for the MCP bridge. Omit to auto-select a free port (recommended). The chosen port is baked into the project's `mcp_bridge.gd` at inject time, so the running Godot listens on exactly this port.",
|
|
50
|
+
},
|
|
45
51
|
},
|
|
46
52
|
required: ['projectPath'],
|
|
47
53
|
},
|
|
48
54
|
},
|
|
49
55
|
{
|
|
50
56
|
name: 'attach_project',
|
|
51
|
-
description: '
|
|
57
|
+
description: 'Inject the MCP bridge into a Godot process you launch yourself, then wait up to 15s for the bridge to respond. Call BEFORE Godot launches — Godot reads autoloads only at process start, so a late call returns "bridge did not respond." Recommended pattern: kick off the Godot launch in parallel with this call so the wait absorbs startup. Prefer run_project unless MCP must not spawn Godot. Returns plain-text status with the resolved bridge port. Call detach_project or stop_project when done.',
|
|
52
58
|
annotations: { destructiveHint: true },
|
|
53
59
|
inputSchema: {
|
|
54
60
|
type: 'object',
|
|
@@ -57,23 +63,36 @@ export const runtimeToolDefinitions = [
|
|
|
57
63
|
type: 'string',
|
|
58
64
|
description: 'Path to the Godot project directory',
|
|
59
65
|
},
|
|
66
|
+
bridgePort: {
|
|
67
|
+
type: 'number',
|
|
68
|
+
minimum: 1,
|
|
69
|
+
maximum: 65535,
|
|
70
|
+
description: "TCP port for the MCP bridge. Omit to auto-select a free port (recommended). The chosen port is baked into the project's `mcp_bridge.gd` at inject time, so the running Godot listens on exactly this port.",
|
|
71
|
+
},
|
|
60
72
|
},
|
|
61
73
|
required: ['projectPath'],
|
|
62
74
|
},
|
|
63
75
|
},
|
|
64
76
|
{
|
|
65
77
|
name: 'detach_project',
|
|
66
|
-
description: 'Clear attached-mode runtime state and remove the injected McpBridge autoload. Does NOT stop the manually launched Godot process — that stays running. Use after attach_project when you are done driving the game from MCP. For spawned sessions (run_project), use stop_project instead. Returns
|
|
78
|
+
description: 'Clear attached-mode runtime state and remove the injected McpBridge autoload. Does NOT stop the manually launched Godot process — that stays running. Use after attach_project when you are done driving the game from MCP. For spawned sessions (run_project), use stop_project instead. Returns: message confirming detach plus externalProcessPreserved (always true here — that is the point of detach vs stop_project). Errors if called outside an attached session.',
|
|
67
79
|
annotations: { destructiveHint: true },
|
|
68
80
|
inputSchema: {
|
|
69
81
|
type: 'object',
|
|
70
82
|
properties: {},
|
|
71
83
|
required: [],
|
|
72
84
|
},
|
|
85
|
+
outputSchema: {
|
|
86
|
+
type: 'object',
|
|
87
|
+
properties: {
|
|
88
|
+
message: { type: 'string' },
|
|
89
|
+
externalProcessPreserved: { type: 'boolean' },
|
|
90
|
+
},
|
|
91
|
+
},
|
|
73
92
|
},
|
|
74
93
|
{
|
|
75
94
|
name: 'get_debug_output',
|
|
76
|
-
description: 'Get captured stdout/stderr from a spawned Godot project. Use whenever runtime tools fail unexpectedly — script errors, missing nodes, and crash backtraces all surface here. Requires run_project (not attach_project; attached mode does not capture output). Returns
|
|
95
|
+
description: 'Get captured stdout/stderr from a spawned Godot project. Use whenever runtime tools fail unexpectedly — script errors, missing nodes, and crash backtraces all surface here. Requires run_project (not attach_project; attached mode does not capture output). Returns: output/errors (last `limit` lines each, default 200), running (false after exit, null when attached), exitCode after exit, attached:true with empty arrays in attached mode.',
|
|
77
96
|
annotations: { readOnlyHint: true },
|
|
78
97
|
inputSchema: {
|
|
79
98
|
type: 'object',
|
|
@@ -85,20 +104,41 @@ export const runtimeToolDefinitions = [
|
|
|
85
104
|
},
|
|
86
105
|
required: [],
|
|
87
106
|
},
|
|
107
|
+
outputSchema: {
|
|
108
|
+
type: 'object',
|
|
109
|
+
properties: {
|
|
110
|
+
output: { type: 'array', items: { type: 'string' } },
|
|
111
|
+
errors: { type: 'array', items: { type: 'string' } },
|
|
112
|
+
running: { type: ['boolean', 'null'] },
|
|
113
|
+
exitCode: { type: ['number', 'null'] },
|
|
114
|
+
attached: { type: 'boolean' },
|
|
115
|
+
tip: { type: 'string' },
|
|
116
|
+
},
|
|
117
|
+
},
|
|
88
118
|
},
|
|
89
119
|
{
|
|
90
120
|
name: 'stop_project',
|
|
91
|
-
description: 'Stop the spawned Godot project and clean up MCP bridge state. Always call when done with runtime testing — even after a crash — to free the single process slot so run_project can be called again. For attached sessions, this detaches without killing the externally launched process. Returns
|
|
121
|
+
description: 'Stop the spawned Godot project and clean up MCP bridge state. Always call when done with runtime testing — even after a crash — to free the single process slot so run_project can be called again. For attached sessions, this detaches without killing the externally launched process. Returns: message, mode ("spawned"/"attached"), externalProcessPreserved (true only for attached), finalOutput and finalErrors (last 200 lines each). Errors if no session is active.',
|
|
92
122
|
annotations: { destructiveHint: true },
|
|
93
123
|
inputSchema: {
|
|
94
124
|
type: 'object',
|
|
95
125
|
properties: {},
|
|
96
126
|
required: [],
|
|
97
127
|
},
|
|
128
|
+
outputSchema: {
|
|
129
|
+
type: 'object',
|
|
130
|
+
properties: {
|
|
131
|
+
message: { type: 'string' },
|
|
132
|
+
mode: { type: 'string' },
|
|
133
|
+
externalProcessPreserved: { type: 'boolean' },
|
|
134
|
+
finalOutput: { type: 'array', items: { type: 'string' } },
|
|
135
|
+
finalErrors: { type: 'array', items: { type: 'string' } },
|
|
136
|
+
},
|
|
137
|
+
},
|
|
98
138
|
},
|
|
99
139
|
{
|
|
100
140
|
name: 'take_screenshot',
|
|
101
|
-
description: 'Capture a PNG of the running viewport. responseMode: preview (default — saves full PNG, returns bounded inline preview at 960x540), full (full inline PNG; use for small text or pixel-level inspection), path_only (saved-path only, no inline image). Saved under .mcp/screenshots. Returns:
|
|
141
|
+
description: 'Capture a PNG of the running viewport. responseMode: preview (default — saves full PNG, returns bounded inline preview at 960x540), full (full inline PNG; use for small text or pixel-level inspection), path_only (saved-path only, no inline image). Saved under .mcp/screenshots. Returns: inline image block (full/preview modes), plus path and size of the saved PNG; previewPath/previewSize in preview mode; warnings for non-fatal runtime errors. Errors if no session or bridge times out (default 10000ms).',
|
|
102
142
|
annotations: { readOnlyHint: true },
|
|
103
143
|
inputSchema: {
|
|
104
144
|
type: 'object',
|
|
@@ -123,10 +163,35 @@ export const runtimeToolDefinitions = [
|
|
|
123
163
|
},
|
|
124
164
|
required: [],
|
|
125
165
|
},
|
|
166
|
+
// The handler also emits an inline `image` content block for full/preview modes;
|
|
167
|
+
// outputSchema only describes the structured JSON text payload per MCP spec.
|
|
168
|
+
outputSchema: {
|
|
169
|
+
type: 'object',
|
|
170
|
+
properties: {
|
|
171
|
+
responseMode: { type: 'string' },
|
|
172
|
+
path: { type: 'string' },
|
|
173
|
+
size: {
|
|
174
|
+
type: 'object',
|
|
175
|
+
properties: {
|
|
176
|
+
width: { type: 'number' },
|
|
177
|
+
height: { type: 'number' },
|
|
178
|
+
},
|
|
179
|
+
},
|
|
180
|
+
previewPath: { type: 'string' },
|
|
181
|
+
previewSize: {
|
|
182
|
+
type: 'object',
|
|
183
|
+
properties: {
|
|
184
|
+
width: { type: 'number' },
|
|
185
|
+
height: { type: 'number' },
|
|
186
|
+
},
|
|
187
|
+
},
|
|
188
|
+
warnings: { type: 'array', items: { type: 'string' } },
|
|
189
|
+
},
|
|
190
|
+
},
|
|
126
191
|
},
|
|
127
192
|
{
|
|
128
193
|
name: 'simulate_input',
|
|
129
|
-
description: "Simulate sequential input in a running project. Each action's `type` (key, mouse_button, mouse_motion, click_element, action, wait) gates which other fields apply — see per-property docs. For click_element use get_ui_elements first; resolution is by path/name, not visible text. Press/release require two actions; insert wait between for frame ticks. Returns:
|
|
194
|
+
description: "Simulate sequential input in a running project. Each action's `type` (key, mouse_button, mouse_motion, click_element, action, wait) gates which other fields apply — see per-property docs. For click_element use get_ui_elements first; resolution is by path/name, not visible text. Press/release require two actions; insert wait between for frame ticks. Returns: success, actions_processed, warnings for runtime errors fired by input handlers. Errors if no session or any action fails validation.",
|
|
130
195
|
annotations: { destructiveHint: true },
|
|
131
196
|
inputSchema: {
|
|
132
197
|
type: 'object',
|
|
@@ -144,11 +209,11 @@ export const runtimeToolDefinitions = [
|
|
|
144
209
|
},
|
|
145
210
|
key: {
|
|
146
211
|
type: 'string',
|
|
147
|
-
description: '[key]
|
|
212
|
+
description: '[key] Godot KEY_* constant name without the prefix (e.g. "W", "Space", "Escape", "Enter", "Tab", "Up", "PageUp"). Errors on unrecognized names.',
|
|
148
213
|
},
|
|
149
214
|
pressed: {
|
|
150
215
|
type: 'boolean',
|
|
151
|
-
description: '[key, mouse_button, action] Whether the input is pressed (true) or released (false)',
|
|
216
|
+
description: '[key, mouse_button, action] Whether the input is pressed (true) or released (false). For mouse_button: omit to auto-click (press+release in one action); set explicitly only for hold/release. For key: defaults to true and does NOT auto-release — emit a second action with pressed:false to release.',
|
|
152
217
|
},
|
|
153
218
|
shift: { type: 'boolean', description: '[key] Shift modifier' },
|
|
154
219
|
ctrl: { type: 'boolean', description: '[key] Ctrl modifier' },
|
|
@@ -164,11 +229,11 @@ export const runtimeToolDefinitions = [
|
|
|
164
229
|
},
|
|
165
230
|
x: {
|
|
166
231
|
type: 'number',
|
|
167
|
-
description: '[mouse_button, mouse_motion] X position in viewport pixels',
|
|
232
|
+
description: '[mouse_button, mouse_motion] X position in viewport pixels (0,0 = top-left)',
|
|
168
233
|
},
|
|
169
234
|
y: {
|
|
170
235
|
type: 'number',
|
|
171
|
-
description: '[mouse_button, mouse_motion] Y position in viewport pixels',
|
|
236
|
+
description: '[mouse_button, mouse_motion] Y position in viewport pixels (0,0 = top-left)',
|
|
172
237
|
},
|
|
173
238
|
relative_x: {
|
|
174
239
|
type: 'number',
|
|
@@ -196,7 +261,7 @@ export const runtimeToolDefinitions = [
|
|
|
196
261
|
},
|
|
197
262
|
ms: {
|
|
198
263
|
type: 'number',
|
|
199
|
-
description: '[wait] Duration in milliseconds to pause before the next action',
|
|
264
|
+
description: '[wait] Duration in milliseconds to pause before the next action (~16ms = one frame at 60fps).',
|
|
200
265
|
},
|
|
201
266
|
},
|
|
202
267
|
required: ['type'],
|
|
@@ -205,10 +270,19 @@ export const runtimeToolDefinitions = [
|
|
|
205
270
|
},
|
|
206
271
|
required: ['actions'],
|
|
207
272
|
},
|
|
273
|
+
outputSchema: {
|
|
274
|
+
type: 'object',
|
|
275
|
+
properties: {
|
|
276
|
+
success: { type: 'boolean' },
|
|
277
|
+
actions_processed: { type: 'number' },
|
|
278
|
+
warnings: { type: 'array', items: { type: 'string' } },
|
|
279
|
+
tip: { type: 'string' },
|
|
280
|
+
},
|
|
281
|
+
},
|
|
208
282
|
},
|
|
209
283
|
{
|
|
210
284
|
name: 'get_ui_elements',
|
|
211
|
-
description: 'Walk the running scene tree and return all Control nodes with positions, sizes, types, and text content. Always call this before simulate_input click_element actions to discover valid element names and paths. Requires an active runtime session (run_project or attach_project). visibleOnly defaults true; pass false to include hidden Controls. filter narrows by class. Returns
|
|
285
|
+
description: 'Walk the running scene tree and return all Control nodes with positions, sizes, types, and text content. Always call this before simulate_input click_element actions to discover valid element names and paths. Requires an active runtime session (run_project or attach_project). visibleOnly defaults true; pass false to include hidden Controls. filter narrows by class. Returns: elements[] with path/type/rect/visible plus optional text/disabled/tooltip.',
|
|
212
286
|
annotations: { readOnlyHint: true },
|
|
213
287
|
inputSchema: {
|
|
214
288
|
type: 'object',
|
|
@@ -224,10 +298,42 @@ export const runtimeToolDefinitions = [
|
|
|
224
298
|
},
|
|
225
299
|
required: [],
|
|
226
300
|
},
|
|
301
|
+
outputSchema: {
|
|
302
|
+
type: 'object',
|
|
303
|
+
properties: {
|
|
304
|
+
elements: {
|
|
305
|
+
type: 'array',
|
|
306
|
+
items: {
|
|
307
|
+
type: 'object',
|
|
308
|
+
properties: {
|
|
309
|
+
name: { type: 'string' },
|
|
310
|
+
path: { type: 'string' },
|
|
311
|
+
type: { type: 'string' },
|
|
312
|
+
rect: {
|
|
313
|
+
type: 'object',
|
|
314
|
+
properties: {
|
|
315
|
+
x: { type: 'number' },
|
|
316
|
+
y: { type: 'number' },
|
|
317
|
+
width: { type: 'number' },
|
|
318
|
+
height: { type: 'number' },
|
|
319
|
+
},
|
|
320
|
+
},
|
|
321
|
+
visible: { type: 'boolean' },
|
|
322
|
+
text: { type: 'string' },
|
|
323
|
+
placeholder: { type: 'string' },
|
|
324
|
+
disabled: { type: 'boolean' },
|
|
325
|
+
tooltip: { type: 'string' },
|
|
326
|
+
},
|
|
327
|
+
},
|
|
328
|
+
},
|
|
329
|
+
warnings: { type: 'array', items: { type: 'string' } },
|
|
330
|
+
tip: { type: 'string' },
|
|
331
|
+
},
|
|
332
|
+
},
|
|
227
333
|
},
|
|
228
334
|
{
|
|
229
335
|
name: 'run_script',
|
|
230
|
-
description: 'Execute a custom GDScript in the live running project with full scene tree access. Requires an active runtime session. Script must extend RefCounted and define func execute(scene_tree: SceneTree) -> Variant. Return values are JSON-serialized (primitives, Vector2/3, Color, Dictionary, Array, and Node path strings). Use print() for debug output — it appears in get_debug_output, not in the result. In spawned mode, stderr runtime errors escalate to errors (when the script returns null) or surface as warnings. Returns { success, result, warnings? } where result is the JSON-serialized return value of execute().',
|
|
336
|
+
description: 'Execute a custom GDScript in the live running project with full scene tree access. Requires an active runtime session. Script must extend RefCounted and define func execute(scene_tree: SceneTree) -> Variant. Return values are JSON-serialized (primitives, Vector2/3, Color, Dictionary, Array, and Node path strings). Use print() for debug output — it appears in get_debug_output, not in the result. In spawned mode, stderr runtime errors escalate to errors (when the script returns null) or surface as warnings. Returns: { success, result, warnings?, tip? } where result is the JSON-serialized return value of execute().',
|
|
231
337
|
annotations: { destructiveHint: true },
|
|
232
338
|
inputSchema: {
|
|
233
339
|
type: 'object',
|
|
@@ -243,6 +349,16 @@ export const runtimeToolDefinitions = [
|
|
|
243
349
|
},
|
|
244
350
|
required: ['script'],
|
|
245
351
|
},
|
|
352
|
+
outputSchema: {
|
|
353
|
+
type: 'object',
|
|
354
|
+
properties: {
|
|
355
|
+
success: { type: 'boolean' },
|
|
356
|
+
result: {},
|
|
357
|
+
warning: { type: 'string' },
|
|
358
|
+
warnings: { type: 'array', items: { type: 'string' } },
|
|
359
|
+
tip: { type: 'string' },
|
|
360
|
+
},
|
|
361
|
+
},
|
|
246
362
|
},
|
|
247
363
|
];
|
|
248
364
|
// --- Helpers ---
|
|
@@ -304,9 +420,32 @@ export async function handleRunProject(runner, args) {
|
|
|
304
420
|
const v = validateProjectArgs(args);
|
|
305
421
|
if ('isError' in v)
|
|
306
422
|
return v;
|
|
423
|
+
if (typeof args.scene === 'string') {
|
|
424
|
+
if (!validateSubPath(v.projectPath, args.scene)) {
|
|
425
|
+
return createErrorResponse(`Invalid scene path: must be project-relative without ".." (got: ${args.scene})`, ['Pass scene as a path relative to the project root, e.g. "scenes/main.tscn"']);
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
if (!runner.getGodotPath()) {
|
|
429
|
+
await runner.detectGodotPath();
|
|
430
|
+
if (!runner.getGodotPath()) {
|
|
431
|
+
return createErrorResponse('Could not find a valid Godot executable path', [
|
|
432
|
+
'Set GODOT_PATH in your MCP client config to your Godot 4.x executable',
|
|
433
|
+
'Ensure the path points at the Godot binary, not its installation folder',
|
|
434
|
+
'On Windows, escape backslashes in JSON (e.g. "D:\\\\Godot\\\\Godot.exe")',
|
|
435
|
+
]);
|
|
436
|
+
}
|
|
437
|
+
}
|
|
307
438
|
try {
|
|
308
439
|
const background = args.background === true;
|
|
309
|
-
|
|
440
|
+
const bridgePort = args.bridgePort;
|
|
441
|
+
if (bridgePort !== undefined) {
|
|
442
|
+
if (!Number.isInteger(bridgePort) ||
|
|
443
|
+
bridgePort < 1 ||
|
|
444
|
+
bridgePort > 65535) {
|
|
445
|
+
return createErrorResponse(`Invalid bridgePort: must be an integer in [1, 65535] (got: ${String(bridgePort)})`, ['Omit bridgePort to auto-select a free port', 'Pass a valid TCP port number']);
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
await runner.runProject(v.projectPath, args.scene, background, bridgePort);
|
|
310
449
|
const bridgeResult = await runner.waitForBridge();
|
|
311
450
|
if (!bridgeResult.ready) {
|
|
312
451
|
if (runner.activeProcess && runner.activeProcess.hasExited) {
|
|
@@ -322,8 +461,14 @@ export async function handleRunProject(runner, args) {
|
|
|
322
461
|
}
|
|
323
462
|
const recentErrors = runner.getRecentErrors(20);
|
|
324
463
|
const errorTail = recentErrors.length > 0 ? `\nLast stderr:\n${recentErrors.join('\n')}` : '';
|
|
464
|
+
const expected = runner.activeBridgePort;
|
|
465
|
+
const onDisk = runner.readBakedBridgePort(v.projectPath);
|
|
466
|
+
const raceDetected = onDisk !== null && expected !== null && onDisk !== expected;
|
|
467
|
+
const racePrefix = raceDetected
|
|
468
|
+
? `Bridge timeout: expected port ${expected}, but on-disk script now has ${onDisk}. Another MCP client likely re-injected concurrently in the same project.\n`
|
|
469
|
+
: '';
|
|
325
470
|
const lines = [
|
|
326
|
-
|
|
471
|
+
`${racePrefix}Godot process started, but the MCP bridge did not respond within ${BRIDGE_WAIT_SPAWNED_TIMEOUT_MS / 1000} seconds.`,
|
|
327
472
|
'- The bridge listener never came up — likely an early _ready error or a stuck process holding the port',
|
|
328
473
|
'- Session has been torn down; retry run_project to start a new one',
|
|
329
474
|
errorTail,
|
|
@@ -334,14 +479,19 @@ export async function handleRunProject(runner, args) {
|
|
|
334
479
|
// Tear down before returning so hasActiveRuntimeSession() reports false
|
|
335
480
|
// and the next run_project lazy-reconnects cleanly.
|
|
336
481
|
await runner.stopProject();
|
|
337
|
-
|
|
482
|
+
const solutions = [
|
|
338
483
|
'Check for broken autoloads with list_autoloads',
|
|
339
|
-
|
|
484
|
+
`Check that the assigned bridge port (${runner.activeBridgePort}) is not occupied by another Godot process`,
|
|
340
485
|
'Retry run_project',
|
|
341
|
-
]
|
|
486
|
+
];
|
|
487
|
+
if (raceDetected) {
|
|
488
|
+
solutions.push('Concurrent MCP clients in the same project are not supported — run them in separate projects or sequence the calls');
|
|
489
|
+
}
|
|
490
|
+
return createErrorResponse(lines.join('\n'), solutions);
|
|
342
491
|
}
|
|
492
|
+
const port = runner.activeBridgePort;
|
|
343
493
|
const lines = [
|
|
344
|
-
|
|
494
|
+
`Godot project started and MCP bridge is ready (port ${port}).`,
|
|
345
495
|
'- Runtime tools (take_screenshot, simulate_input, get_ui_elements, run_script) are available now',
|
|
346
496
|
'- Use get_debug_output to check runtime output and errors',
|
|
347
497
|
'- Call stop_project when done',
|
|
@@ -354,7 +504,15 @@ export async function handleRunProject(runner, args) {
|
|
|
354
504
|
};
|
|
355
505
|
}
|
|
356
506
|
catch (error) {
|
|
357
|
-
|
|
507
|
+
const errorMessage = getErrorMessage(error);
|
|
508
|
+
if (errorMessage.includes('No display server available')) {
|
|
509
|
+
return createErrorResponse(`Failed to run Godot project: ${errorMessage}`, [
|
|
510
|
+
'Use attach_project with an externally launched Godot process',
|
|
511
|
+
'Set DISPLAY or WAYLAND_DISPLAY environment variables',
|
|
512
|
+
'Run from a graphical shell session',
|
|
513
|
+
]);
|
|
514
|
+
}
|
|
515
|
+
return createErrorResponse(`Failed to run Godot project: ${errorMessage}`, [
|
|
358
516
|
'Ensure Godot is installed correctly',
|
|
359
517
|
'Check if the GODOT_PATH environment variable is set correctly',
|
|
360
518
|
]);
|
|
@@ -366,25 +524,47 @@ export async function handleAttachProject(runner, args) {
|
|
|
366
524
|
if ('isError' in v)
|
|
367
525
|
return v;
|
|
368
526
|
try {
|
|
369
|
-
|
|
527
|
+
const attachBridgePort = args.bridgePort;
|
|
528
|
+
if (attachBridgePort !== undefined) {
|
|
529
|
+
if (!Number.isInteger(attachBridgePort) ||
|
|
530
|
+
attachBridgePort < 1 ||
|
|
531
|
+
attachBridgePort > 65535) {
|
|
532
|
+
return createErrorResponse(`Invalid bridgePort: must be an integer in [1, 65535] (got: ${String(attachBridgePort)})`, [
|
|
533
|
+
'Omit bridgePort to auto-select a free port',
|
|
534
|
+
'Pass a valid TCP port number matching the externally launched Godot',
|
|
535
|
+
]);
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
await runner.attachProject(v.projectPath, attachBridgePort);
|
|
370
539
|
const bridgeResult = await runner.waitForBridgeAttached();
|
|
371
540
|
if (!bridgeResult.ready) {
|
|
541
|
+
const expected = runner.activeBridgePort;
|
|
542
|
+
const onDisk = runner.readBakedBridgePort(v.projectPath);
|
|
543
|
+
const raceDetected = onDisk !== null && expected !== null && onDisk !== expected;
|
|
544
|
+
const racePrefix = raceDetected
|
|
545
|
+
? `Bridge timeout: expected port ${expected}, but on-disk script now has ${onDisk}. Another MCP client likely re-injected concurrently in the same project.\n`
|
|
546
|
+
: '';
|
|
372
547
|
// Tear down the attached-mode session state so retrying with
|
|
373
548
|
// attach_project (or run_project) works without a manual detach first.
|
|
374
549
|
await runner.stopProject();
|
|
375
|
-
|
|
550
|
+
const solutions = [
|
|
376
551
|
'If you are launching Godot yourself, run the launch in parallel with attach_project next time so the wait absorbs the startup — do not sequentialize',
|
|
377
552
|
'If a human is launching Godot, retry attach_project once they have launched — bridge.inject is idempotent',
|
|
378
553
|
'If Godot is already running but was launched before the bridge was injected, restart it (autoloads are read at startup)',
|
|
379
|
-
|
|
380
|
-
]
|
|
554
|
+
`Check that no other Godot project is occupying the assigned bridge port (${runner.activeBridgePort})`,
|
|
555
|
+
];
|
|
556
|
+
if (raceDetected) {
|
|
557
|
+
solutions.push('Concurrent MCP clients in the same project are not supported — run them in separate projects or sequence the calls');
|
|
558
|
+
}
|
|
559
|
+
return createErrorResponse(`${racePrefix}Project attached but the MCP bridge is not ready.\n${bridgeResult.error || ''}`, solutions);
|
|
381
560
|
}
|
|
561
|
+
const attachedPort = runner.activeBridgePort;
|
|
382
562
|
return {
|
|
383
563
|
content: [
|
|
384
564
|
{
|
|
385
565
|
type: 'text',
|
|
386
566
|
text: [
|
|
387
|
-
|
|
567
|
+
`Project attached and MCP bridge is ready (port ${attachedPort}).`,
|
|
388
568
|
'- Runtime tools (take_screenshot, simulate_input, get_ui_elements, run_script) are available now',
|
|
389
569
|
'- get_debug_output is unavailable in attached mode because MCP did not spawn the process',
|
|
390
570
|
'- Use detach_project or stop_project when done to clean up the injected bridge state',
|
|
@@ -560,6 +740,16 @@ export async function handleTakeScreenshot(runner, args) {
|
|
|
560
740
|
}
|
|
561
741
|
// Normalize path for the local filesystem (forward slashes from GDScript)
|
|
562
742
|
const screenshotPath = normalizeScreenshotPath(parsed.path);
|
|
743
|
+
// Defense-in-depth: the bridge runs in user-controlled GDScript and could
|
|
744
|
+
// be patched to return any path. Refuse to read anything outside the
|
|
745
|
+
// project's own .mcp/screenshots/ directory.
|
|
746
|
+
const screenshotsRoot = resolve(runner.activeProjectPath, '.mcp', 'screenshots');
|
|
747
|
+
if (!isUnderDir(screenshotsRoot, screenshotPath)) {
|
|
748
|
+
return createErrorResponse('Bridge returned a screenshot path outside .mcp/screenshots/. Refusing to read.', [
|
|
749
|
+
'This indicates a tampered or misbehaving McpBridge autoload',
|
|
750
|
+
'Stop the project, verify the bridge script is the one shipped with this server, and retry',
|
|
751
|
+
]);
|
|
752
|
+
}
|
|
563
753
|
if (!existsSync(screenshotPath)) {
|
|
564
754
|
return createErrorResponse(`Screenshot file not found at: ${screenshotPath}`, [
|
|
565
755
|
'The screenshot may have failed to save',
|
|
@@ -588,6 +778,12 @@ export async function handleTakeScreenshot(runner, args) {
|
|
|
588
778
|
]);
|
|
589
779
|
}
|
|
590
780
|
const previewPath = normalizeScreenshotPath(parsed.preview_path);
|
|
781
|
+
if (!isUnderDir(screenshotsRoot, previewPath)) {
|
|
782
|
+
return createErrorResponse('Bridge returned a screenshot preview path outside .mcp/screenshots/. Refusing to read.', [
|
|
783
|
+
'This indicates a tampered or misbehaving McpBridge autoload',
|
|
784
|
+
'Stop the project, verify the bridge script is the one shipped with this server, and retry',
|
|
785
|
+
]);
|
|
786
|
+
}
|
|
591
787
|
if (!existsSync(previewPath)) {
|
|
592
788
|
return createErrorResponse(`Screenshot preview file not found at: ${previewPath}`, [
|
|
593
789
|
'The preview may have failed to save',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-tools.js","sourceRoot":"","sources":["../../src/tools/runtime-tools.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"runtime-tools.js","sourceRoot":"","sources":["../../src/tools/runtime-tools.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scene-tools.d.ts","sourceRoot":"","sources":["../../src/tools/scene-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAW7F,eAAO,MAAM,oBAAoB,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"scene-tools.d.ts","sourceRoot":"","sources":["../../src/tools/scene-tools.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAW7F,eAAO,MAAM,oBAAoB,EAAE,cAAc,EAyNhD,CAAC;AAIF,wBAAsB,iBAAiB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;GAYjF;AAED,wBAAsB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;GAsC7E;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;GA4BhF;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;GAgB/E;AAED,wBAAsB,uBAAuB,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;GA0BvF;AAED,wBAAsB,0BAA0B,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe;;;;;;GAuB1F"}
|