flockbay-cli 0.10.9 → 0.10.12
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 +3 -12
- package/dist/codex/flockbayMcpStdioBridge.cjs +54 -57
- package/dist/codex/flockbayMcpStdioBridge.mjs +54 -57
- package/dist/{index-FbVwPVUa.mjs → index-CxdeT2En.mjs} +3661 -8200
- package/dist/{index-BG_P2ZhF.cjs → index-Dl2GS1Q9.cjs} +3676 -8216
- package/dist/index.cjs +3 -2
- package/dist/index.mjs +3 -2
- package/dist/lib.cjs +1 -1
- package/dist/lib.mjs +1 -1
- package/dist/{runCodex-CbaAW7SY.cjs → runCodex-DR4g3Jwa.cjs} +114 -193
- package/dist/{runCodex-BZLbUq_B.mjs → runCodex-ID85oBMw.mjs} +84 -163
- package/dist/{runGemini-Bpk5BicJ.cjs → runGemini-Bfmt6ks1.cjs} +174 -103
- package/dist/{runGemini-Ch6pixIP.mjs → runGemini-DgDnHYry.mjs} +139 -68
- package/dist/{types-D4INIyRf.cjs → types-BKG04fBA.cjs} +293 -16
- package/dist/{types-C4663W73.mjs → types-CledKhsa.mjs} +283 -8
- package/package.json +4 -3
- package/tools/unreal-mcp/UPSTREAM_VERSION.md +8 -0
- package/tools/unreal-mcp/upstream/Docs/README.md +8 -0
- package/tools/unreal-mcp/upstream/Docs/Tools/README.md +7 -0
- package/tools/unreal-mcp/upstream/Docs/Tools/actor_tools.md +184 -0
- package/tools/unreal-mcp/upstream/Docs/Tools/blueprint_tools.md +268 -0
- package/tools/unreal-mcp/upstream/Docs/Tools/editor_tools.md +104 -0
- package/tools/unreal-mcp/upstream/Docs/Tools/node_tools.md +274 -0
- package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Config/FilterPlugin.ini +8 -0
- package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPBlueprintCommands.cpp +1160 -0
- package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPBlueprintNodeCommands.cpp +924 -0
- package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPCommonUtils.cpp +709 -0
- package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPEditorCommands.cpp +863 -0
- package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPProjectCommands.cpp +72 -0
- package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Private/Commands/UnrealMCPUMGCommands.cpp +544 -0
- package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Private/MCPServerRunnable.cpp +321 -0
- package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Private/UnrealMCPBridge.cpp +419 -0
- package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Private/UnrealMCPModule.cpp +21 -0
- package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPBlueprintCommands.h +34 -0
- package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPBlueprintNodeCommands.h +27 -0
- package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPCommonUtils.h +59 -0
- package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPEditorCommands.h +40 -0
- package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPProjectCommands.h +20 -0
- package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Public/Commands/UnrealMCPUMGCommands.h +82 -0
- package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Public/MCPServerRunnable.h +34 -0
- package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Public/UnrealMCPBridge.h +64 -0
- package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/Public/UnrealMCPModule.h +22 -0
- package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/Source/UnrealMCP/UnrealMCP.Build.cs +78 -0
- package/tools/unreal-mcp/upstream/MCPGameProject/Plugins/UnrealMCP/UnrealMCP.uplugin +36 -0
- package/tools/unreal-mcp/upstream/Python/README.md +40 -0
- package/tools/unreal-mcp/upstream/Python/pyproject.toml +22 -0
- package/tools/unreal-mcp/upstream/Python/scripts/actors/test_cube.py +203 -0
- package/tools/unreal-mcp/upstream/Python/scripts/blueprints/test_create_and_spawn_blueprints_with_different_components.py +497 -0
- package/tools/unreal-mcp/upstream/Python/scripts/blueprints/test_create_and_spawn_cube_blueprint.py +194 -0
- package/tools/unreal-mcp/upstream/Python/scripts/node/test_component_reference.py +267 -0
- package/tools/unreal-mcp/upstream/Python/scripts/node/test_create_bird_blueprint_with_input_and_camera.py +618 -0
- package/tools/unreal-mcp/upstream/Python/scripts/node/test_input_mapping.py +366 -0
- package/tools/unreal-mcp/upstream/Python/scripts/node/test_physics_variables.py +390 -0
- package/tools/unreal-mcp/upstream/Python/tools/blueprint_tools.py +420 -0
- package/tools/unreal-mcp/upstream/Python/tools/editor_tools.py +369 -0
- package/tools/unreal-mcp/upstream/Python/tools/node_tools.py +430 -0
- package/tools/unreal-mcp/upstream/Python/tools/project_tools.py +64 -0
- package/tools/unreal-mcp/upstream/Python/tools/umg_tools.py +333 -0
- package/tools/unreal-mcp/upstream/Python/unreal_mcp_server.py +398 -0
- package/tools/unreal-mcp/upstream/Python/uv.lock +521 -0
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
Code on the go controlling Claude/Codex sessions from your mobile device.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
Code anywhere.
|
|
6
6
|
|
|
7
7
|
Flockbay CLI is the command-line tool for running and controlling Flockbay sessions (including daemon and Codex mode).
|
|
8
8
|
|
|
@@ -41,16 +41,7 @@ This will:
|
|
|
41
41
|
- `--claude-env KEY=VALUE` - Set environment variable for Claude Code (e.g., for [claude-code-router](https://github.com/musistudio/claude-code-router))
|
|
42
42
|
- `--claude-arg ARG` - Pass additional argument to Claude CLI
|
|
43
43
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
- `FLOCKBAY_SERVER_URL` - API base URL (default: https://api.flockbay.com)
|
|
47
|
-
- `FLOCKBAY_WEBAPP_URL` - Web app base URL (default: https://flockbay.com)
|
|
48
|
-
- `FLOCKBAY_HOME_DIR` - Home directory for local CLI state (default: `~/.flockbay`)
|
|
49
|
-
- `FLOCKBAY_DISABLE_CAFFEINATE` - Disable macOS sleep prevention (set to `true`, `1`, or `yes`)
|
|
50
|
-
- `FLOCKBAY_EXPERIMENTAL` - Enable experimental features (set to `true`, `1`, or `yes`)
|
|
51
|
-
|
|
52
|
-
Legacy env vars are still supported for compatibility:
|
|
53
|
-
- `FLOCKBAY_SERVER_URL`, `FLOCKBAY_WEBAPP_URL`, `FLOCKBAY_HOME_DIR`, `FLOCKBAY_DISABLE_CAFFEINATE`, `FLOCKBAY_EXPERIMENTAL`
|
|
44
|
+
Run `flockbay --help` for the complete list of options.
|
|
54
45
|
|
|
55
46
|
## Requirements
|
|
56
47
|
|
|
@@ -62,4 +53,4 @@ Legacy env vars are still supported for compatibility:
|
|
|
62
53
|
|
|
63
54
|
## License
|
|
64
55
|
|
|
65
|
-
|
|
56
|
+
Proprietary. Copyright (c) 2024-2026 Flockbay. All rights reserved.
|
|
@@ -6,24 +6,7 @@ var index_js = require('@modelcontextprotocol/sdk/client/index.js');
|
|
|
6
6
|
var streamableHttp_js = require('@modelcontextprotocol/sdk/client/streamableHttp.js');
|
|
7
7
|
var z = require('zod');
|
|
8
8
|
|
|
9
|
-
const INTERACTIVE_TOOL_TIMEOUT_MS = 14 * 24 * 60 * 60 * 1e3;
|
|
10
|
-
function clampTimeoutMs(timeoutMs) {
|
|
11
|
-
if (!Number.isFinite(timeoutMs) || timeoutMs <= 0) return INTERACTIVE_TOOL_TIMEOUT_MS;
|
|
12
|
-
return Math.max(1e3, Math.min(INTERACTIVE_TOOL_TIMEOUT_MS, Math.floor(timeoutMs)));
|
|
13
|
-
}
|
|
14
9
|
function getToolCallTimeoutMs(name, args) {
|
|
15
|
-
if (name === "ask_user_question") return INTERACTIVE_TOOL_TIMEOUT_MS;
|
|
16
|
-
const timeoutMs = typeof args?.timeoutMs === "number" ? args.timeoutMs : void 0;
|
|
17
|
-
const bakeTimeoutMs = typeof args?.bakeTimeoutMs === "number" ? args.bakeTimeoutMs : void 0;
|
|
18
|
-
if (name === "unreal_fast_preview") {
|
|
19
|
-
const previewMs = timeoutMs ?? 6e5;
|
|
20
|
-
const bakeMs = bakeTimeoutMs ?? 18e5;
|
|
21
|
-
return clampTimeoutMs(previewMs + bakeMs + 5 * 6e4);
|
|
22
|
-
}
|
|
23
|
-
if (name === "unreal_headless_screenshot") {
|
|
24
|
-
const shotsMs = timeoutMs ?? 6e5;
|
|
25
|
-
return clampTimeoutMs(shotsMs + 2 * 6e4);
|
|
26
|
-
}
|
|
27
10
|
return void 0;
|
|
28
11
|
}
|
|
29
12
|
function parseArgs(argv) {
|
|
@@ -301,21 +284,6 @@ async function main() {
|
|
|
301
284
|
"Docs Import",
|
|
302
285
|
"Import markdown files into the Documentation Library (copy into backend DB)."
|
|
303
286
|
);
|
|
304
|
-
forwardTool(
|
|
305
|
-
"unreal_headless_screenshot",
|
|
306
|
-
{
|
|
307
|
-
uprojectPath: z.z.string().describe("Absolute path to the .uproject file."),
|
|
308
|
-
engineRoot: z.z.string().optional().describe("Unreal Engine install root (e.g. /Users/Shared/Epic Games/UE_5.7). Defaults to UE_ENGINE_ROOT / ENGINE_ROOT env vars."),
|
|
309
|
-
resX: z.z.number().int().positive().optional().describe("Output resolution width (default 800)."),
|
|
310
|
-
resY: z.z.number().int().positive().optional().describe("Output resolution height (default 450)."),
|
|
311
|
-
fast: z.z.boolean().optional().describe("Enable fast screenshot mode (-FlockbayScreenshotFast)."),
|
|
312
|
-
focus: z.z.string().optional().describe('Focus point "x;y;z" (or "x,y,z"), forwarded as -FlockbayScreenshotFocus=...'),
|
|
313
|
-
extraArgs: z.z.array(z.z.string()).optional().describe("Additional Unreal command-line args (advanced)."),
|
|
314
|
-
timeoutMs: z.z.number().int().positive().optional().describe("Timeout in ms (default 600000).")
|
|
315
|
-
},
|
|
316
|
-
"Unreal Headless Screenshot",
|
|
317
|
-
"Run the Unreal Engine project in headless/offscreen mode and capture a screenshot using -FlockbayScreenshotMode."
|
|
318
|
-
);
|
|
319
287
|
forwardTool(
|
|
320
288
|
"unreal_latest_screenshots",
|
|
321
289
|
{
|
|
@@ -328,33 +296,62 @@ async function main() {
|
|
|
328
296
|
"Fetch the latest PNG screenshots from Saved/Screenshots/Flockbay and return views for the UI to display."
|
|
329
297
|
);
|
|
330
298
|
forwardTool(
|
|
331
|
-
"
|
|
299
|
+
"unreal_mcp_command",
|
|
332
300
|
{
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
301
|
+
type: z.z.string().describe('UnrealMCP command type (e.g. "get_actors_in_level", "spawn_actor").'),
|
|
302
|
+
params: z.z.record(z.z.any()).optional().describe("Optional params object for the command."),
|
|
303
|
+
timeoutMs: z.z.number().int().positive().optional().describe("Socket timeout in ms (default 5000).")
|
|
304
|
+
},
|
|
305
|
+
"Unreal Editor Command (UnrealMCP)",
|
|
306
|
+
"Send a single UnrealMCP command to the running Unreal Editor (engine plugin) and return the JSON response."
|
|
307
|
+
);
|
|
308
|
+
forwardTool(
|
|
309
|
+
"unreal_mcp_get_actors_in_level",
|
|
310
|
+
{
|
|
311
|
+
timeoutMs: z.z.number().int().positive().optional().describe("Socket timeout in ms (default 5000).")
|
|
312
|
+
},
|
|
313
|
+
"Unreal Actors In Level (UnrealMCP)",
|
|
314
|
+
"List all actors in the current Unreal Editor level via the UnrealMCP engine plugin."
|
|
315
|
+
);
|
|
316
|
+
forwardTool(
|
|
317
|
+
"unreal_mcp_get_play_in_editor_status",
|
|
318
|
+
{
|
|
319
|
+
timeoutMs: z.z.number().int().positive().optional().describe("Socket timeout in ms (default 5000).")
|
|
320
|
+
},
|
|
321
|
+
"Unreal Play Status (PIE)",
|
|
322
|
+
"Get Play-In-Editor status from the UnrealMCP engine plugin."
|
|
323
|
+
);
|
|
324
|
+
forwardTool(
|
|
325
|
+
"unreal_mcp_editor_health",
|
|
326
|
+
{
|
|
327
|
+
timeoutMs: z.z.number().int().positive().optional().describe("Socket timeout in ms (default 1500).")
|
|
328
|
+
},
|
|
329
|
+
"Unreal Editor Health (UnrealMCP)",
|
|
330
|
+
"Best-effort health check for Unreal Editor + UnrealMCP (detects if the editor is reachable)."
|
|
331
|
+
);
|
|
332
|
+
forwardTool(
|
|
333
|
+
"unreal_mcp_play_in_editor",
|
|
334
|
+
{
|
|
335
|
+
timeoutMs: z.z.number().int().positive().optional().describe("Socket timeout in ms (default 5000).")
|
|
336
|
+
},
|
|
337
|
+
"Unreal Play In Editor (Viewport)",
|
|
338
|
+
"Start Play-In-Editor (PIE) in the active editor viewport via the UnrealMCP engine plugin."
|
|
339
|
+
);
|
|
340
|
+
forwardTool(
|
|
341
|
+
"unreal_mcp_play_in_editor_windowed",
|
|
342
|
+
{
|
|
343
|
+
timeoutMs: z.z.number().int().positive().optional().describe("Socket timeout in ms (default 5000).")
|
|
344
|
+
},
|
|
345
|
+
"Unreal Play In Editor (New Window)",
|
|
346
|
+
"Start Play-In-Editor (PIE) in a new editor window via the UnrealMCP engine plugin."
|
|
347
|
+
);
|
|
348
|
+
forwardTool(
|
|
349
|
+
"unreal_mcp_stop_play_in_editor",
|
|
350
|
+
{
|
|
351
|
+
timeoutMs: z.z.number().int().positive().optional().describe("Socket timeout in ms (default 5000).")
|
|
355
352
|
},
|
|
356
|
-
"Unreal
|
|
357
|
-
"
|
|
353
|
+
"Unreal Stop Play In Editor",
|
|
354
|
+
"Stop a running Play-In-Editor session via the UnrealMCP engine plugin."
|
|
358
355
|
);
|
|
359
356
|
forwardTool(
|
|
360
357
|
"unreal_mechanic_run",
|
|
@@ -4,24 +4,7 @@ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
|
|
|
4
4
|
import { StreamableHTTPClientTransport } from '@modelcontextprotocol/sdk/client/streamableHttp.js';
|
|
5
5
|
import { z } from 'zod';
|
|
6
6
|
|
|
7
|
-
const INTERACTIVE_TOOL_TIMEOUT_MS = 14 * 24 * 60 * 60 * 1e3;
|
|
8
|
-
function clampTimeoutMs(timeoutMs) {
|
|
9
|
-
if (!Number.isFinite(timeoutMs) || timeoutMs <= 0) return INTERACTIVE_TOOL_TIMEOUT_MS;
|
|
10
|
-
return Math.max(1e3, Math.min(INTERACTIVE_TOOL_TIMEOUT_MS, Math.floor(timeoutMs)));
|
|
11
|
-
}
|
|
12
7
|
function getToolCallTimeoutMs(name, args) {
|
|
13
|
-
if (name === "ask_user_question") return INTERACTIVE_TOOL_TIMEOUT_MS;
|
|
14
|
-
const timeoutMs = typeof args?.timeoutMs === "number" ? args.timeoutMs : void 0;
|
|
15
|
-
const bakeTimeoutMs = typeof args?.bakeTimeoutMs === "number" ? args.bakeTimeoutMs : void 0;
|
|
16
|
-
if (name === "unreal_fast_preview") {
|
|
17
|
-
const previewMs = timeoutMs ?? 6e5;
|
|
18
|
-
const bakeMs = bakeTimeoutMs ?? 18e5;
|
|
19
|
-
return clampTimeoutMs(previewMs + bakeMs + 5 * 6e4);
|
|
20
|
-
}
|
|
21
|
-
if (name === "unreal_headless_screenshot") {
|
|
22
|
-
const shotsMs = timeoutMs ?? 6e5;
|
|
23
|
-
return clampTimeoutMs(shotsMs + 2 * 6e4);
|
|
24
|
-
}
|
|
25
8
|
return void 0;
|
|
26
9
|
}
|
|
27
10
|
function parseArgs(argv) {
|
|
@@ -299,21 +282,6 @@ async function main() {
|
|
|
299
282
|
"Docs Import",
|
|
300
283
|
"Import markdown files into the Documentation Library (copy into backend DB)."
|
|
301
284
|
);
|
|
302
|
-
forwardTool(
|
|
303
|
-
"unreal_headless_screenshot",
|
|
304
|
-
{
|
|
305
|
-
uprojectPath: z.string().describe("Absolute path to the .uproject file."),
|
|
306
|
-
engineRoot: z.string().optional().describe("Unreal Engine install root (e.g. /Users/Shared/Epic Games/UE_5.7). Defaults to UE_ENGINE_ROOT / ENGINE_ROOT env vars."),
|
|
307
|
-
resX: z.number().int().positive().optional().describe("Output resolution width (default 800)."),
|
|
308
|
-
resY: z.number().int().positive().optional().describe("Output resolution height (default 450)."),
|
|
309
|
-
fast: z.boolean().optional().describe("Enable fast screenshot mode (-FlockbayScreenshotFast)."),
|
|
310
|
-
focus: z.string().optional().describe('Focus point "x;y;z" (or "x,y,z"), forwarded as -FlockbayScreenshotFocus=...'),
|
|
311
|
-
extraArgs: z.array(z.string()).optional().describe("Additional Unreal command-line args (advanced)."),
|
|
312
|
-
timeoutMs: z.number().int().positive().optional().describe("Timeout in ms (default 600000).")
|
|
313
|
-
},
|
|
314
|
-
"Unreal Headless Screenshot",
|
|
315
|
-
"Run the Unreal Engine project in headless/offscreen mode and capture a screenshot using -FlockbayScreenshotMode."
|
|
316
|
-
);
|
|
317
285
|
forwardTool(
|
|
318
286
|
"unreal_latest_screenshots",
|
|
319
287
|
{
|
|
@@ -326,33 +294,62 @@ async function main() {
|
|
|
326
294
|
"Fetch the latest PNG screenshots from Saved/Screenshots/Flockbay and return views for the UI to display."
|
|
327
295
|
);
|
|
328
296
|
forwardTool(
|
|
329
|
-
"
|
|
297
|
+
"unreal_mcp_command",
|
|
330
298
|
{
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
299
|
+
type: z.string().describe('UnrealMCP command type (e.g. "get_actors_in_level", "spawn_actor").'),
|
|
300
|
+
params: z.record(z.any()).optional().describe("Optional params object for the command."),
|
|
301
|
+
timeoutMs: z.number().int().positive().optional().describe("Socket timeout in ms (default 5000).")
|
|
302
|
+
},
|
|
303
|
+
"Unreal Editor Command (UnrealMCP)",
|
|
304
|
+
"Send a single UnrealMCP command to the running Unreal Editor (engine plugin) and return the JSON response."
|
|
305
|
+
);
|
|
306
|
+
forwardTool(
|
|
307
|
+
"unreal_mcp_get_actors_in_level",
|
|
308
|
+
{
|
|
309
|
+
timeoutMs: z.number().int().positive().optional().describe("Socket timeout in ms (default 5000).")
|
|
310
|
+
},
|
|
311
|
+
"Unreal Actors In Level (UnrealMCP)",
|
|
312
|
+
"List all actors in the current Unreal Editor level via the UnrealMCP engine plugin."
|
|
313
|
+
);
|
|
314
|
+
forwardTool(
|
|
315
|
+
"unreal_mcp_get_play_in_editor_status",
|
|
316
|
+
{
|
|
317
|
+
timeoutMs: z.number().int().positive().optional().describe("Socket timeout in ms (default 5000).")
|
|
318
|
+
},
|
|
319
|
+
"Unreal Play Status (PIE)",
|
|
320
|
+
"Get Play-In-Editor status from the UnrealMCP engine plugin."
|
|
321
|
+
);
|
|
322
|
+
forwardTool(
|
|
323
|
+
"unreal_mcp_editor_health",
|
|
324
|
+
{
|
|
325
|
+
timeoutMs: z.number().int().positive().optional().describe("Socket timeout in ms (default 1500).")
|
|
326
|
+
},
|
|
327
|
+
"Unreal Editor Health (UnrealMCP)",
|
|
328
|
+
"Best-effort health check for Unreal Editor + UnrealMCP (detects if the editor is reachable)."
|
|
329
|
+
);
|
|
330
|
+
forwardTool(
|
|
331
|
+
"unreal_mcp_play_in_editor",
|
|
332
|
+
{
|
|
333
|
+
timeoutMs: z.number().int().positive().optional().describe("Socket timeout in ms (default 5000).")
|
|
334
|
+
},
|
|
335
|
+
"Unreal Play In Editor (Viewport)",
|
|
336
|
+
"Start Play-In-Editor (PIE) in the active editor viewport via the UnrealMCP engine plugin."
|
|
337
|
+
);
|
|
338
|
+
forwardTool(
|
|
339
|
+
"unreal_mcp_play_in_editor_windowed",
|
|
340
|
+
{
|
|
341
|
+
timeoutMs: z.number().int().positive().optional().describe("Socket timeout in ms (default 5000).")
|
|
342
|
+
},
|
|
343
|
+
"Unreal Play In Editor (New Window)",
|
|
344
|
+
"Start Play-In-Editor (PIE) in a new editor window via the UnrealMCP engine plugin."
|
|
345
|
+
);
|
|
346
|
+
forwardTool(
|
|
347
|
+
"unreal_mcp_stop_play_in_editor",
|
|
348
|
+
{
|
|
349
|
+
timeoutMs: z.number().int().positive().optional().describe("Socket timeout in ms (default 5000).")
|
|
353
350
|
},
|
|
354
|
-
"Unreal
|
|
355
|
-
"
|
|
351
|
+
"Unreal Stop Play In Editor",
|
|
352
|
+
"Stop a running Play-In-Editor session via the UnrealMCP engine plugin."
|
|
356
353
|
);
|
|
357
354
|
forwardTool(
|
|
358
355
|
"unreal_mechanic_run",
|