unreal-engine-mcp-server 0.5.19 → 0.5.21
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/CHANGELOG.md +132 -0
- package/README.md +5 -0
- package/dist/config.d.ts +2 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +19 -0
- package/dist/config.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/tools/consolidated-tool-definitions.d.ts.map +1 -1
- package/dist/tools/consolidated-tool-definitions.js +21 -16
- package/dist/tools/consolidated-tool-definitions.js.map +1 -1
- package/dist/tools/consolidated-tool-handlers.js +1 -3
- package/dist/tools/consolidated-tool-handlers.js.map +1 -1
- package/dist/tools/dynamic-tool-manager.d.ts +1 -1
- package/dist/tools/dynamic-tool-manager.d.ts.map +1 -1
- package/dist/tools/dynamic-tool-manager.js +48 -1
- package/dist/tools/dynamic-tool-manager.js.map +1 -1
- package/dist/tools/handlers/animation-authoring-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/animation-authoring-handlers.js +266 -43
- package/dist/tools/handlers/animation-authoring-handlers.js.map +1 -1
- package/dist/tools/handlers/animation-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/animation-handlers.js +289 -34
- package/dist/tools/handlers/animation-handlers.js.map +1 -1
- package/dist/tools/handlers/asset-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/asset-handlers.js +10 -4
- package/dist/tools/handlers/asset-handlers.js.map +1 -1
- package/dist/tools/handlers/audio-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/audio-handlers.js +66 -26
- package/dist/tools/handlers/audio-handlers.js.map +1 -1
- package/dist/tools/handlers/common-handlers.d.ts +1 -0
- package/dist/tools/handlers/common-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/common-handlers.js +13 -3
- package/dist/tools/handlers/common-handlers.js.map +1 -1
- package/dist/tools/handlers/editor-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/editor-handlers.js +18 -7
- package/dist/tools/handlers/editor-handlers.js.map +1 -1
- package/dist/tools/handlers/effect-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/effect-handlers.js +91 -69
- package/dist/tools/handlers/effect-handlers.js.map +1 -1
- package/dist/tools/handlers/gas-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/gas-handlers.js +35 -22
- package/dist/tools/handlers/gas-handlers.js.map +1 -1
- package/dist/tools/handlers/inspect-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/inspect-handlers.js +6 -2
- package/dist/tools/handlers/inspect-handlers.js.map +1 -1
- package/dist/tools/handlers/inventory-handlers.js +7 -7
- package/dist/tools/handlers/inventory-handlers.js.map +1 -1
- package/dist/tools/handlers/manage-tools-handlers.js +2 -2
- package/dist/tools/handlers/manage-tools-handlers.js.map +1 -1
- package/dist/tools/handlers/performance-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/performance-handlers.js +11 -29
- package/dist/tools/handlers/performance-handlers.js.map +1 -1
- package/dist/tools/handlers/pipeline-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/pipeline-handlers.js +140 -13
- package/dist/tools/handlers/pipeline-handlers.js.map +1 -1
- package/dist/tools/handlers/sequence-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/sequence-handlers.js +27 -0
- package/dist/tools/handlers/sequence-handlers.js.map +1 -1
- package/dist/tools/handlers/system-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/system-handlers.js +10 -5
- package/dist/tools/handlers/system-handlers.js.map +1 -1
- package/dist/tools/handlers/widget-authoring-handlers.d.ts.map +1 -1
- package/dist/tools/handlers/widget-authoring-handlers.js +21 -5
- package/dist/tools/handlers/widget-authoring-handlers.js.map +1 -1
- package/dist/tools/schemas/core-tools.js +1 -1
- package/dist/tools/schemas/core-tools.js.map +1 -1
- package/dist/utils/path-security.d.ts.map +1 -1
- package/dist/utils/path-security.js +18 -1
- package/dist/utils/path-security.js.map +1 -1
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/utils/validation.js +5 -2
- package/dist/utils/validation.js.map +1 -1
- package/package.json +25 -2
- package/server.json +2 -2
package/CHANGELOG.md
CHANGED
|
@@ -7,6 +7,138 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|
|
7
7
|
|
|
8
8
|
---
|
|
9
9
|
|
|
10
|
+
## [Unreleased]
|
|
11
|
+
|
|
12
|
+
### Added
|
|
13
|
+
- `MCP_ADDITIONAL_PATH_PREFIXES` environment variable to whitelist custom UE content mount points (plugins with `CanContainContent`). Default is empty (no change to existing behavior). Enables projects with modular plugin architecture to access Blueprint assets at custom mount points like `/ProjectObject/`, `/ProjectAnimation/`, etc.
|
|
14
|
+
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
## 🏷️ [0.5.20] - 2026-03-21
|
|
18
|
+
|
|
19
|
+
> [!IMPORTANT]
|
|
20
|
+
> ### 🛡️ Security Fix & UE 5.0 Compatibility
|
|
21
|
+
> This release includes a critical path traversal fix in export_asset, UE 5.0 compatibility improvements, and external actors support for World Partition.
|
|
22
|
+
|
|
23
|
+
### 🛡️ Security
|
|
24
|
+
|
|
25
|
+
<details>
|
|
26
|
+
<summary><b>🔒 Path Traversal in export_asset</b> (<a href="https://github.com/ChiR24/Unreal_mcp/commit/5cf2a3c">5cf2a3c</a>)</summary>
|
|
27
|
+
|
|
28
|
+
| Aspect | Details |
|
|
29
|
+
|--------|---------|
|
|
30
|
+
| **Severity** | 🚨 CRITICAL |
|
|
31
|
+
| **Vulnerability** | Path traversal in `export_asset` action |
|
|
32
|
+
| **Fix** | Added path validation to prevent directory traversal attacks |
|
|
33
|
+
|
|
34
|
+
**Files Modified:**
|
|
35
|
+
- `McpAutomationBridge_SystemControlHandlers.cpp`
|
|
36
|
+
|
|
37
|
+
</details>
|
|
38
|
+
|
|
39
|
+
### ✨ Added
|
|
40
|
+
|
|
41
|
+
<details>
|
|
42
|
+
<summary><b>🌍 External Actors Support</b> (<a href="https://github.com/ChiR24/Unreal_mcp/commit/51143c3">51143c3</a>)</summary>
|
|
43
|
+
|
|
44
|
+
| Feature | Description |
|
|
45
|
+
|---------|-------------|
|
|
46
|
+
| **External Actors** | Support for World Partition external actors in level structure handlers |
|
|
47
|
+
| **Streaming Reference** | Streaming reference creation for external actor packages |
|
|
48
|
+
|
|
49
|
+
**Files Modified:**
|
|
50
|
+
- `McpAutomationBridge_LevelStructureHandlers.cpp` (+127 lines)
|
|
51
|
+
|
|
52
|
+
</details>
|
|
53
|
+
|
|
54
|
+
### 🛠️ Fixed
|
|
55
|
+
|
|
56
|
+
<details>
|
|
57
|
+
<summary><b>🎮 UE 5.0 Compatibility</b> (<a href="https://github.com/ChiR24/Unreal_mcp/commit/1057023">1057023</a>)</summary>
|
|
58
|
+
|
|
59
|
+
| Bug | Fix |
|
|
60
|
+
|-----|-----|
|
|
61
|
+
| `bIsWorldInitialized` API not available in UE 5.0 | Direct access to `bIsWorldInitialized` for UE 5.0 compatibility |
|
|
62
|
+
|
|
63
|
+
**Files Modified:**
|
|
64
|
+
- `McpAutomationBridgeHelpers.h`
|
|
65
|
+
- `McpAutomationBridge_LevelStructureHandlers.cpp`
|
|
66
|
+
|
|
67
|
+
</details>
|
|
68
|
+
|
|
69
|
+
<details>
|
|
70
|
+
<summary><b>🐛 Tick Task Manager Crashes</b> (<a href="https://github.com/ChiR24/Unreal_mcp/commit/8c311d7">8c311d7</a>)</summary>
|
|
71
|
+
|
|
72
|
+
| Bug | Fix |
|
|
73
|
+
|-----|-----|
|
|
74
|
+
| Crashes from tick task manager during world operations | Added safety checks and proper cleanup in world management |
|
|
75
|
+
| World cleanup issues | Enhanced cleanup with `FlushRenderingCommands` safety |
|
|
76
|
+
|
|
77
|
+
**Files Modified:**
|
|
78
|
+
- `McpAutomationBridgeHelpers.h` (+36 lines)
|
|
79
|
+
- `McpAutomationBridge_LevelStructureHandlers.cpp` (+65 lines)
|
|
80
|
+
- `McpSafeOperations.h` (+16 lines)
|
|
81
|
+
|
|
82
|
+
</details>
|
|
83
|
+
|
|
84
|
+
<details>
|
|
85
|
+
<summary><b>🐛 Sublevel Creation</b> (<a href="https://github.com/ChiR24/Unreal_mcp/commit/bffb68c">bffb68c</a>)</summary>
|
|
86
|
+
|
|
87
|
+
| Bug | Fix |
|
|
88
|
+
|-----|-----|
|
|
89
|
+
| Sublevel creation path handling issues | Enhanced sublevel creation process with proper path handling |
|
|
90
|
+
|
|
91
|
+
**Files Modified:**
|
|
92
|
+
- `McpAutomationBridge_LevelStructureHandlers.cpp` (+201 lines)
|
|
93
|
+
|
|
94
|
+
</details>
|
|
95
|
+
|
|
96
|
+
<details>
|
|
97
|
+
<summary><b>🔧 UE 5.7 Build</b> (<a href="https://github.com/ChiR24/Unreal_mcp/pull/295">#295</a>)</summary>
|
|
98
|
+
|
|
99
|
+
| Bug | Fix |
|
|
100
|
+
|-----|-----|
|
|
101
|
+
| Missing includes causing build failures on UE 5.7 | Added missing includes in `McpHandlerUtils.cpp` and `McpPropertyReflection.cpp` |
|
|
102
|
+
|
|
103
|
+
**Contributors:** @a2448825647
|
|
104
|
+
|
|
105
|
+
</details>
|
|
106
|
+
|
|
107
|
+
### 🔄 Dependencies
|
|
108
|
+
|
|
109
|
+
<details>
|
|
110
|
+
<summary><b>GitHub Actions Updates</b></summary>
|
|
111
|
+
|
|
112
|
+
| Package | From | To | PR |
|
|
113
|
+
|---------|------|-----|-----|
|
|
114
|
+
| `release-drafter/release-drafter` | 7.0.0 | 7.1.1 | [#300](https://github.com/ChiR24/Unreal_mcp/pull/300) |
|
|
115
|
+
| `softprops/action-gh-release` | 2.5.3 | 2.6.1 | [#301](https://github.com/ChiR24/Unreal_mcp/pull/301) |
|
|
116
|
+
| `github/codeql-action` | 4.32.6 | 4.33.0 | [#299](https://github.com/ChiR24/Unreal_mcp/pull/299) |
|
|
117
|
+
|
|
118
|
+
</details>
|
|
119
|
+
|
|
120
|
+
<details>
|
|
121
|
+
<summary><b>NPM Package Updates</b></summary>
|
|
122
|
+
|
|
123
|
+
| Package | From | To | PR |
|
|
124
|
+
|---------|------|-----|-----|
|
|
125
|
+
| `flatted` | 3.3.3 | 3.4.2 | [#304](https://github.com/ChiR24/Unreal_mcp/pull/304) |
|
|
126
|
+
|
|
127
|
+
</details>
|
|
128
|
+
|
|
129
|
+
### 🔌 Plugin
|
|
130
|
+
|
|
131
|
+
<details>
|
|
132
|
+
<summary><b>MCP Automation Bridge v0.1.3</b></summary>
|
|
133
|
+
|
|
134
|
+
Updated plugin version to 0.1.3 with all fixes and features from this release.
|
|
135
|
+
|
|
136
|
+
See [Plugin CHANGELOG](Plugins/McpAutomationBridge/CHANGELOG.md) for details.
|
|
137
|
+
|
|
138
|
+
</details>
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
10
142
|
## 🏷️ [0.5.19] - 2026-03-18
|
|
11
143
|
|
|
12
144
|
> [!IMPORTANT]
|
package/README.md
CHANGED
|
@@ -202,6 +202,10 @@ LOG_LEVEL=info # debug | info | warn | error
|
|
|
202
202
|
# Optional
|
|
203
203
|
MCP_AUTOMATION_REQUEST_TIMEOUT_MS=120000
|
|
204
204
|
ASSET_LIST_TTL_MS=10000
|
|
205
|
+
|
|
206
|
+
# Custom content mount points (comma-separated)
|
|
207
|
+
# Plugins with CanContainContent register mount points beyond /Game/.
|
|
208
|
+
# MCP_ADDITIONAL_PATH_PREFIXES=/ProjectObject/,/ProjectAnimation/
|
|
205
209
|
```
|
|
206
210
|
|
|
207
211
|
### LAN Access Configuration
|
|
@@ -325,6 +329,7 @@ Blueprints • Materials • Textures • Static Meshes • Skeletal Meshes •
|
|
|
325
329
|
|
|
326
330
|
---
|
|
327
331
|
|
|
332
|
+
## GraphQL API
|
|
328
333
|
|
|
329
334
|
Optional GraphQL endpoint for complex queries. **Disabled by default.**
|
|
330
335
|
|
package/dist/config.d.ts
CHANGED
|
@@ -20,8 +20,10 @@ export declare const EnvSchema: z.ZodObject<{
|
|
|
20
20
|
MCP_CONNECTION_TIMEOUT_MS: z.ZodPipe<z.ZodTransform<number, unknown>, z.ZodDefault<z.ZodNumber>>;
|
|
21
21
|
MCP_REQUEST_TIMEOUT_MS: z.ZodPipe<z.ZodTransform<number, unknown>, z.ZodDefault<z.ZodNumber>>;
|
|
22
22
|
MCP_DEFAULT_CATEGORIES: z.ZodDefault<z.ZodString>;
|
|
23
|
+
MCP_ADDITIONAL_PATH_PREFIXES: z.ZodDefault<z.ZodString>;
|
|
23
24
|
}, z.core.$strip>;
|
|
24
25
|
export type Config = z.infer<typeof EnvSchema>;
|
|
25
26
|
declare let config: Config;
|
|
26
27
|
export { config };
|
|
28
|
+
export declare function getAdditionalPathPrefixes(): string[];
|
|
27
29
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkCxB,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAkCxB,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;iBA2BpB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAE/C,QAAA,IAAI,MAAM,EAAE,MAAM,CAAC;AAgBnB,OAAO,EAAE,MAAM,EAAE,CAAC;AAOlB,wBAAgB,yBAAyB,IAAI,MAAM,EAAE,CAcpD"}
|
package/dist/config.js
CHANGED
|
@@ -40,6 +40,7 @@ export const EnvSchema = z.object({
|
|
|
40
40
|
MCP_CONNECTION_TIMEOUT_MS: z.preprocess((v) => stringToNumber(v, 5000), z.number().default(5000)),
|
|
41
41
|
MCP_REQUEST_TIMEOUT_MS: z.preprocess((v) => stringToNumber(v, 30000), z.number().default(30000)),
|
|
42
42
|
MCP_DEFAULT_CATEGORIES: z.string().default('core'),
|
|
43
|
+
MCP_ADDITIONAL_PATH_PREFIXES: z.string().default(''),
|
|
43
44
|
});
|
|
44
45
|
let config;
|
|
45
46
|
try {
|
|
@@ -57,4 +58,22 @@ catch (error) {
|
|
|
57
58
|
}
|
|
58
59
|
}
|
|
59
60
|
export { config };
|
|
61
|
+
export function getAdditionalPathPrefixes() {
|
|
62
|
+
const raw = config.MCP_ADDITIONAL_PATH_PREFIXES;
|
|
63
|
+
if (!raw || raw.trim() === '')
|
|
64
|
+
return [];
|
|
65
|
+
return raw
|
|
66
|
+
.split(',')
|
|
67
|
+
.map(s => s.trim())
|
|
68
|
+
.filter(s => s.length > 0)
|
|
69
|
+
.map(s => {
|
|
70
|
+
let p = s.startsWith('/') ? s : `/${s}`;
|
|
71
|
+
if (!p.endsWith('/'))
|
|
72
|
+
p += '/';
|
|
73
|
+
if (p === '/' || p.includes('..') || p.includes('//'))
|
|
74
|
+
return '';
|
|
75
|
+
return p;
|
|
76
|
+
})
|
|
77
|
+
.filter(s => s.length > 0);
|
|
78
|
+
}
|
|
60
79
|
//# sourceMappingURL=config.js.map
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -28,7 +28,7 @@ const DEFAULT_SERVER_NAME = typeof packageInfo.name === 'string' && packageInfo.
|
|
|
28
28
|
: 'unreal-engine-mcp';
|
|
29
29
|
const DEFAULT_SERVER_VERSION = typeof packageInfo.version === 'string' && packageInfo.version.trim().length > 0
|
|
30
30
|
? packageInfo.version
|
|
31
|
-
: '0.5.
|
|
31
|
+
: '0.5.21';
|
|
32
32
|
function routeStdoutLogsToStderr() {
|
|
33
33
|
if (!config.MCP_ROUTE_STDOUT_LOGS) {
|
|
34
34
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consolidated-tool-definitions.d.ts","sourceRoot":"","sources":["../../src/tools/consolidated-tool-definitions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,2BAA2B,EAAE,cAAc,
|
|
1
|
+
{"version":3,"file":"consolidated-tool-definitions.d.ts","sourceRoot":"","sources":["../../src/tools/consolidated-tool-definitions.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAC;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,eAAO,MAAM,2BAA2B,EAAE,cAAc,EAylJvD,CAAC"}
|
|
@@ -37,7 +37,7 @@ export const consolidatedToolDefinitions = [
|
|
|
37
37
|
description: 'list_tools: show all tools with status. list_categories: show categories. enable/disable_tools: toggle specific tools. enable/disable_category: toggle category. get_status: current state. reset: restore defaults.'
|
|
38
38
|
},
|
|
39
39
|
tools: { type: 'array', items: commonSchemas.stringProp, description: 'Tool names to enable/disable' },
|
|
40
|
-
category: { type: 'string', description: 'Category name to enable/disable (core, world, authoring, gameplay, utility)' }
|
|
40
|
+
category: { type: 'string', description: 'Category name to enable/disable (core, world, authoring, gameplay, utility, all)' }
|
|
41
41
|
},
|
|
42
42
|
required: ['action']
|
|
43
43
|
},
|
|
@@ -77,6 +77,7 @@ export const consolidatedToolDefinitions = [
|
|
|
77
77
|
recursivePaths: commonSchemas.booleanProp,
|
|
78
78
|
recursiveClasses: commonSchemas.booleanProp,
|
|
79
79
|
limit: commonSchemas.numberProp,
|
|
80
|
+
offset: commonSchemas.numberProp,
|
|
80
81
|
sourcePath: commonSchemas.sourcePath,
|
|
81
82
|
destinationPath: commonSchemas.destinationPath,
|
|
82
83
|
assetPaths: commonSchemas.arrayOfStrings,
|
|
@@ -156,7 +157,10 @@ export const consolidatedToolDefinitions = [
|
|
|
156
157
|
paths: commonSchemas.arrayOfStrings,
|
|
157
158
|
path: commonSchemas.stringProp,
|
|
158
159
|
nodeId: commonSchemas.nodeId,
|
|
159
|
-
details: commonSchemas.objectProp
|
|
160
|
+
details: commonSchemas.objectProp,
|
|
161
|
+
totalCount: commonSchemas.numberProp,
|
|
162
|
+
offset: commonSchemas.numberProp,
|
|
163
|
+
limit: commonSchemas.numberProp
|
|
160
164
|
}
|
|
161
165
|
}
|
|
162
166
|
},
|
|
@@ -3785,7 +3789,7 @@ export const consolidatedToolDefinitions = [
|
|
|
3785
3789
|
{
|
|
3786
3790
|
name: 'manage_sessions',
|
|
3787
3791
|
category: 'utility',
|
|
3788
|
-
description: 'Configure local multiplayer: split-screen layouts, LAN hosting/joining, voice chat channels, and push-to-talk
|
|
3792
|
+
description: 'Configure local multiplayer: split-screen layouts, LAN hosting/joining, voice chat channels, and push-to-talk.\n\nRequired parameters by action:\n- configure_local_session_settings: At least one setting param required\n- configure_session_interface: interfaceType\n- configure_split_screen: enabled or splitScreenType\n- set_split_screen_type: splitScreenType\n- add_local_player: controllerId (requires PIE)\n- remove_local_player: playerIndex (requires PIE)\n- configure_lan_play: enabled, serverPort, or serverPassword\n- host_lan_server: mapName (requires PIE)\n- join_lan_server: serverAddress (requires PIE)\n- enable_voice_chat: voiceEnabled\n- configure_voice_settings: voiceSettings\n- set_voice_channel: channelName\n- mute_player: playerName or targetPlayerId\n- set_voice_attenuation: attenuationRadius\n- configure_push_to_talk: pushToTalkEnabled\n- get_sessions_info: No additional params required',
|
|
3789
3793
|
inputSchema: {
|
|
3790
3794
|
type: 'object',
|
|
3791
3795
|
properties: {
|
|
@@ -3813,23 +3817,23 @@ export const consolidatedToolDefinitions = [
|
|
|
3813
3817
|
interfaceType: {
|
|
3814
3818
|
type: 'string',
|
|
3815
3819
|
enum: ['Default', 'LAN', 'Null'],
|
|
3816
|
-
description: 'Type of session interface to use.'
|
|
3820
|
+
description: 'Type of session interface to use. REQUIRED for configure_session_interface.'
|
|
3817
3821
|
},
|
|
3818
3822
|
enabled: commonSchemas.enabled,
|
|
3819
3823
|
splitScreenType: {
|
|
3820
3824
|
type: 'string',
|
|
3821
3825
|
enum: ['None', 'TwoPlayer_Horizontal', 'TwoPlayer_Vertical', 'ThreePlayer_FavorTop', 'ThreePlayer_FavorBottom', 'FourPlayer_Grid'],
|
|
3822
|
-
description: 'Split-screen layout type.'
|
|
3826
|
+
description: 'Split-screen layout type. REQUIRED for set_split_screen_type.'
|
|
3823
3827
|
},
|
|
3824
|
-
playerIndex: commonSchemas.numberProp,
|
|
3825
|
-
controllerId: commonSchemas.numberProp,
|
|
3826
|
-
serverAddress: commonSchemas.serverAddress,
|
|
3828
|
+
playerIndex: { ...commonSchemas.numberProp, description: 'Local player index. REQUIRED for remove_local_player.' },
|
|
3829
|
+
controllerId: { ...commonSchemas.numberProp, description: 'Controller ID for player input. REQUIRED for add_local_player.' },
|
|
3830
|
+
serverAddress: { ...commonSchemas.serverAddress, description: 'Server IP address. REQUIRED for join_lan_server.' },
|
|
3827
3831
|
serverPort: commonSchemas.numberProp,
|
|
3828
3832
|
serverPassword: { type: 'string', description: 'Server password for protected games.' },
|
|
3829
3833
|
serverName: { type: 'string', description: 'Display name for the server.' },
|
|
3830
|
-
mapName: { type: 'string', description: 'Map to load for hosting.' },
|
|
3834
|
+
mapName: { type: 'string', description: 'Map to load for hosting. REQUIRED for host_lan_server.' },
|
|
3831
3835
|
travelOptions: { type: 'string', description: 'Travel URL options string.' },
|
|
3832
|
-
voiceEnabled: { type: 'boolean', description: 'Enable/disable voice chat.' },
|
|
3836
|
+
voiceEnabled: { type: 'boolean', description: 'Enable/disable voice chat. REQUIRED for enable_voice_chat.' },
|
|
3833
3837
|
voiceSettings: {
|
|
3834
3838
|
type: 'object',
|
|
3835
3839
|
properties: {
|
|
@@ -3839,20 +3843,20 @@ export const consolidatedToolDefinitions = [
|
|
|
3839
3843
|
echoCancellation: { type: 'boolean', description: 'Enable echo cancellation.' },
|
|
3840
3844
|
sampleRate: { type: 'number', description: 'Audio sample rate in Hz.' }
|
|
3841
3845
|
},
|
|
3842
|
-
description: 'Voice processing settings.'
|
|
3846
|
+
description: 'Voice processing settings. REQUIRED for configure_voice_settings.'
|
|
3843
3847
|
},
|
|
3844
|
-
channelName: commonSchemas.channelName,
|
|
3848
|
+
channelName: { ...commonSchemas.channelName, description: 'Voice channel name. REQUIRED for set_voice_channel.' },
|
|
3845
3849
|
channelType: {
|
|
3846
3850
|
type: 'string',
|
|
3847
3851
|
enum: ['Team', 'Global', 'Proximity', 'Party'],
|
|
3848
3852
|
description: 'Voice channel type.'
|
|
3849
3853
|
},
|
|
3850
|
-
playerName: { type: 'string', description: 'Player name for voice operations.' },
|
|
3851
|
-
targetPlayerId: { type: 'string', description: 'Target player ID.' },
|
|
3854
|
+
playerName: { type: 'string', description: 'Player name for voice operations. REQUIRED for mute_player (or targetPlayerId).' },
|
|
3855
|
+
targetPlayerId: { type: 'string', description: 'Target player ID. REQUIRED for mute_player (or playerName).' },
|
|
3852
3856
|
muted: commonSchemas.muted,
|
|
3853
|
-
attenuationRadius: { type: 'number', description: 'Radius for voice attenuation (Proximity chat).' },
|
|
3857
|
+
attenuationRadius: { type: 'number', description: 'Radius for voice attenuation (Proximity chat). REQUIRED for set_voice_attenuation.' },
|
|
3854
3858
|
attenuationFalloff: { type: 'number', description: 'Falloff rate for voice attenuation.' },
|
|
3855
|
-
pushToTalkEnabled: { type: 'boolean', description: 'Enable push-to-talk mode.' },
|
|
3859
|
+
pushToTalkEnabled: { type: 'boolean', description: 'Enable push-to-talk mode. REQUIRED for configure_push_to_talk.' },
|
|
3856
3860
|
pushToTalkKey: { type: 'string', description: 'Key binding for push-to-talk.' }
|
|
3857
3861
|
},
|
|
3858
3862
|
required: ['action']
|
|
@@ -3916,6 +3920,7 @@ export const consolidatedToolDefinitions = [
|
|
|
3916
3920
|
parentLevel: commonSchemas.parentLevel,
|
|
3917
3921
|
templateLevel: commonSchemas.templateLevel,
|
|
3918
3922
|
bCreateWorldPartition: { type: 'boolean', description: 'Create with World Partition enabled.' },
|
|
3923
|
+
bUseExternalActors: { type: 'boolean', description: 'Enable One File Per Actor (OFPA/External Actors) for Data Layer compatibility. Automatically enabled when bCreateWorldPartition is true.' },
|
|
3919
3924
|
sublevelName: commonSchemas.sublevelName,
|
|
3920
3925
|
sublevelPath: commonSchemas.levelPath,
|
|
3921
3926
|
streamingMethod: {
|