unreal-engine-mcp-server 0.5.4 → 0.5.5

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 (468) hide show
  1. package/dist/automation/bridge.d.ts.map +1 -0
  2. package/dist/automation/bridge.js.map +1 -0
  3. package/dist/automation/connection-manager.d.ts.map +1 -0
  4. package/dist/automation/connection-manager.js.map +1 -0
  5. package/dist/automation/handshake.d.ts.map +1 -0
  6. package/dist/automation/handshake.js.map +1 -0
  7. package/dist/automation/index.d.ts.map +1 -0
  8. package/dist/automation/index.js.map +1 -0
  9. package/dist/automation/message-handler.d.ts.map +1 -0
  10. package/dist/automation/message-handler.js.map +1 -0
  11. package/dist/automation/request-tracker.d.ts.map +1 -0
  12. package/dist/automation/request-tracker.js.map +1 -0
  13. package/dist/automation/types.d.ts.map +1 -0
  14. package/dist/automation/types.js.map +1 -0
  15. package/dist/cli.d.ts.map +1 -0
  16. package/dist/cli.js +4 -3
  17. package/dist/cli.js.map +1 -0
  18. package/dist/config/class-aliases.d.ts.map +1 -0
  19. package/dist/config/class-aliases.js.map +1 -0
  20. package/dist/config.d.ts.map +1 -0
  21. package/dist/config.js.map +1 -0
  22. package/dist/constants.d.ts.map +1 -0
  23. package/dist/constants.js.map +1 -0
  24. package/dist/graphql/loaders.d.ts.map +1 -0
  25. package/dist/graphql/loaders.js.map +1 -0
  26. package/dist/graphql/resolvers.d.ts.map +1 -0
  27. package/dist/graphql/resolvers.js +29 -29
  28. package/dist/graphql/resolvers.js.map +1 -0
  29. package/dist/graphql/schema.d.ts.map +1 -0
  30. package/dist/graphql/schema.js.map +1 -0
  31. package/dist/graphql/server.d.ts.map +1 -0
  32. package/dist/graphql/server.js.map +1 -0
  33. package/dist/graphql/types.d.ts.map +1 -0
  34. package/dist/graphql/types.js.map +1 -0
  35. package/dist/handlers/resource-handlers.d.ts.map +1 -0
  36. package/dist/handlers/resource-handlers.js.map +1 -0
  37. package/dist/index.d.ts +1 -0
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +64 -7
  40. package/dist/index.js.map +1 -0
  41. package/dist/resources/actors.d.ts.map +1 -0
  42. package/dist/resources/actors.js.map +1 -0
  43. package/dist/resources/assets.d.ts.map +1 -0
  44. package/dist/resources/assets.js +6 -4
  45. package/dist/resources/assets.js.map +1 -0
  46. package/dist/resources/levels.d.ts.map +1 -0
  47. package/dist/resources/levels.js.map +1 -0
  48. package/dist/server/resource-registry.d.ts.map +1 -0
  49. package/dist/server/resource-registry.js.map +1 -0
  50. package/dist/server/tool-registry.d.ts.map +1 -0
  51. package/dist/server/tool-registry.js.map +1 -0
  52. package/dist/server-setup.d.ts.map +1 -0
  53. package/dist/server-setup.js.map +1 -0
  54. package/dist/services/health-monitor.d.ts.map +1 -0
  55. package/dist/services/health-monitor.js.map +1 -0
  56. package/dist/services/metrics-server.d.ts.map +1 -0
  57. package/dist/services/metrics-server.js.map +1 -0
  58. package/dist/tools/actors.d.ts.map +1 -0
  59. package/dist/tools/actors.js +3 -1
  60. package/dist/tools/actors.js.map +1 -0
  61. package/dist/tools/animation.d.ts.map +1 -0
  62. package/dist/tools/animation.js +2 -2
  63. package/dist/tools/animation.js.map +1 -0
  64. package/dist/tools/assets.d.ts.map +1 -0
  65. package/dist/tools/assets.js.map +1 -0
  66. package/dist/tools/audio.d.ts.map +1 -0
  67. package/dist/tools/audio.js.map +1 -0
  68. package/dist/tools/base-tool.d.ts.map +1 -0
  69. package/dist/tools/base-tool.js.map +1 -0
  70. package/dist/tools/behavior-tree.d.ts.map +1 -0
  71. package/dist/tools/behavior-tree.js.map +1 -0
  72. package/dist/tools/blueprint.d.ts.map +1 -0
  73. package/dist/tools/blueprint.js +4 -2
  74. package/dist/tools/blueprint.js.map +1 -0
  75. package/dist/tools/consolidated-tool-definitions.d.ts.map +1 -0
  76. package/dist/tools/consolidated-tool-definitions.js.map +1 -0
  77. package/dist/tools/consolidated-tool-handlers.d.ts.map +1 -0
  78. package/dist/tools/consolidated-tool-handlers.js.map +1 -0
  79. package/dist/tools/debug.d.ts.map +1 -0
  80. package/dist/tools/debug.js +3 -1
  81. package/dist/tools/debug.js.map +1 -0
  82. package/dist/tools/dynamic-handler-registry.d.ts.map +1 -0
  83. package/dist/tools/dynamic-handler-registry.js +3 -1
  84. package/dist/tools/dynamic-handler-registry.js.map +1 -0
  85. package/dist/tools/editor.d.ts.map +1 -0
  86. package/dist/tools/editor.js +1 -1
  87. package/dist/tools/editor.js.map +1 -0
  88. package/dist/tools/engine.d.ts.map +1 -0
  89. package/dist/tools/engine.js.map +1 -0
  90. package/dist/tools/environment.d.ts.map +1 -0
  91. package/dist/tools/environment.js +2 -2
  92. package/dist/tools/environment.js.map +1 -0
  93. package/dist/tools/foliage.d.ts.map +1 -0
  94. package/dist/tools/foliage.js.map +1 -0
  95. package/dist/tools/handlers/actor-handlers.d.ts +1 -1
  96. package/dist/tools/handlers/actor-handlers.d.ts.map +1 -0
  97. package/dist/tools/handlers/actor-handlers.js +6 -5
  98. package/dist/tools/handlers/actor-handlers.js.map +1 -0
  99. package/dist/tools/handlers/animation-handlers.d.ts.map +1 -0
  100. package/dist/tools/handlers/animation-handlers.js.map +1 -0
  101. package/dist/tools/handlers/argument-helper.d.ts.map +1 -0
  102. package/dist/tools/handlers/argument-helper.js.map +1 -0
  103. package/dist/tools/handlers/asset-handlers.d.ts.map +1 -0
  104. package/dist/tools/handlers/asset-handlers.js +5 -1
  105. package/dist/tools/handlers/asset-handlers.js.map +1 -0
  106. package/dist/tools/handlers/audio-handlers.d.ts.map +1 -0
  107. package/dist/tools/handlers/audio-handlers.js.map +1 -0
  108. package/dist/tools/handlers/blueprint-handlers.d.ts.map +1 -0
  109. package/dist/tools/handlers/blueprint-handlers.js +2 -1
  110. package/dist/tools/handlers/blueprint-handlers.js.map +1 -0
  111. package/dist/tools/handlers/common-handlers.d.ts.map +1 -0
  112. package/dist/tools/handlers/common-handlers.js.map +1 -0
  113. package/dist/tools/handlers/editor-handlers.d.ts.map +1 -0
  114. package/dist/tools/handlers/editor-handlers.js +12 -2
  115. package/dist/tools/handlers/editor-handlers.js.map +1 -0
  116. package/dist/tools/handlers/effect-handlers.d.ts.map +1 -0
  117. package/dist/tools/handlers/effect-handlers.js.map +1 -0
  118. package/dist/tools/handlers/environment-handlers.d.ts.map +1 -0
  119. package/dist/tools/handlers/environment-handlers.js.map +1 -0
  120. package/dist/tools/handlers/graph-handlers.d.ts.map +1 -0
  121. package/dist/tools/handlers/graph-handlers.js +61 -1
  122. package/dist/tools/handlers/graph-handlers.js.map +1 -0
  123. package/dist/tools/handlers/input-handlers.d.ts.map +1 -0
  124. package/dist/tools/handlers/input-handlers.js.map +1 -0
  125. package/dist/tools/handlers/inspect-handlers.d.ts.map +1 -0
  126. package/dist/tools/handlers/inspect-handlers.js.map +1 -0
  127. package/dist/tools/handlers/level-handlers.d.ts.map +1 -0
  128. package/dist/tools/handlers/level-handlers.js.map +1 -0
  129. package/dist/tools/handlers/lighting-handlers.d.ts.map +1 -0
  130. package/dist/tools/handlers/lighting-handlers.js +23 -1
  131. package/dist/tools/handlers/lighting-handlers.js.map +1 -0
  132. package/dist/tools/handlers/performance-handlers.d.ts.map +1 -0
  133. package/dist/tools/handlers/performance-handlers.js +15 -2
  134. package/dist/tools/handlers/performance-handlers.js.map +1 -0
  135. package/dist/tools/handlers/pipeline-handlers.d.ts.map +1 -0
  136. package/dist/tools/handlers/pipeline-handlers.js.map +1 -0
  137. package/dist/tools/handlers/sequence-handlers.d.ts.map +1 -0
  138. package/dist/tools/handlers/sequence-handlers.js.map +1 -0
  139. package/dist/tools/handlers/system-handlers.d.ts.map +1 -0
  140. package/dist/tools/handlers/system-handlers.js +16 -1
  141. package/dist/tools/handlers/system-handlers.js.map +1 -0
  142. package/dist/tools/input.d.ts.map +1 -0
  143. package/dist/tools/input.js +3 -1
  144. package/dist/tools/input.js.map +1 -0
  145. package/dist/tools/introspection.d.ts.map +1 -0
  146. package/dist/tools/introspection.js.map +1 -0
  147. package/dist/tools/landscape.d.ts.map +1 -0
  148. package/dist/tools/landscape.js +3 -1
  149. package/dist/tools/landscape.js.map +1 -0
  150. package/dist/tools/level.d.ts.map +1 -0
  151. package/dist/tools/level.js.map +1 -0
  152. package/dist/tools/lighting.d.ts.map +1 -0
  153. package/dist/tools/lighting.js +3 -1
  154. package/dist/tools/lighting.js.map +1 -0
  155. package/dist/tools/logs.d.ts.map +1 -0
  156. package/dist/tools/logs.js.map +1 -0
  157. package/dist/tools/materials.d.ts.map +1 -0
  158. package/dist/tools/materials.js +3 -1
  159. package/dist/tools/materials.js.map +1 -0
  160. package/dist/tools/niagara.d.ts.map +1 -0
  161. package/dist/tools/niagara.js +7 -5
  162. package/dist/tools/niagara.js.map +1 -0
  163. package/dist/tools/performance.d.ts.map +1 -0
  164. package/dist/tools/performance.js.map +1 -0
  165. package/dist/tools/physics.d.ts.map +1 -0
  166. package/dist/tools/physics.js +9 -7
  167. package/dist/tools/physics.js.map +1 -0
  168. package/dist/tools/property-dictionary.d.ts.map +1 -0
  169. package/dist/tools/property-dictionary.js.map +1 -0
  170. package/dist/tools/sequence.d.ts.map +1 -0
  171. package/dist/tools/sequence.js +3 -1
  172. package/dist/tools/sequence.js.map +1 -0
  173. package/dist/tools/tool-definition-utils.d.ts.map +1 -0
  174. package/dist/tools/tool-definition-utils.js.map +1 -0
  175. package/dist/tools/ui.d.ts.map +1 -0
  176. package/dist/tools/ui.js +3 -1
  177. package/dist/tools/ui.js.map +1 -0
  178. package/dist/types/automation-responses.d.ts.map +1 -0
  179. package/dist/types/automation-responses.js.map +1 -0
  180. package/dist/types/env.d.ts.map +1 -0
  181. package/dist/types/env.js.map +1 -0
  182. package/dist/types/handler-types.d.ts.map +1 -0
  183. package/dist/types/handler-types.js.map +1 -0
  184. package/dist/types/tool-interfaces.d.ts.map +1 -0
  185. package/dist/types/tool-interfaces.js.map +1 -0
  186. package/dist/types/tool-types.d.ts.map +1 -0
  187. package/dist/types/tool-types.js.map +1 -0
  188. package/dist/unreal-bridge.d.ts +1 -0
  189. package/dist/unreal-bridge.d.ts.map +1 -0
  190. package/dist/unreal-bridge.js +8 -0
  191. package/dist/unreal-bridge.js.map +1 -0
  192. package/dist/utils/command-validator.d.ts.map +1 -0
  193. package/dist/utils/command-validator.js.map +1 -0
  194. package/dist/utils/elicitation.d.ts.map +1 -0
  195. package/dist/utils/elicitation.js.map +1 -0
  196. package/dist/utils/error-handler.d.ts.map +1 -0
  197. package/dist/utils/error-handler.js.map +1 -0
  198. package/dist/utils/ini-reader.d.ts.map +1 -0
  199. package/dist/utils/ini-reader.js.map +1 -0
  200. package/dist/utils/logger.d.ts.map +1 -0
  201. package/dist/utils/logger.js.map +1 -0
  202. package/dist/utils/normalize.d.ts.map +1 -0
  203. package/dist/utils/normalize.js.map +1 -0
  204. package/dist/utils/path-security.d.ts.map +1 -0
  205. package/dist/utils/path-security.js.map +1 -0
  206. package/dist/utils/response-factory.d.ts.map +1 -0
  207. package/dist/utils/response-factory.js +3 -1
  208. package/dist/utils/response-factory.js.map +1 -0
  209. package/dist/utils/response-validator.d.ts.map +1 -0
  210. package/dist/utils/response-validator.js.map +1 -0
  211. package/dist/utils/result-helpers.d.ts.map +1 -0
  212. package/dist/utils/result-helpers.js.map +1 -0
  213. package/dist/utils/safe-json.d.ts.map +1 -0
  214. package/dist/utils/safe-json.js.map +1 -0
  215. package/dist/utils/unreal-command-queue.d.ts.map +1 -0
  216. package/dist/utils/unreal-command-queue.js.map +1 -0
  217. package/dist/utils/validation.d.ts.map +1 -0
  218. package/dist/utils/validation.js.map +1 -0
  219. package/dist/wasm/index.d.ts.map +1 -0
  220. package/dist/wasm/index.js.map +1 -0
  221. package/package.json +12 -34
  222. package/server.json +2 -2
  223. package/.dockerignore +0 -57
  224. package/.env.example +0 -26
  225. package/.env.production +0 -61
  226. package/.eslintrc.json +0 -0
  227. package/.eslintrc.override.json +0 -8
  228. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -94
  229. package/.github/ISSUE_TEMPLATE/config.yml +0 -8
  230. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -56
  231. package/.github/copilot-instructions.md +0 -478
  232. package/.github/dependabot.yml +0 -19
  233. package/.github/labeler.yml +0 -24
  234. package/.github/labels.yml +0 -70
  235. package/.github/pull_request_template.md +0 -42
  236. package/.github/release-drafter-config.yml +0 -51
  237. package/.github/workflows/auto-merge.yml +0 -38
  238. package/.github/workflows/ci.yml +0 -38
  239. package/.github/workflows/dependency-review.yml +0 -17
  240. package/.github/workflows/gemini-issue-triage.yml +0 -172
  241. package/.github/workflows/greetings.yml +0 -27
  242. package/.github/workflows/labeler.yml +0 -17
  243. package/.github/workflows/links.yml +0 -80
  244. package/.github/workflows/pr-size-labeler.yml +0 -137
  245. package/.github/workflows/publish-mcp.yml +0 -79
  246. package/.github/workflows/release-drafter.yml +0 -24
  247. package/.github/workflows/release.yml +0 -112
  248. package/.github/workflows/semantic-pull-request.yml +0 -35
  249. package/.github/workflows/smoke-test.yml +0 -36
  250. package/.github/workflows/stale.yml +0 -28
  251. package/CONTRIBUTING.md +0 -140
  252. package/Dockerfile +0 -37
  253. package/GEMINI.md +0 -115
  254. package/Public/Plugin_setup_guide.mp4 +0 -0
  255. package/Public/icon.png +0 -0
  256. package/claude_desktop_config_example.json +0 -15
  257. package/dist/types/responses.d.ts +0 -249
  258. package/dist/types/responses.js +0 -2
  259. package/docs/GraphQL-API.md +0 -888
  260. package/docs/Migration-Guide-v0.5.0.md +0 -684
  261. package/docs/Roadmap.md +0 -53
  262. package/docs/WebAssembly-Integration.md +0 -628
  263. package/docs/editor-plugin-extension.md +0 -370
  264. package/docs/handler-mapping.md +0 -249
  265. package/docs/native-automation-progress.md +0 -128
  266. package/docs/testing-guide.md +0 -423
  267. package/eslint.config.mjs +0 -68
  268. package/mcp-config-example.json +0 -14
  269. package/plugins/McpAutomationBridge/Config/FilterPlugin.ini +0 -8
  270. package/plugins/McpAutomationBridge/McpAutomationBridge.uplugin +0 -64
  271. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/McpAutomationBridge.Build.cs +0 -189
  272. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeGlobals.cpp +0 -22
  273. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeGlobals.h +0 -30
  274. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeHelpers.h +0 -1983
  275. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeModule.cpp +0 -72
  276. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeSettings.cpp +0 -46
  277. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeSubsystem.cpp +0 -846
  278. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AnimationHandlers.cpp +0 -2393
  279. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AssetQueryHandlers.cpp +0 -300
  280. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AssetWorkflowHandlers.cpp +0 -2807
  281. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AudioHandlers.cpp +0 -1087
  282. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BehaviorTreeHandlers.cpp +0 -488
  283. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintCreationHandlers.cpp +0 -643
  284. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintCreationHandlers.h +0 -31
  285. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintGraphHandlers.cpp +0 -1094
  286. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintHandlers.cpp +0 -5750
  287. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintHandlers_List.cpp +0 -152
  288. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_ControlHandlers.cpp +0 -2614
  289. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_DebugHandlers.cpp +0 -42
  290. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EditorFunctionHandlers.cpp +0 -1237
  291. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EffectHandlers.cpp +0 -1725
  292. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EnvironmentHandlers.cpp +0 -2265
  293. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_FoliageHandlers.cpp +0 -954
  294. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_InputHandlers.cpp +0 -209
  295. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_InsightsHandlers.cpp +0 -41
  296. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LandscapeHandlers.cpp +0 -1164
  297. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LevelHandlers.cpp +0 -762
  298. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LightingHandlers.cpp +0 -663
  299. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LogHandlers.cpp +0 -136
  300. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_MaterialGraphHandlers.cpp +0 -494
  301. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_NiagaraGraphHandlers.cpp +0 -278
  302. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_NiagaraHandlers.cpp +0 -625
  303. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PerformanceHandlers.cpp +0 -401
  304. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PipelineHandlers.cpp +0 -67
  305. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_ProcessRequest.cpp +0 -472
  306. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PropertyHandlers.cpp +0 -2634
  307. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_RenderHandlers.cpp +0 -189
  308. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SCSHandlers.cpp +0 -917
  309. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SCSHandlers.h +0 -39
  310. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SequenceHandlers.cpp +0 -2706
  311. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SequencerHandlers.cpp +0 -519
  312. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_TestHandlers.cpp +0 -38
  313. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_UiHandlers.cpp +0 -668
  314. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_WorldPartitionHandlers.cpp +0 -346
  315. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpBridgeWebSocket.cpp +0 -1345
  316. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpBridgeWebSocket.h +0 -149
  317. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpConnectionManager.cpp +0 -782
  318. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpAutomationBridgeSettings.h +0 -115
  319. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpAutomationBridgeSubsystem.h +0 -796
  320. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpConnectionManager.h +0 -117
  321. package/scripts/check-unreal-connection.mjs +0 -19
  322. package/scripts/clean-tmp.js +0 -23
  323. package/scripts/patch-wasm.js +0 -26
  324. package/scripts/run-all-tests.mjs +0 -136
  325. package/scripts/smoke-test.ts +0 -94
  326. package/scripts/sync-mcp-plugin.js +0 -143
  327. package/scripts/test-no-plugin-alternates.mjs +0 -113
  328. package/scripts/validate-server.js +0 -46
  329. package/scripts/verify-automation-bridge.js +0 -200
  330. package/src/automation/bridge.ts +0 -630
  331. package/src/automation/connection-manager.ts +0 -148
  332. package/src/automation/handshake.ts +0 -99
  333. package/src/automation/index.ts +0 -2
  334. package/src/automation/message-handler.ts +0 -192
  335. package/src/automation/request-tracker.ts +0 -155
  336. package/src/automation/types.ts +0 -108
  337. package/src/cli.ts +0 -34
  338. package/src/config/class-aliases.ts +0 -65
  339. package/src/config.ts +0 -73
  340. package/src/constants.ts +0 -29
  341. package/src/graphql/loaders.ts +0 -244
  342. package/src/graphql/resolvers.ts +0 -1008
  343. package/src/graphql/schema.ts +0 -452
  344. package/src/graphql/server.ts +0 -156
  345. package/src/graphql/types.ts +0 -10
  346. package/src/handlers/resource-handlers.ts +0 -186
  347. package/src/index.ts +0 -243
  348. package/src/resources/actors.ts +0 -127
  349. package/src/resources/assets.ts +0 -286
  350. package/src/resources/levels.ts +0 -68
  351. package/src/server/resource-registry.ts +0 -47
  352. package/src/server/tool-registry.ts +0 -354
  353. package/src/server-setup.ts +0 -114
  354. package/src/services/health-monitor.ts +0 -132
  355. package/src/services/metrics-server.ts +0 -176
  356. package/src/tools/actors.ts +0 -564
  357. package/src/tools/animation.ts +0 -941
  358. package/src/tools/assets.ts +0 -394
  359. package/src/tools/audio.ts +0 -499
  360. package/src/tools/base-tool.ts +0 -52
  361. package/src/tools/behavior-tree.ts +0 -45
  362. package/src/tools/blueprint.ts +0 -940
  363. package/src/tools/consolidated-tool-definitions.ts +0 -1256
  364. package/src/tools/consolidated-tool-handlers.ts +0 -302
  365. package/src/tools/debug.ts +0 -622
  366. package/src/tools/dynamic-handler-registry.ts +0 -33
  367. package/src/tools/editor.ts +0 -435
  368. package/src/tools/engine.ts +0 -43
  369. package/src/tools/environment.ts +0 -281
  370. package/src/tools/foliage.ts +0 -596
  371. package/src/tools/handlers/actor-handlers.ts +0 -244
  372. package/src/tools/handlers/animation-handlers.ts +0 -237
  373. package/src/tools/handlers/argument-helper.ts +0 -142
  374. package/src/tools/handlers/asset-handlers.ts +0 -550
  375. package/src/tools/handlers/audio-handlers.ts +0 -194
  376. package/src/tools/handlers/blueprint-handlers.ts +0 -380
  377. package/src/tools/handlers/common-handlers.ts +0 -108
  378. package/src/tools/handlers/editor-handlers.ts +0 -124
  379. package/src/tools/handlers/effect-handlers.ts +0 -224
  380. package/src/tools/handlers/environment-handlers.ts +0 -183
  381. package/src/tools/handlers/graph-handlers.ts +0 -117
  382. package/src/tools/handlers/input-handlers.ts +0 -28
  383. package/src/tools/handlers/inspect-handlers.ts +0 -450
  384. package/src/tools/handlers/level-handlers.ts +0 -253
  385. package/src/tools/handlers/lighting-handlers.ts +0 -151
  386. package/src/tools/handlers/performance-handlers.ts +0 -132
  387. package/src/tools/handlers/pipeline-handlers.ts +0 -194
  388. package/src/tools/handlers/sequence-handlers.ts +0 -438
  389. package/src/tools/handlers/system-handlers.ts +0 -564
  390. package/src/tools/input.ts +0 -160
  391. package/src/tools/introspection.ts +0 -689
  392. package/src/tools/landscape.ts +0 -649
  393. package/src/tools/level.ts +0 -989
  394. package/src/tools/lighting.ts +0 -1052
  395. package/src/tools/logs.ts +0 -219
  396. package/src/tools/materials.ts +0 -295
  397. package/src/tools/niagara.ts +0 -485
  398. package/src/tools/performance.ts +0 -661
  399. package/src/tools/physics.ts +0 -679
  400. package/src/tools/property-dictionary.ts +0 -98
  401. package/src/tools/sequence.ts +0 -385
  402. package/src/tools/tool-definition-utils.ts +0 -35
  403. package/src/tools/ui.ts +0 -452
  404. package/src/types/automation-responses.ts +0 -119
  405. package/src/types/env.ts +0 -17
  406. package/src/types/handler-types.ts +0 -442
  407. package/src/types/responses.ts +0 -355
  408. package/src/types/tool-interfaces.ts +0 -250
  409. package/src/types/tool-types.ts +0 -575
  410. package/src/unreal-bridge.ts +0 -693
  411. package/src/utils/command-validator.ts +0 -139
  412. package/src/utils/elicitation.ts +0 -132
  413. package/src/utils/error-handler.ts +0 -287
  414. package/src/utils/ini-reader.ts +0 -86
  415. package/src/utils/logger.ts +0 -35
  416. package/src/utils/normalize.test.ts +0 -162
  417. package/src/utils/normalize.ts +0 -146
  418. package/src/utils/path-security.ts +0 -43
  419. package/src/utils/response-factory.ts +0 -44
  420. package/src/utils/response-validator.ts +0 -395
  421. package/src/utils/result-helpers.ts +0 -195
  422. package/src/utils/safe-json.test.ts +0 -90
  423. package/src/utils/safe-json.ts +0 -70
  424. package/src/utils/unreal-command-queue.ts +0 -166
  425. package/src/utils/validation.test.ts +0 -184
  426. package/src/utils/validation.ts +0 -312
  427. package/src/wasm/index.ts +0 -838
  428. package/test-server.mjs +0 -100
  429. package/tests/test-animation.mjs +0 -369
  430. package/tests/test-asset-advanced.mjs +0 -82
  431. package/tests/test-asset-graph.mjs +0 -311
  432. package/tests/test-audio.mjs +0 -417
  433. package/tests/test-automation-timeouts.mjs +0 -98
  434. package/tests/test-behavior-tree.mjs +0 -444
  435. package/tests/test-blueprint-graph.mjs +0 -410
  436. package/tests/test-blueprint.mjs +0 -577
  437. package/tests/test-client-mode.mjs +0 -86
  438. package/tests/test-console-command.mjs +0 -56
  439. package/tests/test-control-actor.mjs +0 -425
  440. package/tests/test-control-editor.mjs +0 -112
  441. package/tests/test-graphql.mjs +0 -372
  442. package/tests/test-input.mjs +0 -349
  443. package/tests/test-inspect.mjs +0 -302
  444. package/tests/test-landscape.mjs +0 -316
  445. package/tests/test-lighting.mjs +0 -428
  446. package/tests/test-manage-asset.mjs +0 -438
  447. package/tests/test-manage-level.mjs +0 -89
  448. package/tests/test-materials.mjs +0 -356
  449. package/tests/test-niagara.mjs +0 -185
  450. package/tests/test-no-inline-python.mjs +0 -122
  451. package/tests/test-performance.mjs +0 -539
  452. package/tests/test-plugin-handshake.mjs +0 -82
  453. package/tests/test-runner.mjs +0 -993
  454. package/tests/test-sequence.mjs +0 -104
  455. package/tests/test-system.mjs +0 -96
  456. package/tests/test-wasm.mjs +0 -283
  457. package/tests/test-world-partition.mjs +0 -215
  458. package/tsconfig.json +0 -56
  459. package/vitest.config.ts +0 -35
  460. package/wasm/Cargo.lock +0 -363
  461. package/wasm/Cargo.toml +0 -42
  462. package/wasm/LICENSE +0 -21
  463. package/wasm/README.md +0 -253
  464. package/wasm/src/dependency_resolver.rs +0 -377
  465. package/wasm/src/lib.rs +0 -153
  466. package/wasm/src/property_parser.rs +0 -271
  467. package/wasm/src/transform_math.rs +0 -396
  468. 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