unreal-engine-mcp-server 0.5.4 → 0.5.6

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.
Files changed (561) hide show
  1. package/CHANGELOG.md +350 -0
  2. package/dist/automation/bridge.d.ts.map +1 -0
  3. package/dist/automation/bridge.js +5 -4
  4. package/dist/automation/bridge.js.map +1 -0
  5. package/dist/automation/connection-manager.d.ts.map +1 -0
  6. package/dist/automation/connection-manager.js.map +1 -0
  7. package/dist/automation/handshake.d.ts.map +1 -0
  8. package/dist/automation/handshake.js.map +1 -0
  9. package/dist/automation/index.d.ts.map +1 -0
  10. package/dist/automation/index.js.map +1 -0
  11. package/dist/automation/message-handler.d.ts.map +1 -0
  12. package/dist/automation/message-handler.js.map +1 -0
  13. package/dist/automation/request-tracker.d.ts.map +1 -0
  14. package/dist/automation/request-tracker.js.map +1 -0
  15. package/dist/automation/types.d.ts +7 -0
  16. package/dist/automation/types.d.ts.map +1 -0
  17. package/dist/automation/types.js.map +1 -0
  18. package/dist/cli.d.ts.map +1 -0
  19. package/dist/cli.js +6 -4
  20. package/dist/cli.js.map +1 -0
  21. package/dist/config/class-aliases.d.ts.map +1 -0
  22. package/dist/config/class-aliases.js.map +1 -0
  23. package/dist/config.d.ts.map +1 -0
  24. package/dist/config.js.map +1 -0
  25. package/dist/constants.d.ts.map +1 -0
  26. package/dist/constants.js.map +1 -0
  27. package/dist/graphql/loaders.d.ts.map +1 -0
  28. package/dist/graphql/loaders.js.map +1 -0
  29. package/dist/graphql/resolvers.d.ts +174 -69
  30. package/dist/graphql/resolvers.d.ts.map +1 -0
  31. package/dist/graphql/resolvers.js +82 -67
  32. package/dist/graphql/resolvers.js.map +1 -0
  33. package/dist/graphql/schema.d.ts.map +1 -0
  34. package/dist/graphql/schema.js.map +1 -0
  35. package/dist/graphql/server.d.ts.map +1 -0
  36. package/dist/graphql/server.js.map +1 -0
  37. package/dist/graphql/types.d.ts.map +1 -0
  38. package/dist/graphql/types.js.map +1 -0
  39. package/dist/handlers/resource-handlers.d.ts.map +1 -0
  40. package/dist/handlers/resource-handlers.js.map +1 -0
  41. package/dist/index.d.ts +2 -1
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +70 -9
  44. package/dist/index.js.map +1 -0
  45. package/dist/resources/actors.d.ts +7 -4
  46. package/dist/resources/actors.d.ts.map +1 -0
  47. package/dist/resources/actors.js +15 -12
  48. package/dist/resources/actors.js.map +1 -0
  49. package/dist/resources/assets.d.ts +43 -2
  50. package/dist/resources/assets.d.ts.map +1 -0
  51. package/dist/resources/assets.js +21 -12
  52. package/dist/resources/assets.js.map +1 -0
  53. package/dist/resources/levels.d.ts.map +1 -0
  54. package/dist/resources/levels.js +7 -5
  55. package/dist/resources/levels.js.map +1 -0
  56. package/dist/schemas/index.d.ts +4 -0
  57. package/dist/schemas/index.d.ts.map +1 -0
  58. package/dist/schemas/index.js +4 -0
  59. package/dist/schemas/index.js.map +1 -0
  60. package/dist/schemas/parser.d.ts +20 -0
  61. package/dist/schemas/parser.d.ts.map +1 -0
  62. package/dist/schemas/parser.js +61 -0
  63. package/dist/schemas/parser.js.map +1 -0
  64. package/dist/schemas/primitives.d.ts +221 -0
  65. package/dist/schemas/primitives.d.ts.map +1 -0
  66. package/dist/schemas/primitives.js +115 -0
  67. package/dist/schemas/primitives.js.map +1 -0
  68. package/dist/schemas/responses.d.ts +362 -0
  69. package/dist/schemas/responses.d.ts.map +1 -0
  70. package/dist/schemas/responses.js +252 -0
  71. package/dist/schemas/responses.js.map +1 -0
  72. package/dist/server/resource-registry.d.ts.map +1 -0
  73. package/dist/server/resource-registry.js.map +1 -0
  74. package/dist/server/tool-registry.d.ts.map +1 -0
  75. package/dist/server/tool-registry.js +22 -17
  76. package/dist/server/tool-registry.js.map +1 -0
  77. package/dist/server-setup.d.ts.map +1 -0
  78. package/dist/server-setup.js.map +1 -0
  79. package/dist/services/health-monitor.d.ts +1 -1
  80. package/dist/services/health-monitor.d.ts.map +1 -0
  81. package/dist/services/health-monitor.js +4 -3
  82. package/dist/services/health-monitor.js.map +1 -0
  83. package/dist/services/metrics-server.d.ts.map +1 -0
  84. package/dist/services/metrics-server.js.map +1 -0
  85. package/dist/tools/actors.d.ts +27 -27
  86. package/dist/tools/actors.d.ts.map +1 -0
  87. package/dist/tools/actors.js +14 -10
  88. package/dist/tools/actors.js.map +1 -0
  89. package/dist/tools/animation.d.ts +15 -23
  90. package/dist/tools/animation.d.ts.map +1 -0
  91. package/dist/tools/animation.js +17 -13
  92. package/dist/tools/animation.js.map +1 -0
  93. package/dist/tools/assets.d.ts.map +1 -0
  94. package/dist/tools/assets.js +18 -12
  95. package/dist/tools/assets.js.map +1 -0
  96. package/dist/tools/audio.d.ts +10 -10
  97. package/dist/tools/audio.d.ts.map +1 -0
  98. package/dist/tools/audio.js.map +1 -0
  99. package/dist/tools/base-tool.d.ts.map +1 -0
  100. package/dist/tools/base-tool.js.map +1 -0
  101. package/dist/tools/behavior-tree.d.ts +24 -24
  102. package/dist/tools/behavior-tree.d.ts.map +1 -0
  103. package/dist/tools/behavior-tree.js.map +1 -0
  104. package/dist/tools/blueprint.d.ts +14 -3
  105. package/dist/tools/blueprint.d.ts.map +1 -0
  106. package/dist/tools/blueprint.js +5 -3
  107. package/dist/tools/blueprint.js.map +1 -0
  108. package/dist/tools/consolidated-tool-definitions.d.ts +32 -32
  109. package/dist/tools/consolidated-tool-definitions.d.ts.map +1 -0
  110. package/dist/tools/consolidated-tool-definitions.js.map +1 -0
  111. package/dist/tools/consolidated-tool-handlers.d.ts +1 -1
  112. package/dist/tools/consolidated-tool-handlers.d.ts.map +1 -0
  113. package/dist/tools/consolidated-tool-handlers.js +26 -21
  114. package/dist/tools/consolidated-tool-handlers.js.map +1 -0
  115. package/dist/tools/debug.d.ts +25 -7
  116. package/dist/tools/debug.d.ts.map +1 -0
  117. package/dist/tools/debug.js +3 -1
  118. package/dist/tools/debug.js.map +1 -0
  119. package/dist/tools/dynamic-handler-registry.d.ts +1 -1
  120. package/dist/tools/dynamic-handler-registry.d.ts.map +1 -0
  121. package/dist/tools/dynamic-handler-registry.js +3 -1
  122. package/dist/tools/dynamic-handler-registry.js.map +1 -0
  123. package/dist/tools/editor.d.ts.map +1 -0
  124. package/dist/tools/editor.js +8 -6
  125. package/dist/tools/editor.js.map +1 -0
  126. package/dist/tools/engine.d.ts +1 -1
  127. package/dist/tools/engine.d.ts.map +1 -0
  128. package/dist/tools/engine.js +4 -2
  129. package/dist/tools/engine.js.map +1 -0
  130. package/dist/tools/environment.d.ts.map +1 -0
  131. package/dist/tools/environment.js +4 -3
  132. package/dist/tools/environment.js.map +1 -0
  133. package/dist/tools/foliage.d.ts.map +1 -0
  134. package/dist/tools/foliage.js +8 -8
  135. package/dist/tools/foliage.js.map +1 -0
  136. package/dist/tools/handlers/actor-handlers.d.ts +2 -1
  137. package/dist/tools/handlers/actor-handlers.d.ts.map +1 -0
  138. package/dist/tools/handlers/actor-handlers.js +56 -33
  139. package/dist/tools/handlers/actor-handlers.js.map +1 -0
  140. package/dist/tools/handlers/animation-handlers.d.ts +2 -1
  141. package/dist/tools/handlers/animation-handlers.d.ts.map +1 -0
  142. package/dist/tools/handlers/animation-handlers.js +74 -67
  143. package/dist/tools/handlers/animation-handlers.js.map +1 -0
  144. package/dist/tools/handlers/argument-helper.d.ts +24 -4
  145. package/dist/tools/handlers/argument-helper.d.ts.map +1 -0
  146. package/dist/tools/handlers/argument-helper.js +139 -4
  147. package/dist/tools/handlers/argument-helper.js.map +1 -0
  148. package/dist/tools/handlers/asset-handlers.d.ts +2 -1
  149. package/dist/tools/handlers/asset-handlers.d.ts.map +1 -0
  150. package/dist/tools/handlers/asset-handlers.js +155 -94
  151. package/dist/tools/handlers/asset-handlers.js.map +1 -0
  152. package/dist/tools/handlers/audio-handlers.d.ts +2 -1
  153. package/dist/tools/handlers/audio-handlers.d.ts.map +1 -0
  154. package/dist/tools/handlers/audio-handlers.js +82 -80
  155. package/dist/tools/handlers/audio-handlers.js.map +1 -0
  156. package/dist/tools/handlers/blueprint-handlers.d.ts +3 -5
  157. package/dist/tools/handlers/blueprint-handlers.d.ts.map +1 -0
  158. package/dist/tools/handlers/blueprint-handlers.js +150 -142
  159. package/dist/tools/handlers/blueprint-handlers.js.map +1 -0
  160. package/dist/tools/handlers/common-handlers.d.ts +2 -3
  161. package/dist/tools/handlers/common-handlers.d.ts.map +1 -0
  162. package/dist/tools/handlers/common-handlers.js.map +1 -0
  163. package/dist/tools/handlers/editor-handlers.d.ts.map +1 -0
  164. package/dist/tools/handlers/editor-handlers.js +12 -2
  165. package/dist/tools/handlers/editor-handlers.js.map +1 -0
  166. package/dist/tools/handlers/effect-handlers.d.ts +2 -1
  167. package/dist/tools/handlers/effect-handlers.d.ts.map +1 -0
  168. package/dist/tools/handlers/effect-handlers.js +70 -68
  169. package/dist/tools/handlers/effect-handlers.js.map +1 -0
  170. package/dist/tools/handlers/environment-handlers.d.ts +2 -1
  171. package/dist/tools/handlers/environment-handlers.d.ts.map +1 -0
  172. package/dist/tools/handlers/environment-handlers.js +86 -74
  173. package/dist/tools/handlers/environment-handlers.js.map +1 -0
  174. package/dist/tools/handlers/graph-handlers.d.ts +1 -1
  175. package/dist/tools/handlers/graph-handlers.d.ts.map +1 -0
  176. package/dist/tools/handlers/graph-handlers.js +63 -2
  177. package/dist/tools/handlers/graph-handlers.js.map +1 -0
  178. package/dist/tools/handlers/input-handlers.d.ts +2 -5
  179. package/dist/tools/handlers/input-handlers.d.ts.map +1 -0
  180. package/dist/tools/handlers/input-handlers.js +5 -4
  181. package/dist/tools/handlers/input-handlers.js.map +1 -0
  182. package/dist/tools/handlers/inspect-handlers.d.ts +2 -1
  183. package/dist/tools/handlers/inspect-handlers.d.ts.map +1 -0
  184. package/dist/tools/handlers/inspect-handlers.js +61 -37
  185. package/dist/tools/handlers/inspect-handlers.js.map +1 -0
  186. package/dist/tools/handlers/level-handlers.d.ts +2 -2
  187. package/dist/tools/handlers/level-handlers.d.ts.map +1 -0
  188. package/dist/tools/handlers/level-handlers.js +43 -39
  189. package/dist/tools/handlers/level-handlers.js.map +1 -0
  190. package/dist/tools/handlers/lighting-handlers.d.ts +12 -1
  191. package/dist/tools/handlers/lighting-handlers.d.ts.map +1 -0
  192. package/dist/tools/handlers/lighting-handlers.js +90 -47
  193. package/dist/tools/handlers/lighting-handlers.js.map +1 -0
  194. package/dist/tools/handlers/performance-handlers.d.ts +2 -1
  195. package/dist/tools/handlers/performance-handlers.d.ts.map +1 -0
  196. package/dist/tools/handlers/performance-handlers.js +55 -40
  197. package/dist/tools/handlers/performance-handlers.js.map +1 -0
  198. package/dist/tools/handlers/pipeline-handlers.d.ts.map +1 -0
  199. package/dist/tools/handlers/pipeline-handlers.js.map +1 -0
  200. package/dist/tools/handlers/sequence-handlers.d.ts.map +1 -0
  201. package/dist/tools/handlers/sequence-handlers.js.map +1 -0
  202. package/dist/tools/handlers/system-handlers.d.ts +3 -2
  203. package/dist/tools/handlers/system-handlers.d.ts.map +1 -0
  204. package/dist/tools/handlers/system-handlers.js +105 -52
  205. package/dist/tools/handlers/system-handlers.js.map +1 -0
  206. package/dist/tools/input.d.ts.map +1 -0
  207. package/dist/tools/input.js +3 -1
  208. package/dist/tools/input.js.map +1 -0
  209. package/dist/tools/introspection.d.ts +14 -14
  210. package/dist/tools/introspection.d.ts.map +1 -0
  211. package/dist/tools/introspection.js +54 -45
  212. package/dist/tools/introspection.js.map +1 -0
  213. package/dist/tools/landscape.d.ts.map +1 -0
  214. package/dist/tools/landscape.js +15 -13
  215. package/dist/tools/landscape.js.map +1 -0
  216. package/dist/tools/level.d.ts.map +1 -0
  217. package/dist/tools/level.js +3 -2
  218. package/dist/tools/level.js.map +1 -0
  219. package/dist/tools/lighting.d.ts +32 -59
  220. package/dist/tools/lighting.d.ts.map +1 -0
  221. package/dist/tools/lighting.js +56 -19
  222. package/dist/tools/lighting.js.map +1 -0
  223. package/dist/tools/logs.d.ts.map +1 -0
  224. package/dist/tools/logs.js +2 -1
  225. package/dist/tools/logs.js.map +1 -0
  226. package/dist/tools/materials.d.ts +42 -14
  227. package/dist/tools/materials.d.ts.map +1 -0
  228. package/dist/tools/materials.js +15 -9
  229. package/dist/tools/materials.js.map +1 -0
  230. package/dist/tools/niagara.d.ts +63 -39
  231. package/dist/tools/niagara.d.ts.map +1 -0
  232. package/dist/tools/niagara.js +43 -33
  233. package/dist/tools/niagara.js.map +1 -0
  234. package/dist/tools/performance.d.ts +12 -11
  235. package/dist/tools/performance.d.ts.map +1 -0
  236. package/dist/tools/performance.js +3 -2
  237. package/dist/tools/performance.js.map +1 -0
  238. package/dist/tools/physics.d.ts +37 -20
  239. package/dist/tools/physics.d.ts.map +1 -0
  240. package/dist/tools/physics.js +37 -30
  241. package/dist/tools/physics.js.map +1 -0
  242. package/dist/tools/property-dictionary.d.ts.map +1 -0
  243. package/dist/tools/property-dictionary.js.map +1 -0
  244. package/dist/tools/sequence.d.ts +1 -1
  245. package/dist/tools/sequence.d.ts.map +1 -0
  246. package/dist/tools/sequence.js +8 -4
  247. package/dist/tools/sequence.js.map +1 -0
  248. package/dist/tools/tool-definition-utils.d.ts.map +1 -0
  249. package/dist/tools/tool-definition-utils.js.map +1 -0
  250. package/dist/tools/ui.d.ts +11 -11
  251. package/dist/tools/ui.d.ts.map +1 -0
  252. package/dist/tools/ui.js +7 -3
  253. package/dist/tools/ui.js.map +1 -0
  254. package/dist/types/automation-responses.d.ts.map +1 -0
  255. package/dist/types/automation-responses.js.map +1 -0
  256. package/dist/types/env.d.ts.map +1 -0
  257. package/dist/types/env.js.map +1 -0
  258. package/dist/types/handler-types.d.ts +112 -3
  259. package/dist/types/handler-types.d.ts.map +1 -0
  260. package/dist/types/handler-types.js.map +1 -0
  261. package/dist/types/tool-interfaces.d.ts +39 -21
  262. package/dist/types/tool-interfaces.d.ts.map +1 -0
  263. package/dist/types/tool-interfaces.js.map +1 -0
  264. package/dist/types/tool-types.d.ts +8 -8
  265. package/dist/types/tool-types.d.ts.map +1 -0
  266. package/dist/types/tool-types.js.map +1 -0
  267. package/dist/unreal-bridge.d.ts +8 -6
  268. package/dist/unreal-bridge.d.ts.map +1 -0
  269. package/dist/unreal-bridge.js +16 -3
  270. package/dist/unreal-bridge.js.map +1 -0
  271. package/dist/utils/command-validator.d.ts.map +1 -0
  272. package/dist/utils/command-validator.js.map +1 -0
  273. package/dist/utils/elicitation.d.ts +2 -5
  274. package/dist/utils/elicitation.d.ts.map +1 -0
  275. package/dist/utils/elicitation.js +3 -2
  276. package/dist/utils/elicitation.js.map +1 -0
  277. package/dist/utils/error-handler.d.ts.map +1 -0
  278. package/dist/utils/error-handler.js.map +1 -0
  279. package/dist/utils/ini-reader.d.ts +1 -1
  280. package/dist/utils/ini-reader.d.ts.map +1 -0
  281. package/dist/utils/ini-reader.js.map +1 -0
  282. package/dist/utils/logger.d.ts +4 -4
  283. package/dist/utils/logger.d.ts.map +1 -0
  284. package/dist/utils/logger.js.map +1 -0
  285. package/dist/utils/normalize.d.ts +2 -2
  286. package/dist/utils/normalize.d.ts.map +1 -0
  287. package/dist/utils/normalize.js +4 -3
  288. package/dist/utils/normalize.js.map +1 -0
  289. package/dist/utils/path-security.d.ts.map +1 -0
  290. package/dist/utils/path-security.js.map +1 -0
  291. package/dist/utils/response-factory.d.ts +2 -2
  292. package/dist/utils/response-factory.d.ts.map +1 -0
  293. package/dist/utils/response-factory.js +3 -1
  294. package/dist/utils/response-factory.js.map +1 -0
  295. package/dist/utils/response-validator.d.ts +4 -4
  296. package/dist/utils/response-validator.d.ts.map +1 -0
  297. package/dist/utils/response-validator.js +31 -23
  298. package/dist/utils/response-validator.js.map +1 -0
  299. package/dist/utils/result-helpers.d.ts.map +1 -0
  300. package/dist/utils/result-helpers.js.map +1 -0
  301. package/dist/utils/safe-json.d.ts.map +1 -0
  302. package/dist/utils/safe-json.js.map +1 -0
  303. package/dist/utils/unreal-command-queue.d.ts +2 -2
  304. package/dist/utils/unreal-command-queue.d.ts.map +1 -0
  305. package/dist/utils/unreal-command-queue.js +4 -3
  306. package/dist/utils/unreal-command-queue.js.map +1 -0
  307. package/dist/utils/validation.d.ts +1 -1
  308. package/dist/utils/validation.d.ts.map +1 -0
  309. package/dist/utils/validation.js.map +1 -0
  310. package/dist/wasm/index.d.ts +2 -2
  311. package/dist/wasm/index.d.ts.map +1 -0
  312. package/dist/wasm/index.js +11 -7
  313. package/dist/wasm/index.js.map +1 -0
  314. package/package.json +12 -34
  315. package/server.json +2 -2
  316. package/.dockerignore +0 -57
  317. package/.env.example +0 -26
  318. package/.env.production +0 -61
  319. package/.eslintrc.json +0 -0
  320. package/.eslintrc.override.json +0 -8
  321. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -94
  322. package/.github/ISSUE_TEMPLATE/config.yml +0 -8
  323. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -56
  324. package/.github/copilot-instructions.md +0 -478
  325. package/.github/dependabot.yml +0 -19
  326. package/.github/labeler.yml +0 -24
  327. package/.github/labels.yml +0 -70
  328. package/.github/pull_request_template.md +0 -42
  329. package/.github/release-drafter-config.yml +0 -51
  330. package/.github/workflows/auto-merge.yml +0 -38
  331. package/.github/workflows/ci.yml +0 -38
  332. package/.github/workflows/dependency-review.yml +0 -17
  333. package/.github/workflows/gemini-issue-triage.yml +0 -172
  334. package/.github/workflows/greetings.yml +0 -27
  335. package/.github/workflows/labeler.yml +0 -17
  336. package/.github/workflows/links.yml +0 -80
  337. package/.github/workflows/pr-size-labeler.yml +0 -137
  338. package/.github/workflows/publish-mcp.yml +0 -79
  339. package/.github/workflows/release-drafter.yml +0 -24
  340. package/.github/workflows/release.yml +0 -112
  341. package/.github/workflows/semantic-pull-request.yml +0 -35
  342. package/.github/workflows/smoke-test.yml +0 -36
  343. package/.github/workflows/stale.yml +0 -28
  344. package/CONTRIBUTING.md +0 -140
  345. package/Dockerfile +0 -37
  346. package/GEMINI.md +0 -115
  347. package/Public/Plugin_setup_guide.mp4 +0 -0
  348. package/Public/icon.png +0 -0
  349. package/claude_desktop_config_example.json +0 -15
  350. package/dist/types/responses.d.ts +0 -249
  351. package/dist/types/responses.js +0 -2
  352. package/docs/GraphQL-API.md +0 -888
  353. package/docs/Migration-Guide-v0.5.0.md +0 -684
  354. package/docs/Roadmap.md +0 -53
  355. package/docs/WebAssembly-Integration.md +0 -628
  356. package/docs/editor-plugin-extension.md +0 -370
  357. package/docs/handler-mapping.md +0 -249
  358. package/docs/native-automation-progress.md +0 -128
  359. package/docs/testing-guide.md +0 -423
  360. package/eslint.config.mjs +0 -68
  361. package/mcp-config-example.json +0 -14
  362. package/plugins/McpAutomationBridge/Config/FilterPlugin.ini +0 -8
  363. package/plugins/McpAutomationBridge/McpAutomationBridge.uplugin +0 -64
  364. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/McpAutomationBridge.Build.cs +0 -189
  365. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeGlobals.cpp +0 -22
  366. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeGlobals.h +0 -30
  367. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeHelpers.h +0 -1983
  368. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeModule.cpp +0 -72
  369. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeSettings.cpp +0 -46
  370. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeSubsystem.cpp +0 -846
  371. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AnimationHandlers.cpp +0 -2393
  372. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AssetQueryHandlers.cpp +0 -300
  373. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AssetWorkflowHandlers.cpp +0 -2807
  374. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AudioHandlers.cpp +0 -1087
  375. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BehaviorTreeHandlers.cpp +0 -488
  376. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintCreationHandlers.cpp +0 -643
  377. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintCreationHandlers.h +0 -31
  378. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintGraphHandlers.cpp +0 -1094
  379. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintHandlers.cpp +0 -5750
  380. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintHandlers_List.cpp +0 -152
  381. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_ControlHandlers.cpp +0 -2614
  382. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_DebugHandlers.cpp +0 -42
  383. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EditorFunctionHandlers.cpp +0 -1237
  384. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EffectHandlers.cpp +0 -1725
  385. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EnvironmentHandlers.cpp +0 -2265
  386. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_FoliageHandlers.cpp +0 -954
  387. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_InputHandlers.cpp +0 -209
  388. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_InsightsHandlers.cpp +0 -41
  389. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LandscapeHandlers.cpp +0 -1164
  390. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LevelHandlers.cpp +0 -762
  391. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LightingHandlers.cpp +0 -663
  392. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LogHandlers.cpp +0 -136
  393. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_MaterialGraphHandlers.cpp +0 -494
  394. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_NiagaraGraphHandlers.cpp +0 -278
  395. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_NiagaraHandlers.cpp +0 -625
  396. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PerformanceHandlers.cpp +0 -401
  397. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PipelineHandlers.cpp +0 -67
  398. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_ProcessRequest.cpp +0 -472
  399. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PropertyHandlers.cpp +0 -2634
  400. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_RenderHandlers.cpp +0 -189
  401. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SCSHandlers.cpp +0 -917
  402. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SCSHandlers.h +0 -39
  403. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SequenceHandlers.cpp +0 -2706
  404. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SequencerHandlers.cpp +0 -519
  405. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_TestHandlers.cpp +0 -38
  406. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_UiHandlers.cpp +0 -668
  407. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_WorldPartitionHandlers.cpp +0 -346
  408. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpBridgeWebSocket.cpp +0 -1345
  409. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpBridgeWebSocket.h +0 -149
  410. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpConnectionManager.cpp +0 -782
  411. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpAutomationBridgeSettings.h +0 -115
  412. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpAutomationBridgeSubsystem.h +0 -796
  413. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpConnectionManager.h +0 -117
  414. package/scripts/check-unreal-connection.mjs +0 -19
  415. package/scripts/clean-tmp.js +0 -23
  416. package/scripts/patch-wasm.js +0 -26
  417. package/scripts/run-all-tests.mjs +0 -136
  418. package/scripts/smoke-test.ts +0 -94
  419. package/scripts/sync-mcp-plugin.js +0 -143
  420. package/scripts/test-no-plugin-alternates.mjs +0 -113
  421. package/scripts/validate-server.js +0 -46
  422. package/scripts/verify-automation-bridge.js +0 -200
  423. package/src/automation/bridge.ts +0 -630
  424. package/src/automation/connection-manager.ts +0 -148
  425. package/src/automation/handshake.ts +0 -99
  426. package/src/automation/index.ts +0 -2
  427. package/src/automation/message-handler.ts +0 -192
  428. package/src/automation/request-tracker.ts +0 -155
  429. package/src/automation/types.ts +0 -108
  430. package/src/cli.ts +0 -34
  431. package/src/config/class-aliases.ts +0 -65
  432. package/src/config.ts +0 -73
  433. package/src/constants.ts +0 -29
  434. package/src/graphql/loaders.ts +0 -244
  435. package/src/graphql/resolvers.ts +0 -1008
  436. package/src/graphql/schema.ts +0 -452
  437. package/src/graphql/server.ts +0 -156
  438. package/src/graphql/types.ts +0 -10
  439. package/src/handlers/resource-handlers.ts +0 -186
  440. package/src/index.ts +0 -243
  441. package/src/resources/actors.ts +0 -127
  442. package/src/resources/assets.ts +0 -286
  443. package/src/resources/levels.ts +0 -68
  444. package/src/server/resource-registry.ts +0 -47
  445. package/src/server/tool-registry.ts +0 -354
  446. package/src/server-setup.ts +0 -114
  447. package/src/services/health-monitor.ts +0 -132
  448. package/src/services/metrics-server.ts +0 -176
  449. package/src/tools/actors.ts +0 -564
  450. package/src/tools/animation.ts +0 -941
  451. package/src/tools/assets.ts +0 -394
  452. package/src/tools/audio.ts +0 -499
  453. package/src/tools/base-tool.ts +0 -52
  454. package/src/tools/behavior-tree.ts +0 -45
  455. package/src/tools/blueprint.ts +0 -940
  456. package/src/tools/consolidated-tool-definitions.ts +0 -1256
  457. package/src/tools/consolidated-tool-handlers.ts +0 -302
  458. package/src/tools/debug.ts +0 -622
  459. package/src/tools/dynamic-handler-registry.ts +0 -33
  460. package/src/tools/editor.ts +0 -435
  461. package/src/tools/engine.ts +0 -43
  462. package/src/tools/environment.ts +0 -281
  463. package/src/tools/foliage.ts +0 -596
  464. package/src/tools/handlers/actor-handlers.ts +0 -244
  465. package/src/tools/handlers/animation-handlers.ts +0 -237
  466. package/src/tools/handlers/argument-helper.ts +0 -142
  467. package/src/tools/handlers/asset-handlers.ts +0 -550
  468. package/src/tools/handlers/audio-handlers.ts +0 -194
  469. package/src/tools/handlers/blueprint-handlers.ts +0 -380
  470. package/src/tools/handlers/common-handlers.ts +0 -108
  471. package/src/tools/handlers/editor-handlers.ts +0 -124
  472. package/src/tools/handlers/effect-handlers.ts +0 -224
  473. package/src/tools/handlers/environment-handlers.ts +0 -183
  474. package/src/tools/handlers/graph-handlers.ts +0 -117
  475. package/src/tools/handlers/input-handlers.ts +0 -28
  476. package/src/tools/handlers/inspect-handlers.ts +0 -450
  477. package/src/tools/handlers/level-handlers.ts +0 -253
  478. package/src/tools/handlers/lighting-handlers.ts +0 -151
  479. package/src/tools/handlers/performance-handlers.ts +0 -132
  480. package/src/tools/handlers/pipeline-handlers.ts +0 -194
  481. package/src/tools/handlers/sequence-handlers.ts +0 -438
  482. package/src/tools/handlers/system-handlers.ts +0 -564
  483. package/src/tools/input.ts +0 -160
  484. package/src/tools/introspection.ts +0 -689
  485. package/src/tools/landscape.ts +0 -649
  486. package/src/tools/level.ts +0 -989
  487. package/src/tools/lighting.ts +0 -1052
  488. package/src/tools/logs.ts +0 -219
  489. package/src/tools/materials.ts +0 -295
  490. package/src/tools/niagara.ts +0 -485
  491. package/src/tools/performance.ts +0 -661
  492. package/src/tools/physics.ts +0 -679
  493. package/src/tools/property-dictionary.ts +0 -98
  494. package/src/tools/sequence.ts +0 -385
  495. package/src/tools/tool-definition-utils.ts +0 -35
  496. package/src/tools/ui.ts +0 -452
  497. package/src/types/automation-responses.ts +0 -119
  498. package/src/types/env.ts +0 -17
  499. package/src/types/handler-types.ts +0 -442
  500. package/src/types/responses.ts +0 -355
  501. package/src/types/tool-interfaces.ts +0 -250
  502. package/src/types/tool-types.ts +0 -575
  503. package/src/unreal-bridge.ts +0 -693
  504. package/src/utils/command-validator.ts +0 -139
  505. package/src/utils/elicitation.ts +0 -132
  506. package/src/utils/error-handler.ts +0 -287
  507. package/src/utils/ini-reader.ts +0 -86
  508. package/src/utils/logger.ts +0 -35
  509. package/src/utils/normalize.test.ts +0 -162
  510. package/src/utils/normalize.ts +0 -146
  511. package/src/utils/path-security.ts +0 -43
  512. package/src/utils/response-factory.ts +0 -44
  513. package/src/utils/response-validator.ts +0 -395
  514. package/src/utils/result-helpers.ts +0 -195
  515. package/src/utils/safe-json.test.ts +0 -90
  516. package/src/utils/safe-json.ts +0 -70
  517. package/src/utils/unreal-command-queue.ts +0 -166
  518. package/src/utils/validation.test.ts +0 -184
  519. package/src/utils/validation.ts +0 -312
  520. package/src/wasm/index.ts +0 -838
  521. package/test-server.mjs +0 -100
  522. package/tests/test-animation.mjs +0 -369
  523. package/tests/test-asset-advanced.mjs +0 -82
  524. package/tests/test-asset-graph.mjs +0 -311
  525. package/tests/test-audio.mjs +0 -417
  526. package/tests/test-automation-timeouts.mjs +0 -98
  527. package/tests/test-behavior-tree.mjs +0 -444
  528. package/tests/test-blueprint-graph.mjs +0 -410
  529. package/tests/test-blueprint.mjs +0 -577
  530. package/tests/test-client-mode.mjs +0 -86
  531. package/tests/test-console-command.mjs +0 -56
  532. package/tests/test-control-actor.mjs +0 -425
  533. package/tests/test-control-editor.mjs +0 -112
  534. package/tests/test-graphql.mjs +0 -372
  535. package/tests/test-input.mjs +0 -349
  536. package/tests/test-inspect.mjs +0 -302
  537. package/tests/test-landscape.mjs +0 -316
  538. package/tests/test-lighting.mjs +0 -428
  539. package/tests/test-manage-asset.mjs +0 -438
  540. package/tests/test-manage-level.mjs +0 -89
  541. package/tests/test-materials.mjs +0 -356
  542. package/tests/test-niagara.mjs +0 -185
  543. package/tests/test-no-inline-python.mjs +0 -122
  544. package/tests/test-performance.mjs +0 -539
  545. package/tests/test-plugin-handshake.mjs +0 -82
  546. package/tests/test-runner.mjs +0 -993
  547. package/tests/test-sequence.mjs +0 -104
  548. package/tests/test-system.mjs +0 -96
  549. package/tests/test-wasm.mjs +0 -283
  550. package/tests/test-world-partition.mjs +0 -215
  551. package/tsconfig.json +0 -56
  552. package/vitest.config.ts +0 -35
  553. package/wasm/Cargo.lock +0 -363
  554. package/wasm/Cargo.toml +0 -42
  555. package/wasm/LICENSE +0 -21
  556. package/wasm/README.md +0 -253
  557. package/wasm/src/dependency_resolver.rs +0 -377
  558. package/wasm/src/lib.rs +0 -153
  559. package/wasm/src/property_parser.rs +0 -271
  560. package/wasm/src/transform_math.rs +0 -396
  561. package/wasm/tests/integration.rs +0 -109
@@ -1,888 +0,0 @@
1
- # GraphQL API Documentation
2
-
3
- ## Overview
4
-
5
- The Unreal Engine MCP Server now includes a GraphQL API that provides a flexible, efficient alternative to the standard MCP tools for complex queries. The GraphQL API allows you to:
6
-
7
- - Query multiple related objects in a single request
8
- - Specify exactly what data you need (no over-fetching)
9
- - Use nested queries to traverse object relationships
10
- - Perform mutations (create, update, delete) through mutations
11
- - Leverage GraphQL's strong typing and introspection
12
-
13
- ## GraphQL Server Configuration
14
-
15
- ### Environment Variables
16
-
17
- ```bash
18
- # Enable/disable GraphQL server
19
- GRAPHQL_ENABLED=true
20
-
21
- # Server host and port
22
- GRAPHQL_HOST=127.0.0.1
23
- GRAPHQL_PORT=4000
24
-
25
- # GraphQL endpoint path
26
- GRAPHQL_PATH=/graphql
27
-
28
- # CORS settings
29
- GRAPHQL_CORS_ORIGIN=*
30
- GRAPHQL_CORS_CREDENTIALS=false
31
- ```
32
-
33
- ### Accessing the GraphQL API
34
-
35
- The GraphQL server runs on a separate port from the MCP server:
36
-
37
- - **URL**: `http://127.0.0.1:4000/graphql`
38
- - **Default Port**: 4000 (configurable via `GRAPHQL_PORT`)
39
- - **Default Host**: 127.0.0.1 (configurable via `GRAPHQL_HOST`)
40
-
41
- ## GraphQL Schema
42
-
43
- ### Custom Scalars
44
-
45
- - **Vector**: 3D vector with `x`, `y`, `z` fields (Float)
46
- - **Rotator**: Rotation with `pitch`, `yaw`, `roll` fields (Float, degrees)
47
- - **Transform**: Combined transform with `location`, `rotation`, `scale` (Vector/Rotator/Vector)
48
- - **JSON**: Arbitrary JSON data
49
-
50
- ### Core Types
51
-
52
- #### Asset
53
- ```graphql
54
- type Asset {
55
- name: String!
56
- path: String!
57
- class: String!
58
- packagePath: String!
59
- size: Float
60
- dependencies: [Asset!]!
61
- dependents: [Asset!]!
62
- metadata: JSON
63
- tags: [String!]!
64
- }
65
- ```
66
-
67
- #### Actor
68
- ```graphql
69
- type Actor {
70
- name: String!
71
- class: String!
72
- location: Vector
73
- rotation: Rotator
74
- scale: Vector
75
- components: [Component!]!
76
- tags: [String!]!
77
- properties: JSON
78
- }
79
- ```
80
-
81
- #### Blueprint
82
- ```graphql
83
- type Blueprint {
84
- name: String!
85
- path: String!
86
- parentClass: String
87
- variables: [Variable!]!
88
- functions: [Function!]!
89
- events: [Event!]!
90
- components: [Component!]!
91
- scsHierarchy: JSON
92
- }
93
- ```
94
-
95
- ## Query Examples
96
-
97
- ### 1. List All Assets
98
-
99
- ```graphql
100
- query {
101
- assets {
102
- edges {
103
- node {
104
- name
105
- path
106
- class
107
- packagePath
108
- }
109
- cursor
110
- }
111
- pageInfo {
112
- hasNextPage
113
- hasPreviousPage
114
- }
115
- totalCount
116
- }
117
- }
118
- ```
119
-
120
- ### 2. Filter Assets by Class
121
-
122
- ```graphql
123
- query {
124
- assets(filter: { class: "Material" }) {
125
- edges {
126
- node {
127
- name
128
- path
129
- class
130
- tags
131
- }
132
- }
133
- totalCount
134
- }
135
- }
136
- ```
137
-
138
- ### 3. Get Asset with Dependencies
139
-
140
- ```graphql
141
- query {
142
- asset(path: "/Game/Materials/M_Master") {
143
- name
144
- path
145
- class
146
- dependencies {
147
- name
148
- path
149
- }
150
- dependents {
151
- name
152
- path
153
- }
154
- metadata
155
- tags
156
- }
157
- }
158
- ```
159
-
160
- ### 4. Paginated Asset Query
161
-
162
- ```graphql
163
- query {
164
- assets(pagination: { offset: 0, limit: 10 }) {
165
- edges {
166
- node {
167
- name
168
- path
169
- class
170
- }
171
- cursor
172
- }
173
- pageInfo {
174
- hasNextPage
175
- hasPreviousPage
176
- startCursor
177
- endCursor
178
- }
179
- totalCount
180
- }
181
- }
182
- ```
183
-
184
- ### 5. List All Actors
185
-
186
- ```graphql
187
- query {
188
- actors {
189
- edges {
190
- node {
191
- name
192
- class
193
- location {
194
- x
195
- y
196
- z
197
- }
198
- rotation {
199
- pitch
200
- yaw
201
- roll
202
- }
203
- tags
204
- }
205
- }
206
- totalCount
207
- }
208
- }
209
- ```
210
-
211
- ### 6. Get Actor with Properties and Components
212
-
213
- ```graphql
214
- query {
215
- actor(name: "SpotLight_Main") {
216
- name
217
- class
218
- location {
219
- x
220
- y
221
- z
222
- }
223
- rotation {
224
- pitch
225
- yaw
226
- roll
227
- }
228
- tags
229
- properties
230
- components {
231
- name
232
- type
233
- properties
234
- }
235
- }
236
- }
237
- ```
238
-
239
- ### 7. Filter Actors by Tag
240
-
241
- ```graphql
242
- query {
243
- actors(filter: { tag: "Enemy" }) {
244
- edges {
245
- node {
246
- name
247
- class
248
- tags
249
- }
250
- }
251
- totalCount
252
- }
253
- }
254
- ```
255
-
256
- ### 8. Get Blueprint Details
257
-
258
- ```graphql
259
- query {
260
- blueprint(path: "/Game/Blueprints/BP_PlayerCharacter") {
261
- name
262
- path
263
- parentClass
264
- variables {
265
- name
266
- type
267
- defaultValue
268
- metadata
269
- }
270
- functions {
271
- name
272
- inputs {
273
- name
274
- type
275
- }
276
- outputs {
277
- name
278
- type
279
- }
280
- }
281
- events {
282
- name
283
- type
284
- }
285
- components {
286
- name
287
- type
288
- }
289
- scsHierarchy
290
- }
291
- }
292
- ```
293
-
294
- ### 9. List All Blueprints
295
-
296
- ```graphql
297
- query {
298
- blueprints {
299
- edges {
300
- node {
301
- name
302
- path
303
- parentClass
304
- variables {
305
- name
306
- type
307
- }
308
- functions {
309
- name
310
- }
311
- }
312
- }
313
- totalCount
314
- }
315
- }
316
- ```
317
-
318
- ### 10. Filter Blueprints by Parent Class
319
-
320
- ```graphql
321
- query {
322
- blueprints(filter: { parentClass: "Actor" }) {
323
- edges {
324
- node {
325
- name
326
- path
327
- parentClass
328
- }
329
- }
330
- totalCount
331
- }
332
- }
333
- ```
334
-
335
- ### 11. Get Current Level Information
336
-
337
- ```graphql
338
- query {
339
- currentLevel {
340
- name
341
- path
342
- loaded
343
- lightingQuality
344
- actors {
345
- name
346
- class
347
- }
348
- streamingLevels
349
- }
350
- }
351
- ```
352
-
353
- ### 12. List All Levels
354
-
355
- ```graphql
356
- query {
357
- levels {
358
- name
359
- path
360
- loaded
361
- actorCount
362
- }
363
- }
364
- ```
365
-
366
- ### 13. Search Across All Types
367
-
368
- ```graphql
369
- query {
370
- search(query: "Player", type: ALL) {
371
- ... on Asset {
372
- name
373
- path
374
- __typename
375
- }
376
- ... on Actor {
377
- name
378
- class
379
- __typename
380
- }
381
- ... on Blueprint {
382
- name
383
- path
384
- __typename
385
- }
386
- }
387
- }
388
- ```
389
-
390
- ### 14. Search for Assets Only
391
-
392
- ```graphql
393
- query {
394
- search(query: "Material", type: ASSETS) {
395
- ... on Asset {
396
- name
397
- path
398
- class
399
- }
400
- }
401
- }
402
- ```
403
-
404
- ## Mutation Examples
405
-
406
- ### 1. Duplicate an Asset
407
-
408
- ```graphql
409
- mutation {
410
- duplicateAsset(path: "/Game/Materials/M_Master", newName: "M_Master_Copy") {
411
- name
412
- path
413
- class
414
- }
415
- }
416
- ```
417
-
418
- ### 2. Move an Asset
419
-
420
- ```graphql
421
- mutation {
422
- moveAsset(path: "/Game/Materials/M_Master", newPath: "/Game/Archived/Materials/M_Master") {
423
- name
424
- path
425
- }
426
- }
427
- ```
428
-
429
- ### 3. Delete an Asset
430
-
431
- ```graphql
432
- mutation {
433
- deleteAsset(path: "/Game/Materials/M_Old")
434
- }
435
- ```
436
-
437
- ### 4. Spawn an Actor
438
-
439
- ```graphql
440
- mutation {
441
- spawnActor(input: {
442
- classPath: "StaticMeshActor"
443
- name: "Cube_001"
444
- transform: {
445
- location: { x: 0, y: 0, z: 100 }
446
- rotation: { pitch: 0, yaw: 0, roll: 0 }
447
- scale: { x: 1, y: 1, z: 1 }
448
- }
449
- tags: ["Spawned"]
450
- }) {
451
- name
452
- class
453
- location {
454
- x
455
- y
456
- z
457
- }
458
- tags
459
- }
460
- }
461
- ```
462
-
463
- ### 5. Delete an Actor
464
-
465
- ```graphql
466
- mutation {
467
- deleteActor(name: "Cube_001")
468
- }
469
- ```
470
-
471
- ### 6. Set Actor Transform
472
-
473
- ```graphql
474
- mutation {
475
- setActorTransform(
476
- name: "SpotLight_Main"
477
- transform: {
478
- location: { x: 500, y: 300, z: 200 }
479
- rotation: { pitch: 45, yaw: 90, roll: 0 }
480
- scale: { x: 1, y: 1, z: 1 }
481
- }
482
- ) {
483
- name
484
- location {
485
- x
486
- y
487
- z
488
- }
489
- rotation {
490
- pitch
491
- yaw
492
- roll
493
- }
494
- }
495
- }
496
- ```
497
-
498
- ### 7. Create a Blueprint
499
-
500
- ```graphql
501
- mutation {
502
- createBlueprint(input: {
503
- name: "BP_NewCharacter"
504
- blueprintType: "Actor"
505
- savePath: "/Game/Blueprints"
506
- }) {
507
- name
508
- path
509
- parentClass
510
- }
511
- }
512
- ```
513
-
514
- ### 8. Add Variable to Blueprint
515
-
516
- ```graphql
517
- mutation {
518
- addVariableToBlueprint(
519
- path: "/Game/Blueprints/BP_NewCharacter"
520
- input: {
521
- variableName: "Health"
522
- variableType: "Float"
523
- defaultValue: 100
524
- }
525
- ) {
526
- name
527
- variables {
528
- name
529
- type
530
- defaultValue
531
- }
532
- }
533
- }
534
- ```
535
-
536
- ### 9. Add Function to Blueprint
537
-
538
- ```graphql
539
- mutation {
540
- addFunctionToBlueprint(
541
- path: "/Game/Blueprints/BP_NewCharacter"
542
- input: {
543
- functionName: "TakeDamage"
544
- inputs: [
545
- { name: "Damage", type: "Float" }
546
- { name: "Source", type: "String" }
547
- ]
548
- }
549
- ) {
550
- name
551
- functions {
552
- name
553
- inputs {
554
- name
555
- type
556
- }
557
- }
558
- }
559
- }
560
- ```
561
-
562
- ### 10. Load a Level
563
-
564
- ```graphql
565
- mutation {
566
- loadLevel(path: "/Game/Maps/Level_01") {
567
- name
568
- path
569
- loaded
570
- actorCount
571
- }
572
- }
573
- ```
574
-
575
- ### 11. Save Current Level
576
-
577
- ```graphql
578
- mutation {
579
- saveLevel(path: "/Game/Maps/Level_01")
580
- }
581
- ```
582
-
583
- ### 12. Create Material Instance
584
-
585
- ```graphql
586
- mutation {
587
- createMaterialInstance(
588
- parentPath: "/Game/Materials/M_Master"
589
- name: "MI_Player"
590
- parameters: {
591
- BaseColor: { x: 1, y: 0, z: 0 }
592
- Metallic: 0.5
593
- }
594
- ) {
595
- name
596
- path
597
- class
598
- }
599
- }
600
- ```
601
-
602
- ## Fragment Examples
603
-
604
- Fragments allow you to reuse field selections:
605
-
606
- ```graphql
607
- fragment AssetInfo on Asset {
608
- name
609
- path
610
- class
611
- packagePath
612
- }
613
-
614
- query {
615
- assets(filter: { class: "Material" }) {
616
- edges {
617
- node {
618
- ...AssetInfo
619
- dependencies {
620
- ...AssetInfo
621
- }
622
- }
623
- }
624
- }
625
- }
626
- ```
627
-
628
- ## Variable Examples
629
-
630
- Use variables for dynamic queries:
631
-
632
- ```graphql
633
- query GetAsset($path: String!, $withDependencies: Boolean!) {
634
- asset(path: $path) {
635
- ...AssetInfo
636
- dependencies @include(if: $withDependencies) {
637
- ...AssetInfo
638
- }
639
- }
640
- }
641
-
642
- fragment AssetInfo on Asset {
643
- name
644
- path
645
- class
646
- }
647
- ```
648
-
649
- With these variables:
650
- ```json
651
- {
652
- "path": "/Game/Materials/M_Master",
653
- "withDependencies": true
654
- }
655
- ```
656
-
657
- ## Alias Examples
658
-
659
- Use aliases to rename fields in results:
660
-
661
- ```graphql
662
- query {
663
- materials: assets(filter: { class: "Material" }) {
664
- edges {
665
- node {
666
- materialName: name
667
- materialPath: path
668
- class
669
- }
670
- }
671
- }
672
- }
673
- ```
674
-
675
- ## Introspection Query
676
-
677
- Get the complete schema:
678
-
679
- ```graphql
680
- query {
681
- __schema {
682
- types {
683
- name
684
- kind
685
- fields {
686
- name
687
- type {
688
- name
689
- kind
690
- }
691
- }
692
- }
693
- }
694
- }
695
- ```
696
-
697
- ## Best Practices
698
-
699
- ### 1. Use Specific Field Selection
700
- Always specify only the fields you need:
701
-
702
- ```graphql
703
- # Good
704
- query {
705
- assets {
706
- edges {
707
- node {
708
- name
709
- path
710
- }
711
- }
712
- }
713
- }
714
-
715
- # Bad (over-fetching)
716
- query {
717
- assets {
718
- edges {
719
- node {
720
- _ # Get everything
721
- }
722
- }
723
- }
724
- }
725
- ```
726
-
727
- ### 2. Use Fragments for Reuse
728
- Create fragments for commonly used field sets:
729
-
730
- ```graphql
731
- fragment ActorBasicInfo on Actor {
732
- name
733
- class
734
- location {
735
- x
736
- y
737
- z
738
- }
739
- }
740
- ```
741
-
742
- ### 3. Use Pagination for Large Datasets
743
- Always use pagination for queries that might return many results:
744
-
745
- ```graphql
746
- query {
747
- assets(pagination: { offset: 0, limit: 50 }) {
748
- edges {
749
- node {
750
- name
751
- path
752
- }
753
- }
754
- pageInfo {
755
- hasNextPage
756
- hasPreviousPage
757
- }
758
- }
759
- }
760
- ```
761
-
762
- ### 4. Use Filtering
763
- Filter results on the server side to reduce data transfer:
764
-
765
- ```graphql
766
- query {
767
- actors(filter: { class: "StaticMeshActor", tag: "Static" }) {
768
- edges {
769
- node {
770
- name
771
- class
772
- }
773
- }
774
- }
775
- }
776
- ```
777
-
778
- ### 5. Use Mutations for Modifications
779
- Use mutations instead of queries for operations that modify data:
780
-
781
- ```graphql
782
- mutation {
783
- spawnActor(input: { ... }) {
784
- name
785
- location {
786
- x
787
- y
788
- z
789
- }
790
- }
791
- }
792
- ```
793
-
794
- ## Limitations
795
-
796
- 1. **Unreal Connection Required**: GraphQL resolvers require an active connection to Unreal Editor
797
- 2. **Plugin Support**: Some queries require specific Unreal plugins to be enabled
798
- 3. **Performance**: Complex nested queries may be slower than focused MCP tool calls
799
- 4. **Not a Replacement**: GraphQL complements but doesn't replace the MCP tool system
800
-
801
- ## Troubleshooting
802
-
803
- ### GraphQL Server Not Starting
804
-
805
- Check logs for errors:
806
- ```bash
807
- # Check if port is already in use
808
- netstat -an | grep 4000
809
-
810
- # Verify environment variables
811
- echo $GRAPHQL_ENABLED
812
- echo $GRAPHQL_PORT
813
- ```
814
-
815
- ### Queries Timing Out
816
-
817
- Increase timeout in your GraphQL client, or break complex queries into smaller parts.
818
-
819
- ### Authentication
820
-
821
- Currently, GraphQL API has no authentication. Access is restricted to localhost by default. For production, consider:
822
- - Running behind a reverse proxy with authentication
823
- - Implementing API keys
824
- - Using VPN or firewall rules
825
-
826
- ## Migration from MCP Tools
827
-
828
- ### MCP Tool → GraphQL Equivalent
829
-
830
- | MCP Tool | GraphQL Query | Notes |
831
- |----------|---------------|-------|
832
- | `manage_asset` (list) | `assets` query | Use filter and pagination |
833
- | `manage_asset` (create) | `createMaterialInstance` mutation | Asset creation varies |
834
- | `control_actor` (spawn) | `spawnActor` mutation | Transform input format |
835
- | `control_actor` (delete) | `deleteActor` mutation | Simpler API |
836
- | `manage_blueprint` (get) | `blueprint` query | More detailed response |
837
- | `manage_level` (load) | `loadLevel` mutation | Direct mapping |
838
-
839
- ### Example Migration
840
-
841
- **Before (MCP Tool):**
842
- ```json
843
- {
844
- "tool": "manage_asset",
845
- "arguments": {
846
- "action": "list",
847
- "directory": "/Game"
848
- }
849
- }
850
- ```
851
-
852
- **After (GraphQL):**
853
- ```graphql
854
- query {
855
- assets(filter: { pathStartsWith: "/Game" }, pagination: { limit: 100 }) {
856
- edges {
857
- node {
858
- name
859
- path
860
- class
861
- }
862
- }
863
- totalCount
864
- }
865
- }
866
- ```
867
-
868
- ## Additional Resources
869
-
870
- ### GraphQL Clients
871
- - [GraphiQL](https://github.com/graphql/graphiql) - In-browser GraphQL IDE
872
- - [Apollo Studio](https://studio.apollographql.com) - Powerful visual editor
873
- - [Insomnia](https://insomnia.rest/) - REST client with GraphQL support
874
- - [Postman](https://www.postman.com/) - API platform with GraphQL support
875
-
876
- ### Learning Resources
877
- - [Introduction to GraphQL](https://graphql.org/learn/)
878
- - [Queries and Mutations](https://graphql.org/learn/queries/)
879
- - [Apollo Client React](https://www.apollographql.com/docs/react/)
880
- - [GraphQL Best Practices](https://graphql.org/learn/best-practices/)
881
-
882
- ## Next Steps
883
-
884
- 1. Start the MCP server with `GRAPHQL_ENABLED=true`
885
- 2. Use a GraphQL client (GraphiQL, Apollo Studio, Insomnia, or Postman) to explore the schema
886
- 3. Try the query examples above
887
- 4. Build your own queries tailored to your needs
888
- 5. Consider using fragments and variables for complex workflows