blueprint-extractor-mcp 2.2.0 → 2.3.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 +4 -3
- package/dist/automation-controller.js +3 -10
- package/dist/index.js +656 -101
- package/dist/project-controller.d.ts +28 -0
- package/dist/project-controller.js +62 -6
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -4,7 +4,7 @@ MCP server for the Unreal Engine `BlueprintExtractor` plugin.
|
|
|
4
4
|
|
|
5
5
|
This package exposes the `blueprint-extractor` server over stdio and talks to a running Unreal Editor through the Remote Control HTTP API.
|
|
6
6
|
|
|
7
|
-
The current v2 MCP contract exposes
|
|
7
|
+
The current v2 MCP contract exposes 87 tools, 12 resources, 4 resource templates, and 4 prompts.
|
|
8
8
|
Public tools use canonical `snake_case` inputs and return structured JSON success or error envelopes.
|
|
9
9
|
|
|
10
10
|
Current surface area includes:
|
|
@@ -13,7 +13,8 @@ Current surface area includes:
|
|
|
13
13
|
- explicit-save authoring tools for the supported editor-side asset families, including compact widget extraction, incremental widget-structure ops, widget class-default routing, composable material authoring (`set_material_settings`, `add_material_expression`, `connect_material_expressions`, `bind_material_property`), and the advanced `modify_material` escape hatch
|
|
14
14
|
- dedicated Enhanced Input authoring tools for `InputAction` and `InputMappingContext` assets (`create_input_action`, `modify_input_action`, `create_input_mapping_context`, `modify_input_mapping_context`)
|
|
15
15
|
- async import and reimport tools with polling for generic assets plus typed texture and mesh helpers
|
|
16
|
-
- host-side project automation tools for external builds, Live Coding requests, restart/reconnect orchestration,
|
|
16
|
+
- host-side project automation tools for external builds, Live Coding requests, restart/reconnect orchestration, a thin window-polish helper, and runtime automation artifacts that surface verification screenshots back to the caller
|
|
17
|
+
- a shared visual-verification artifact contract across widget captures, capture diffs, and automation-run screenshots so the caller can inspect rendered results instead of relying on semantic success alone
|
|
17
18
|
- static guidance resources, resource templates, and prompts for authoring conventions, selector rules, font roles, project automation, example payloads, widget patterns, unsupported surfaces, safe UI redesign, and classic material graph guidance
|
|
18
19
|
|
|
19
20
|
## Requirements
|
|
@@ -63,7 +64,7 @@ npm install
|
|
|
63
64
|
npm run build
|
|
64
65
|
npm test
|
|
65
66
|
npm run test:pack-smoke
|
|
66
|
-
npm publish
|
|
67
|
+
npm run test:publish-gate
|
|
67
68
|
```
|
|
68
69
|
|
|
69
70
|
For the gated live smoke test:
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import { randomUUID } from 'node:crypto';
|
|
2
2
|
import { spawn } from 'node:child_process';
|
|
3
|
-
import {
|
|
3
|
+
import { mkdir, readdir, readFile, writeFile } from 'node:fs/promises';
|
|
4
4
|
import { createWriteStream } from 'node:fs';
|
|
5
5
|
import { dirname, extname, join, relative, resolve } from 'node:path';
|
|
6
|
-
import {
|
|
7
|
-
import { resolveCommandInvocation } from './project-controller.js';
|
|
6
|
+
import { resolveCommandInvocation, resolveEditorExecutable } from './project-controller.js';
|
|
8
7
|
const DEFAULT_TIMEOUT_MS = 60 * 60 * 1000;
|
|
9
8
|
function defaultNow() {
|
|
10
9
|
return new Date();
|
|
@@ -89,13 +88,7 @@ function buildResourceUri(runId, artifactName) {
|
|
|
89
88
|
return `blueprint://test-runs/${encodeURIComponent(runId)}/${encodeURIComponent(artifactName)}`;
|
|
90
89
|
}
|
|
91
90
|
async function resolveEditorCommand(engineRoot, platform) {
|
|
92
|
-
|
|
93
|
-
? resolve(engineRoot, 'Engine', 'Binaries', 'Win64', 'UnrealEditor-Cmd.exe')
|
|
94
|
-
: platform === 'darwin'
|
|
95
|
-
? resolve(engineRoot, 'Engine', 'Binaries', 'Mac', 'UnrealEditor-Cmd')
|
|
96
|
-
: resolve(engineRoot, 'Engine', 'Binaries', 'Linux', 'UnrealEditor-Cmd');
|
|
97
|
-
await access(executable, fsConstants.F_OK);
|
|
98
|
-
return executable;
|
|
91
|
+
return await resolveEditorExecutable(engineRoot, platform, 'commandlet');
|
|
99
92
|
}
|
|
100
93
|
export class AutomationController {
|
|
101
94
|
env;
|