blueprint-extractor-mcp 2.3.0 → 2.5.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 CHANGED
@@ -1,82 +1,83 @@
1
- # `blueprint-extractor-mcp`
2
-
3
- MCP server for the Unreal Engine `BlueprintExtractor` plugin.
4
-
5
- This package exposes the `blueprint-extractor` server over stdio and talks to a running Unreal Editor through the Remote Control HTTP API.
6
-
7
- The current v2 MCP contract exposes 87 tools, 12 resources, 4 resource templates, and 4 prompts.
1
+ # `blueprint-extractor-mcp`
2
+
3
+ MCP server for the Unreal Engine `BlueprintExtractor` plugin.
4
+
5
+ This package exposes the `blueprint-extractor` server over stdio and talks to a running Unreal Editor through the Remote Control HTTP API.
6
+
7
+ The current v2 MCP contract exposes 97 tools, 16 resources, 4 resource templates, and 8 prompts.
8
8
  Public tools use canonical `snake_case` inputs and return structured JSON success or error envelopes.
9
-
10
- Current surface area includes:
11
-
12
- - read-only extraction tools for Blueprints, AI assets, data assets, curves, materials, and animation metadata
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
- - 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
- - 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, 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
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
19
-
20
- ## Requirements
21
-
22
- - Node.js 18+
23
- - Unreal Editor with the `Remote Control API` plugin enabled
24
- - The `BlueprintExtractor` UE plugin loaded in the editor
25
-
26
- ## Run
27
-
28
- ```bash
29
- npx blueprint-extractor-mcp
30
- ```
31
-
32
- The server reads `UE_REMOTE_CONTROL_PORT` and defaults to `30010`.
33
-
34
- You can also set `UE_BLUEPRINT_EXTRACTOR_SUBSYSTEM_PATH` to force a specific subsystem object path instead of using the built-in probe list.
35
-
36
- For workflow-oriented guidance, the server also exposes prompts such as `design_menu_screen`, `author_material_button_style`, `wire_hud_widget_classes`, and `debug_widget_compile_errors`.
37
-
38
- For host-side code automation, these optional env vars are supported:
39
-
40
- - `UE_ENGINE_ROOT`
41
- - `UE_PROJECT_PATH`
42
- - `UE_PROJECT_TARGET` or `UE_EDITOR_TARGET`
43
- - `UE_BUILD_PLATFORM`
44
- - `UE_BUILD_CONFIGURATION`
45
-
46
- ## Install In MCP Clients
47
-
48
- Claude Code:
49
-
50
- ```bash
51
- claude mcp add -s user -t stdio blueprint-extractor -e UE_REMOTE_CONTROL_PORT=30010 -- npx -y blueprint-extractor-mcp@latest
52
- ```
53
-
54
- Codex:
55
-
56
- ```bash
57
- codex mcp add --env UE_REMOTE_CONTROL_PORT=30010 blueprint-extractor -- npx -y blueprint-extractor-mcp@latest
58
- ```
59
-
60
- ## Local Development
61
-
62
- ```bash
63
- npm install
64
- npm run build
65
- npm test
66
- npm run test:pack-smoke
67
- npm run test:publish-gate
68
- ```
69
-
70
- For the gated live smoke test:
71
-
72
- ```bash
73
- BLUEPRINT_EXTRACTOR_LIVE_E2E=1 npm run test:live
74
- ```
75
-
76
- The live suite imports a texture over a local HTTP fixture server, verifies request-header forwarding, imports a local mesh fixture, polls both jobs to completion, smoke-tests the composable material workflow plus material function and material instance authoring, and round-trips the dedicated Enhanced Input authoring tools before saving the returned asset paths.
77
-
78
- The default unit/stdio suites also cover prompt registration, resource-template registration, the narrowed widget surfaces (`extract_widget_blueprint`, `modify_widget`, `modify_widget_blueprint`), the host-side project-control tools (`compile_project_code`, `trigger_live_coding`, `restart_editor`, `sync_project_code`, `apply_window_ui_changes`), the compact material graph surfaces (`extract_material`, `modify_material`), and output-schema exposure for the specialized import and cascade tools.
79
-
80
- Repository and full documentation:
81
-
82
- - <https://github.com/SunGrow/ue-blueprint-extractor>
9
+
10
+ Current surface area includes:
11
+
12
+ - read-only extraction tools for Blueprints, AI assets, data assets, curves, materials, and animation metadata
13
+ - explicit-save authoring tools for the supported editor-side asset families, including compact widget extraction, dedicated widget animation authoring (`extract_widget_animation`, `create_widget_animation`, `modify_widget_animation`), 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
+ - 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
+ - dedicated CommonUI button-style tools (`create_commonui_button_style`, `extract_commonui_button_style`, `modify_commonui_button_style`, `apply_commonui_button_style`) for `CommonButtonBase` wrapper surfaces instead of raw `UButton` field mutation
16
+ - async import and reimport tools with polling for generic assets plus typed texture and mesh helpers
17
+ - host-side project automation tools for external builds, Live Coding requests, restart/reconnect orchestration, `wait_for_editor` recovery polling, a thin window-polish helper, and runtime automation artifacts that surface verification screenshots back to the caller
18
+ - a shared visual-verification artifact contract across widget captures, motion checkpoint bundles, capture diffs, and automation-run screenshots so the caller can inspect rendered results instead of relying on semantic success alone
19
+ - static guidance resources, resource templates, and prompts for authoring conventions, selector rules, font roles, project automation, example payloads, widget patterns, multimodal design specs, widget motion authoring, motion verification, unsupported surfaces, safe UI redesign, and classic material graph guidance
20
+
21
+ ## Requirements
22
+
23
+ - Node.js 18+
24
+ - Unreal Editor with the `Remote Control API` plugin enabled
25
+ - The `BlueprintExtractor` UE plugin loaded in the editor
26
+
27
+ ## Run
28
+
29
+ ```bash
30
+ npx blueprint-extractor-mcp
31
+ ```
32
+
33
+ The server reads `UE_REMOTE_CONTROL_PORT` and defaults to `30010`.
34
+
35
+ You can also set `UE_BLUEPRINT_EXTRACTOR_SUBSYSTEM_PATH` to force a specific subsystem object path instead of using the built-in probe list.
36
+
37
+ For workflow-oriented guidance, the server also exposes prompts such as `normalize_ui_design_input`, `design_menu_from_design_spec`, `author_widget_motion_from_design_spec`, `plan_widget_motion_verification`, `design_menu_screen`, `author_material_button_style`, `wire_hud_widget_classes`, and `debug_widget_compile_errors`.
38
+
39
+ For host-side code automation, these optional env vars are supported:
40
+
41
+ - `UE_ENGINE_ROOT`
42
+ - `UE_PROJECT_PATH`
43
+ - `UE_PROJECT_TARGET` or `UE_EDITOR_TARGET`
44
+ - `UE_BUILD_PLATFORM`
45
+ - `UE_BUILD_CONFIGURATION`
46
+
47
+ ## Install In MCP Clients
48
+
49
+ Claude Code:
50
+
51
+ ```bash
52
+ claude mcp add -s user -t stdio blueprint-extractor -e UE_REMOTE_CONTROL_PORT=30010 -- npx -y blueprint-extractor-mcp@latest
53
+ ```
54
+
55
+ Codex:
56
+
57
+ ```bash
58
+ codex mcp add --env UE_REMOTE_CONTROL_PORT=30010 blueprint-extractor -- npx -y blueprint-extractor-mcp@latest
59
+ ```
60
+
61
+ ## Local Development
62
+
63
+ ```bash
64
+ npm install
65
+ npm run build
66
+ npm test
67
+ npm run test:pack-smoke
68
+ npm run test:publish-gate
69
+ ```
70
+
71
+ For the gated live smoke test:
72
+
73
+ ```bash
74
+ BLUEPRINT_EXTRACTOR_LIVE_E2E=1 npm run test:live
75
+ ```
76
+
77
+ The live suite imports a texture over a local HTTP fixture server, verifies request-header forwarding, imports a local mesh fixture, polls both jobs to completion, smoke-tests the composable material workflow plus material function and material instance authoring, and round-trips the dedicated Enhanced Input authoring tools before saving the returned asset paths.
78
+
79
+ The default unit/stdio suites also cover prompt registration, resource-template registration, the narrowed widget surfaces (`extract_widget_blueprint`, `extract_widget_animation`, `modify_widget`, `modify_widget_blueprint`, `modify_widget_animation`), the host-side project-control tools (`compile_project_code`, `trigger_live_coding`, `restart_editor`, `sync_project_code`, `apply_window_ui_changes`), motion checkpoint capture/compare, the compact material graph surfaces (`extract_material`, `modify_material`), and output-schema exposure for the specialized import and cascade tools.
80
+
81
+ Repository and full documentation:
82
+
83
+ - <https://github.com/SunGrow/ue-blueprint-extractor>
package/dist/index.d.ts CHANGED
@@ -9,6 +9,8 @@ type ToolExample = {
9
9
  title: string;
10
10
  tool: string;
11
11
  arguments: Record<string, unknown>;
12
+ context?: Record<string, unknown>;
13
+ expectedSuccess?: boolean;
12
14
  };
13
15
  type ExampleFamily = {
14
16
  summary: string;