godot-mcp-runtime 3.0.0 → 3.1.0
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 +44 -67
- package/dist/dispatch.js +27 -27
- package/dist/dispatch.js.map +1 -1
- package/dist/index.js +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 +214 -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 +221 -40
- 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,22 @@ 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
|
+
}
|
|
307
428
|
try {
|
|
308
429
|
const background = args.background === true;
|
|
309
|
-
|
|
430
|
+
const bridgePort = args.bridgePort;
|
|
431
|
+
if (bridgePort !== undefined) {
|
|
432
|
+
if (!Number.isInteger(bridgePort) ||
|
|
433
|
+
bridgePort < 1 ||
|
|
434
|
+
bridgePort > 65535) {
|
|
435
|
+
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']);
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
await runner.runProject(v.projectPath, args.scene, background, bridgePort);
|
|
310
439
|
const bridgeResult = await runner.waitForBridge();
|
|
311
440
|
if (!bridgeResult.ready) {
|
|
312
441
|
if (runner.activeProcess && runner.activeProcess.hasExited) {
|
|
@@ -322,8 +451,14 @@ export async function handleRunProject(runner, args) {
|
|
|
322
451
|
}
|
|
323
452
|
const recentErrors = runner.getRecentErrors(20);
|
|
324
453
|
const errorTail = recentErrors.length > 0 ? `\nLast stderr:\n${recentErrors.join('\n')}` : '';
|
|
454
|
+
const expected = runner.activeBridgePort;
|
|
455
|
+
const onDisk = runner.readBakedBridgePort(v.projectPath);
|
|
456
|
+
const raceDetected = onDisk !== null && expected !== null && onDisk !== expected;
|
|
457
|
+
const racePrefix = raceDetected
|
|
458
|
+
? `Bridge timeout: expected port ${expected}, but on-disk script now has ${onDisk}. Another MCP client likely re-injected concurrently in the same project.\n`
|
|
459
|
+
: '';
|
|
325
460
|
const lines = [
|
|
326
|
-
|
|
461
|
+
`${racePrefix}Godot process started, but the MCP bridge did not respond within ${BRIDGE_WAIT_SPAWNED_TIMEOUT_MS / 1000} seconds.`,
|
|
327
462
|
'- The bridge listener never came up — likely an early _ready error or a stuck process holding the port',
|
|
328
463
|
'- Session has been torn down; retry run_project to start a new one',
|
|
329
464
|
errorTail,
|
|
@@ -334,14 +469,19 @@ export async function handleRunProject(runner, args) {
|
|
|
334
469
|
// Tear down before returning so hasActiveRuntimeSession() reports false
|
|
335
470
|
// and the next run_project lazy-reconnects cleanly.
|
|
336
471
|
await runner.stopProject();
|
|
337
|
-
|
|
472
|
+
const solutions = [
|
|
338
473
|
'Check for broken autoloads with list_autoloads',
|
|
339
|
-
|
|
474
|
+
`Check that the assigned bridge port (${runner.activeBridgePort}) is not occupied by another Godot process`,
|
|
340
475
|
'Retry run_project',
|
|
341
|
-
]
|
|
476
|
+
];
|
|
477
|
+
if (raceDetected) {
|
|
478
|
+
solutions.push('Concurrent MCP clients in the same project are not supported — run them in separate projects or sequence the calls');
|
|
479
|
+
}
|
|
480
|
+
return createErrorResponse(lines.join('\n'), solutions);
|
|
342
481
|
}
|
|
482
|
+
const port = runner.activeBridgePort;
|
|
343
483
|
const lines = [
|
|
344
|
-
|
|
484
|
+
`Godot project started and MCP bridge is ready (port ${port}).`,
|
|
345
485
|
'- Runtime tools (take_screenshot, simulate_input, get_ui_elements, run_script) are available now',
|
|
346
486
|
'- Use get_debug_output to check runtime output and errors',
|
|
347
487
|
'- Call stop_project when done',
|
|
@@ -354,7 +494,15 @@ export async function handleRunProject(runner, args) {
|
|
|
354
494
|
};
|
|
355
495
|
}
|
|
356
496
|
catch (error) {
|
|
357
|
-
|
|
497
|
+
const errorMessage = getErrorMessage(error);
|
|
498
|
+
if (errorMessage.includes('No display server available')) {
|
|
499
|
+
return createErrorResponse(`Failed to run Godot project: ${errorMessage}`, [
|
|
500
|
+
'Use attach_project with an externally launched Godot process',
|
|
501
|
+
'Set DISPLAY or WAYLAND_DISPLAY environment variables',
|
|
502
|
+
'Run from a graphical shell session',
|
|
503
|
+
]);
|
|
504
|
+
}
|
|
505
|
+
return createErrorResponse(`Failed to run Godot project: ${errorMessage}`, [
|
|
358
506
|
'Ensure Godot is installed correctly',
|
|
359
507
|
'Check if the GODOT_PATH environment variable is set correctly',
|
|
360
508
|
]);
|
|
@@ -366,25 +514,47 @@ export async function handleAttachProject(runner, args) {
|
|
|
366
514
|
if ('isError' in v)
|
|
367
515
|
return v;
|
|
368
516
|
try {
|
|
369
|
-
|
|
517
|
+
const attachBridgePort = args.bridgePort;
|
|
518
|
+
if (attachBridgePort !== undefined) {
|
|
519
|
+
if (!Number.isInteger(attachBridgePort) ||
|
|
520
|
+
attachBridgePort < 1 ||
|
|
521
|
+
attachBridgePort > 65535) {
|
|
522
|
+
return createErrorResponse(`Invalid bridgePort: must be an integer in [1, 65535] (got: ${String(attachBridgePort)})`, [
|
|
523
|
+
'Omit bridgePort to auto-select a free port',
|
|
524
|
+
'Pass a valid TCP port number matching the externally launched Godot',
|
|
525
|
+
]);
|
|
526
|
+
}
|
|
527
|
+
}
|
|
528
|
+
await runner.attachProject(v.projectPath, attachBridgePort);
|
|
370
529
|
const bridgeResult = await runner.waitForBridgeAttached();
|
|
371
530
|
if (!bridgeResult.ready) {
|
|
531
|
+
const expected = runner.activeBridgePort;
|
|
532
|
+
const onDisk = runner.readBakedBridgePort(v.projectPath);
|
|
533
|
+
const raceDetected = onDisk !== null && expected !== null && onDisk !== expected;
|
|
534
|
+
const racePrefix = raceDetected
|
|
535
|
+
? `Bridge timeout: expected port ${expected}, but on-disk script now has ${onDisk}. Another MCP client likely re-injected concurrently in the same project.\n`
|
|
536
|
+
: '';
|
|
372
537
|
// Tear down the attached-mode session state so retrying with
|
|
373
538
|
// attach_project (or run_project) works without a manual detach first.
|
|
374
539
|
await runner.stopProject();
|
|
375
|
-
|
|
540
|
+
const solutions = [
|
|
376
541
|
'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
542
|
'If a human is launching Godot, retry attach_project once they have launched — bridge.inject is idempotent',
|
|
378
543
|
'If Godot is already running but was launched before the bridge was injected, restart it (autoloads are read at startup)',
|
|
379
|
-
|
|
380
|
-
]
|
|
544
|
+
`Check that no other Godot project is occupying the assigned bridge port (${runner.activeBridgePort})`,
|
|
545
|
+
];
|
|
546
|
+
if (raceDetected) {
|
|
547
|
+
solutions.push('Concurrent MCP clients in the same project are not supported — run them in separate projects or sequence the calls');
|
|
548
|
+
}
|
|
549
|
+
return createErrorResponse(`${racePrefix}Project attached but the MCP bridge is not ready.\n${bridgeResult.error || ''}`, solutions);
|
|
381
550
|
}
|
|
551
|
+
const attachedPort = runner.activeBridgePort;
|
|
382
552
|
return {
|
|
383
553
|
content: [
|
|
384
554
|
{
|
|
385
555
|
type: 'text',
|
|
386
556
|
text: [
|
|
387
|
-
|
|
557
|
+
`Project attached and MCP bridge is ready (port ${attachedPort}).`,
|
|
388
558
|
'- Runtime tools (take_screenshot, simulate_input, get_ui_elements, run_script) are available now',
|
|
389
559
|
'- get_debug_output is unavailable in attached mode because MCP did not spawn the process',
|
|
390
560
|
'- Use detach_project or stop_project when done to clean up the injected bridge state',
|
|
@@ -560,6 +730,16 @@ export async function handleTakeScreenshot(runner, args) {
|
|
|
560
730
|
}
|
|
561
731
|
// Normalize path for the local filesystem (forward slashes from GDScript)
|
|
562
732
|
const screenshotPath = normalizeScreenshotPath(parsed.path);
|
|
733
|
+
// Defense-in-depth: the bridge runs in user-controlled GDScript and could
|
|
734
|
+
// be patched to return any path. Refuse to read anything outside the
|
|
735
|
+
// project's own .mcp/screenshots/ directory.
|
|
736
|
+
const screenshotsRoot = resolve(runner.activeProjectPath, '.mcp', 'screenshots');
|
|
737
|
+
if (!isUnderDir(screenshotsRoot, screenshotPath)) {
|
|
738
|
+
return createErrorResponse('Bridge returned a screenshot path outside .mcp/screenshots/. Refusing to read.', [
|
|
739
|
+
'This indicates a tampered or misbehaving McpBridge autoload',
|
|
740
|
+
'Stop the project, verify the bridge script is the one shipped with this server, and retry',
|
|
741
|
+
]);
|
|
742
|
+
}
|
|
563
743
|
if (!existsSync(screenshotPath)) {
|
|
564
744
|
return createErrorResponse(`Screenshot file not found at: ${screenshotPath}`, [
|
|
565
745
|
'The screenshot may have failed to save',
|
|
@@ -588,6 +768,12 @@ export async function handleTakeScreenshot(runner, args) {
|
|
|
588
768
|
]);
|
|
589
769
|
}
|
|
590
770
|
const previewPath = normalizeScreenshotPath(parsed.preview_path);
|
|
771
|
+
if (!isUnderDir(screenshotsRoot, previewPath)) {
|
|
772
|
+
return createErrorResponse('Bridge returned a screenshot preview path outside .mcp/screenshots/. Refusing to read.', [
|
|
773
|
+
'This indicates a tampered or misbehaving McpBridge autoload',
|
|
774
|
+
'Stop the project, verify the bridge script is the one shipped with this server, and retry',
|
|
775
|
+
]);
|
|
776
|
+
}
|
|
591
777
|
if (!existsSync(previewPath)) {
|
|
592
778
|
return createErrorResponse(`Screenshot preview file not found at: ${previewPath}`, [
|
|
593
779
|
'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"}
|