unreal-engine-mcp-server 0.5.3 → 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 (480) hide show
  1. package/CHANGELOG.md +66 -0
  2. package/dist/automation/bridge.d.ts +1 -0
  3. package/dist/automation/bridge.d.ts.map +1 -0
  4. package/dist/automation/bridge.js +62 -4
  5. package/dist/automation/bridge.js.map +1 -0
  6. package/dist/automation/connection-manager.d.ts.map +1 -0
  7. package/dist/automation/connection-manager.js.map +1 -0
  8. package/dist/automation/handshake.d.ts.map +1 -0
  9. package/dist/automation/handshake.js.map +1 -0
  10. package/dist/automation/index.d.ts.map +1 -0
  11. package/dist/automation/index.js.map +1 -0
  12. package/dist/automation/message-handler.d.ts.map +1 -0
  13. package/dist/automation/message-handler.js.map +1 -0
  14. package/dist/automation/request-tracker.d.ts.map +1 -0
  15. package/dist/automation/request-tracker.js.map +1 -0
  16. package/dist/automation/types.d.ts +1 -0
  17. package/dist/automation/types.d.ts.map +1 -0
  18. package/dist/automation/types.js.map +1 -0
  19. package/dist/cli.d.ts.map +1 -0
  20. package/dist/cli.js +4 -3
  21. package/dist/cli.js.map +1 -0
  22. package/dist/config/class-aliases.d.ts.map +1 -0
  23. package/dist/config/class-aliases.js.map +1 -0
  24. package/dist/config.d.ts.map +1 -0
  25. package/dist/config.js.map +1 -0
  26. package/dist/constants.d.ts +2 -0
  27. package/dist/constants.d.ts.map +1 -0
  28. package/dist/constants.js +2 -0
  29. package/dist/constants.js.map +1 -0
  30. package/dist/graphql/loaders.d.ts.map +1 -0
  31. package/dist/graphql/loaders.js.map +1 -0
  32. package/dist/graphql/resolvers.d.ts.map +1 -0
  33. package/dist/graphql/resolvers.js +29 -29
  34. package/dist/graphql/resolvers.js.map +1 -0
  35. package/dist/graphql/schema.d.ts.map +1 -0
  36. package/dist/graphql/schema.js.map +1 -0
  37. package/dist/graphql/server.d.ts +0 -1
  38. package/dist/graphql/server.d.ts.map +1 -0
  39. package/dist/graphql/server.js +15 -16
  40. package/dist/graphql/server.js.map +1 -0
  41. package/dist/graphql/types.d.ts.map +1 -0
  42. package/dist/graphql/types.js.map +1 -0
  43. package/dist/handlers/resource-handlers.d.ts.map +1 -0
  44. package/dist/handlers/resource-handlers.js.map +1 -0
  45. package/dist/index.d.ts +1 -0
  46. package/dist/index.d.ts.map +1 -0
  47. package/dist/index.js +64 -7
  48. package/dist/index.js.map +1 -0
  49. package/dist/resources/actors.d.ts.map +1 -0
  50. package/dist/resources/actors.js.map +1 -0
  51. package/dist/resources/assets.d.ts.map +1 -0
  52. package/dist/resources/assets.js +6 -4
  53. package/dist/resources/assets.js.map +1 -0
  54. package/dist/resources/levels.d.ts.map +1 -0
  55. package/dist/resources/levels.js.map +1 -0
  56. package/dist/server/resource-registry.d.ts.map +1 -0
  57. package/dist/server/resource-registry.js.map +1 -0
  58. package/dist/server/tool-registry.d.ts.map +1 -0
  59. package/dist/server/tool-registry.js.map +1 -0
  60. package/dist/server-setup.d.ts.map +1 -0
  61. package/dist/server-setup.js.map +1 -0
  62. package/dist/services/health-monitor.d.ts.map +1 -0
  63. package/dist/services/health-monitor.js.map +1 -0
  64. package/dist/services/metrics-server.d.ts.map +1 -0
  65. package/dist/services/metrics-server.js +3 -3
  66. package/dist/services/metrics-server.js.map +1 -0
  67. package/dist/tools/actors.d.ts.map +1 -0
  68. package/dist/tools/actors.js +3 -1
  69. package/dist/tools/actors.js.map +1 -0
  70. package/dist/tools/animation.d.ts.map +1 -0
  71. package/dist/tools/animation.js +2 -2
  72. package/dist/tools/animation.js.map +1 -0
  73. package/dist/tools/assets.d.ts.map +1 -0
  74. package/dist/tools/assets.js.map +1 -0
  75. package/dist/tools/audio.d.ts.map +1 -0
  76. package/dist/tools/audio.js.map +1 -0
  77. package/dist/tools/base-tool.d.ts.map +1 -0
  78. package/dist/tools/base-tool.js.map +1 -0
  79. package/dist/tools/behavior-tree.d.ts.map +1 -0
  80. package/dist/tools/behavior-tree.js.map +1 -0
  81. package/dist/tools/blueprint.d.ts.map +1 -0
  82. package/dist/tools/blueprint.js +4 -2
  83. package/dist/tools/blueprint.js.map +1 -0
  84. package/dist/tools/consolidated-tool-definitions.d.ts.map +1 -0
  85. package/dist/tools/consolidated-tool-definitions.js.map +1 -0
  86. package/dist/tools/consolidated-tool-handlers.d.ts.map +1 -0
  87. package/dist/tools/consolidated-tool-handlers.js.map +1 -0
  88. package/dist/tools/debug.d.ts.map +1 -0
  89. package/dist/tools/debug.js +3 -1
  90. package/dist/tools/debug.js.map +1 -0
  91. package/dist/tools/dynamic-handler-registry.d.ts.map +1 -0
  92. package/dist/tools/dynamic-handler-registry.js +3 -1
  93. package/dist/tools/dynamic-handler-registry.js.map +1 -0
  94. package/dist/tools/editor.d.ts.map +1 -0
  95. package/dist/tools/editor.js +1 -1
  96. package/dist/tools/editor.js.map +1 -0
  97. package/dist/tools/engine.d.ts.map +1 -0
  98. package/dist/tools/engine.js.map +1 -0
  99. package/dist/tools/environment.d.ts.map +1 -0
  100. package/dist/tools/environment.js +2 -2
  101. package/dist/tools/environment.js.map +1 -0
  102. package/dist/tools/foliage.d.ts.map +1 -0
  103. package/dist/tools/foliage.js.map +1 -0
  104. package/dist/tools/handlers/actor-handlers.d.ts +1 -1
  105. package/dist/tools/handlers/actor-handlers.d.ts.map +1 -0
  106. package/dist/tools/handlers/actor-handlers.js +6 -5
  107. package/dist/tools/handlers/actor-handlers.js.map +1 -0
  108. package/dist/tools/handlers/animation-handlers.d.ts.map +1 -0
  109. package/dist/tools/handlers/animation-handlers.js.map +1 -0
  110. package/dist/tools/handlers/argument-helper.d.ts.map +1 -0
  111. package/dist/tools/handlers/argument-helper.js.map +1 -0
  112. package/dist/tools/handlers/asset-handlers.d.ts.map +1 -0
  113. package/dist/tools/handlers/asset-handlers.js +5 -1
  114. package/dist/tools/handlers/asset-handlers.js.map +1 -0
  115. package/dist/tools/handlers/audio-handlers.d.ts.map +1 -0
  116. package/dist/tools/handlers/audio-handlers.js.map +1 -0
  117. package/dist/tools/handlers/blueprint-handlers.d.ts.map +1 -0
  118. package/dist/tools/handlers/blueprint-handlers.js +2 -1
  119. package/dist/tools/handlers/blueprint-handlers.js.map +1 -0
  120. package/dist/tools/handlers/common-handlers.d.ts.map +1 -0
  121. package/dist/tools/handlers/common-handlers.js.map +1 -0
  122. package/dist/tools/handlers/editor-handlers.d.ts.map +1 -0
  123. package/dist/tools/handlers/editor-handlers.js +12 -2
  124. package/dist/tools/handlers/editor-handlers.js.map +1 -0
  125. package/dist/tools/handlers/effect-handlers.d.ts.map +1 -0
  126. package/dist/tools/handlers/effect-handlers.js.map +1 -0
  127. package/dist/tools/handlers/environment-handlers.d.ts.map +1 -0
  128. package/dist/tools/handlers/environment-handlers.js.map +1 -0
  129. package/dist/tools/handlers/graph-handlers.d.ts.map +1 -0
  130. package/dist/tools/handlers/graph-handlers.js +61 -1
  131. package/dist/tools/handlers/graph-handlers.js.map +1 -0
  132. package/dist/tools/handlers/input-handlers.d.ts.map +1 -0
  133. package/dist/tools/handlers/input-handlers.js.map +1 -0
  134. package/dist/tools/handlers/inspect-handlers.d.ts.map +1 -0
  135. package/dist/tools/handlers/inspect-handlers.js.map +1 -0
  136. package/dist/tools/handlers/level-handlers.d.ts.map +1 -0
  137. package/dist/tools/handlers/level-handlers.js.map +1 -0
  138. package/dist/tools/handlers/lighting-handlers.d.ts.map +1 -0
  139. package/dist/tools/handlers/lighting-handlers.js +23 -1
  140. package/dist/tools/handlers/lighting-handlers.js.map +1 -0
  141. package/dist/tools/handlers/performance-handlers.d.ts.map +1 -0
  142. package/dist/tools/handlers/performance-handlers.js +15 -2
  143. package/dist/tools/handlers/performance-handlers.js.map +1 -0
  144. package/dist/tools/handlers/pipeline-handlers.d.ts.map +1 -0
  145. package/dist/tools/handlers/pipeline-handlers.js +61 -7
  146. package/dist/tools/handlers/pipeline-handlers.js.map +1 -0
  147. package/dist/tools/handlers/sequence-handlers.d.ts.map +1 -0
  148. package/dist/tools/handlers/sequence-handlers.js.map +1 -0
  149. package/dist/tools/handlers/system-handlers.d.ts.map +1 -0
  150. package/dist/tools/handlers/system-handlers.js +16 -1
  151. package/dist/tools/handlers/system-handlers.js.map +1 -0
  152. package/dist/tools/input.d.ts.map +1 -0
  153. package/dist/tools/input.js +3 -1
  154. package/dist/tools/input.js.map +1 -0
  155. package/dist/tools/introspection.d.ts.map +1 -0
  156. package/dist/tools/introspection.js.map +1 -0
  157. package/dist/tools/landscape.d.ts.map +1 -0
  158. package/dist/tools/landscape.js +3 -1
  159. package/dist/tools/landscape.js.map +1 -0
  160. package/dist/tools/level.d.ts.map +1 -0
  161. package/dist/tools/level.js.map +1 -0
  162. package/dist/tools/lighting.d.ts.map +1 -0
  163. package/dist/tools/lighting.js +3 -1
  164. package/dist/tools/lighting.js.map +1 -0
  165. package/dist/tools/logs.d.ts.map +1 -0
  166. package/dist/tools/logs.js.map +1 -0
  167. package/dist/tools/materials.d.ts.map +1 -0
  168. package/dist/tools/materials.js +3 -1
  169. package/dist/tools/materials.js.map +1 -0
  170. package/dist/tools/niagara.d.ts.map +1 -0
  171. package/dist/tools/niagara.js +7 -5
  172. package/dist/tools/niagara.js.map +1 -0
  173. package/dist/tools/performance.d.ts.map +1 -0
  174. package/dist/tools/performance.js.map +1 -0
  175. package/dist/tools/physics.d.ts.map +1 -0
  176. package/dist/tools/physics.js +9 -7
  177. package/dist/tools/physics.js.map +1 -0
  178. package/dist/tools/property-dictionary.d.ts.map +1 -0
  179. package/dist/tools/property-dictionary.js.map +1 -0
  180. package/dist/tools/sequence.d.ts.map +1 -0
  181. package/dist/tools/sequence.js +3 -1
  182. package/dist/tools/sequence.js.map +1 -0
  183. package/dist/tools/tool-definition-utils.d.ts.map +1 -0
  184. package/dist/tools/tool-definition-utils.js.map +1 -0
  185. package/dist/tools/ui.d.ts.map +1 -0
  186. package/dist/tools/ui.js +3 -1
  187. package/dist/tools/ui.js.map +1 -0
  188. package/dist/types/automation-responses.d.ts.map +1 -0
  189. package/dist/types/automation-responses.js.map +1 -0
  190. package/dist/types/env.d.ts.map +1 -0
  191. package/dist/types/env.js.map +1 -0
  192. package/dist/types/handler-types.d.ts.map +1 -0
  193. package/dist/types/handler-types.js.map +1 -0
  194. package/dist/types/tool-interfaces.d.ts.map +1 -0
  195. package/dist/types/tool-interfaces.js.map +1 -0
  196. package/dist/types/tool-types.d.ts.map +1 -0
  197. package/dist/types/tool-types.js.map +1 -0
  198. package/dist/unreal-bridge.d.ts +1 -0
  199. package/dist/unreal-bridge.d.ts.map +1 -0
  200. package/dist/unreal-bridge.js +8 -0
  201. package/dist/unreal-bridge.js.map +1 -0
  202. package/dist/utils/command-validator.d.ts.map +1 -0
  203. package/dist/utils/command-validator.js.map +1 -0
  204. package/dist/utils/elicitation.d.ts.map +1 -0
  205. package/dist/utils/elicitation.js.map +1 -0
  206. package/dist/utils/error-handler.d.ts.map +1 -0
  207. package/dist/utils/error-handler.js.map +1 -0
  208. package/dist/utils/ini-reader.d.ts.map +1 -0
  209. package/dist/utils/ini-reader.js.map +1 -0
  210. package/dist/utils/logger.d.ts.map +1 -0
  211. package/dist/utils/logger.js.map +1 -0
  212. package/dist/utils/normalize.d.ts.map +1 -0
  213. package/dist/utils/normalize.js.map +1 -0
  214. package/dist/utils/path-security.d.ts.map +1 -0
  215. package/dist/utils/path-security.js.map +1 -0
  216. package/dist/utils/response-factory.d.ts.map +1 -0
  217. package/dist/utils/response-factory.js +3 -1
  218. package/dist/utils/response-factory.js.map +1 -0
  219. package/dist/utils/response-validator.d.ts.map +1 -0
  220. package/dist/utils/response-validator.js.map +1 -0
  221. package/dist/utils/result-helpers.d.ts.map +1 -0
  222. package/dist/utils/result-helpers.js.map +1 -0
  223. package/dist/utils/safe-json.d.ts.map +1 -0
  224. package/dist/utils/safe-json.js.map +1 -0
  225. package/dist/utils/unreal-command-queue.d.ts.map +1 -0
  226. package/dist/utils/unreal-command-queue.js.map +1 -0
  227. package/dist/utils/validation.d.ts.map +1 -0
  228. package/dist/utils/validation.js.map +1 -0
  229. package/dist/wasm/index.d.ts.map +1 -0
  230. package/dist/wasm/index.js.map +1 -0
  231. package/package.json +12 -34
  232. package/server.json +2 -2
  233. package/.dockerignore +0 -57
  234. package/.env.example +0 -26
  235. package/.env.production +0 -61
  236. package/.eslintrc.json +0 -0
  237. package/.eslintrc.override.json +0 -8
  238. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -94
  239. package/.github/ISSUE_TEMPLATE/config.yml +0 -8
  240. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -56
  241. package/.github/copilot-instructions.md +0 -478
  242. package/.github/dependabot.yml +0 -19
  243. package/.github/labeler.yml +0 -24
  244. package/.github/labels.yml +0 -70
  245. package/.github/pull_request_template.md +0 -42
  246. package/.github/release-drafter-config.yml +0 -51
  247. package/.github/workflows/auto-merge.yml +0 -38
  248. package/.github/workflows/ci.yml +0 -38
  249. package/.github/workflows/dependency-review.yml +0 -17
  250. package/.github/workflows/gemini-issue-triage.yml +0 -172
  251. package/.github/workflows/greetings.yml +0 -27
  252. package/.github/workflows/labeler.yml +0 -17
  253. package/.github/workflows/links.yml +0 -80
  254. package/.github/workflows/pr-size-labeler.yml +0 -137
  255. package/.github/workflows/publish-mcp.yml +0 -79
  256. package/.github/workflows/release-drafter.yml +0 -24
  257. package/.github/workflows/release.yml +0 -112
  258. package/.github/workflows/semantic-pull-request.yml +0 -35
  259. package/.github/workflows/smoke-test.yml +0 -36
  260. package/.github/workflows/stale.yml +0 -28
  261. package/CONTRIBUTING.md +0 -140
  262. package/Dockerfile +0 -37
  263. package/GEMINI.md +0 -115
  264. package/Public/Plugin_setup_guide.mp4 +0 -0
  265. package/Public/icon.png +0 -0
  266. package/claude_desktop_config_example.json +0 -15
  267. package/dist/types/responses.d.ts +0 -249
  268. package/dist/types/responses.js +0 -2
  269. package/docs/GraphQL-API.md +0 -888
  270. package/docs/Migration-Guide-v0.5.0.md +0 -684
  271. package/docs/Roadmap.md +0 -53
  272. package/docs/WebAssembly-Integration.md +0 -628
  273. package/docs/editor-plugin-extension.md +0 -370
  274. package/docs/handler-mapping.md +0 -249
  275. package/docs/native-automation-progress.md +0 -128
  276. package/docs/testing-guide.md +0 -423
  277. package/eslint.config.mjs +0 -68
  278. package/mcp-config-example.json +0 -14
  279. package/plugins/McpAutomationBridge/Config/FilterPlugin.ini +0 -8
  280. package/plugins/McpAutomationBridge/McpAutomationBridge.uplugin +0 -64
  281. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/McpAutomationBridge.Build.cs +0 -189
  282. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeGlobals.cpp +0 -22
  283. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeGlobals.h +0 -30
  284. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeHelpers.h +0 -1983
  285. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeModule.cpp +0 -72
  286. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeSettings.cpp +0 -46
  287. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeSubsystem.cpp +0 -846
  288. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AnimationHandlers.cpp +0 -2393
  289. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AssetQueryHandlers.cpp +0 -300
  290. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AssetWorkflowHandlers.cpp +0 -2807
  291. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AudioHandlers.cpp +0 -1087
  292. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BehaviorTreeHandlers.cpp +0 -488
  293. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintCreationHandlers.cpp +0 -643
  294. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintCreationHandlers.h +0 -31
  295. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintGraphHandlers.cpp +0 -1094
  296. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintHandlers.cpp +0 -5750
  297. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintHandlers_List.cpp +0 -152
  298. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_ControlHandlers.cpp +0 -2614
  299. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_DebugHandlers.cpp +0 -42
  300. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EditorFunctionHandlers.cpp +0 -1237
  301. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EffectHandlers.cpp +0 -1725
  302. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EnvironmentHandlers.cpp +0 -2241
  303. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_FoliageHandlers.cpp +0 -954
  304. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_InputHandlers.cpp +0 -209
  305. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_InsightsHandlers.cpp +0 -41
  306. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LandscapeHandlers.cpp +0 -1164
  307. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LevelHandlers.cpp +0 -762
  308. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LightingHandlers.cpp +0 -663
  309. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LogHandlers.cpp +0 -136
  310. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_MaterialGraphHandlers.cpp +0 -494
  311. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_NiagaraGraphHandlers.cpp +0 -278
  312. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_NiagaraHandlers.cpp +0 -625
  313. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PerformanceHandlers.cpp +0 -401
  314. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PipelineHandlers.cpp +0 -67
  315. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_ProcessRequest.cpp +0 -472
  316. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PropertyHandlers.cpp +0 -2634
  317. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_RenderHandlers.cpp +0 -189
  318. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SCSHandlers.cpp +0 -917
  319. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SCSHandlers.h +0 -39
  320. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SequenceHandlers.cpp +0 -2706
  321. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SequencerHandlers.cpp +0 -519
  322. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_TestHandlers.cpp +0 -38
  323. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_UiHandlers.cpp +0 -668
  324. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_WorldPartitionHandlers.cpp +0 -346
  325. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpBridgeWebSocket.cpp +0 -1330
  326. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpBridgeWebSocket.h +0 -149
  327. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpConnectionManager.cpp +0 -782
  328. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpAutomationBridgeSettings.h +0 -115
  329. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpAutomationBridgeSubsystem.h +0 -796
  330. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpConnectionManager.h +0 -117
  331. package/scripts/check-unreal-connection.mjs +0 -19
  332. package/scripts/clean-tmp.js +0 -23
  333. package/scripts/patch-wasm.js +0 -26
  334. package/scripts/run-all-tests.mjs +0 -136
  335. package/scripts/smoke-test.ts +0 -94
  336. package/scripts/sync-mcp-plugin.js +0 -143
  337. package/scripts/test-no-plugin-alternates.mjs +0 -113
  338. package/scripts/validate-server.js +0 -46
  339. package/scripts/verify-automation-bridge.js +0 -200
  340. package/src/automation/bridge.ts +0 -560
  341. package/src/automation/connection-manager.ts +0 -148
  342. package/src/automation/handshake.ts +0 -99
  343. package/src/automation/index.ts +0 -2
  344. package/src/automation/message-handler.ts +0 -192
  345. package/src/automation/request-tracker.ts +0 -155
  346. package/src/automation/types.ts +0 -107
  347. package/src/cli.ts +0 -34
  348. package/src/config/class-aliases.ts +0 -65
  349. package/src/config.ts +0 -73
  350. package/src/constants.ts +0 -24
  351. package/src/graphql/loaders.ts +0 -244
  352. package/src/graphql/resolvers.ts +0 -1008
  353. package/src/graphql/schema.ts +0 -452
  354. package/src/graphql/server.ts +0 -156
  355. package/src/graphql/types.ts +0 -10
  356. package/src/handlers/resource-handlers.ts +0 -186
  357. package/src/index.ts +0 -243
  358. package/src/resources/actors.ts +0 -127
  359. package/src/resources/assets.ts +0 -286
  360. package/src/resources/levels.ts +0 -68
  361. package/src/server/resource-registry.ts +0 -47
  362. package/src/server/tool-registry.ts +0 -354
  363. package/src/server-setup.ts +0 -114
  364. package/src/services/health-monitor.ts +0 -132
  365. package/src/services/metrics-server.ts +0 -176
  366. package/src/tools/actors.ts +0 -564
  367. package/src/tools/animation.ts +0 -941
  368. package/src/tools/assets.ts +0 -394
  369. package/src/tools/audio.ts +0 -499
  370. package/src/tools/base-tool.ts +0 -52
  371. package/src/tools/behavior-tree.ts +0 -45
  372. package/src/tools/blueprint.ts +0 -940
  373. package/src/tools/consolidated-tool-definitions.ts +0 -1256
  374. package/src/tools/consolidated-tool-handlers.ts +0 -302
  375. package/src/tools/debug.ts +0 -622
  376. package/src/tools/dynamic-handler-registry.ts +0 -33
  377. package/src/tools/editor.ts +0 -435
  378. package/src/tools/engine.ts +0 -43
  379. package/src/tools/environment.ts +0 -281
  380. package/src/tools/foliage.ts +0 -596
  381. package/src/tools/handlers/actor-handlers.ts +0 -244
  382. package/src/tools/handlers/animation-handlers.ts +0 -237
  383. package/src/tools/handlers/argument-helper.ts +0 -142
  384. package/src/tools/handlers/asset-handlers.ts +0 -550
  385. package/src/tools/handlers/audio-handlers.ts +0 -194
  386. package/src/tools/handlers/blueprint-handlers.ts +0 -380
  387. package/src/tools/handlers/common-handlers.ts +0 -108
  388. package/src/tools/handlers/editor-handlers.ts +0 -124
  389. package/src/tools/handlers/effect-handlers.ts +0 -224
  390. package/src/tools/handlers/environment-handlers.ts +0 -183
  391. package/src/tools/handlers/graph-handlers.ts +0 -117
  392. package/src/tools/handlers/input-handlers.ts +0 -28
  393. package/src/tools/handlers/inspect-handlers.ts +0 -450
  394. package/src/tools/handlers/level-handlers.ts +0 -253
  395. package/src/tools/handlers/lighting-handlers.ts +0 -151
  396. package/src/tools/handlers/performance-handlers.ts +0 -132
  397. package/src/tools/handlers/pipeline-handlers.ts +0 -128
  398. package/src/tools/handlers/sequence-handlers.ts +0 -438
  399. package/src/tools/handlers/system-handlers.ts +0 -564
  400. package/src/tools/input.ts +0 -160
  401. package/src/tools/introspection.ts +0 -689
  402. package/src/tools/landscape.ts +0 -649
  403. package/src/tools/level.ts +0 -989
  404. package/src/tools/lighting.ts +0 -1052
  405. package/src/tools/logs.ts +0 -219
  406. package/src/tools/materials.ts +0 -295
  407. package/src/tools/niagara.ts +0 -485
  408. package/src/tools/performance.ts +0 -661
  409. package/src/tools/physics.ts +0 -679
  410. package/src/tools/property-dictionary.ts +0 -98
  411. package/src/tools/sequence.ts +0 -385
  412. package/src/tools/tool-definition-utils.ts +0 -35
  413. package/src/tools/ui.ts +0 -452
  414. package/src/types/automation-responses.ts +0 -119
  415. package/src/types/env.ts +0 -17
  416. package/src/types/handler-types.ts +0 -442
  417. package/src/types/responses.ts +0 -355
  418. package/src/types/tool-interfaces.ts +0 -250
  419. package/src/types/tool-types.ts +0 -575
  420. package/src/unreal-bridge.ts +0 -693
  421. package/src/utils/command-validator.ts +0 -139
  422. package/src/utils/elicitation.ts +0 -132
  423. package/src/utils/error-handler.ts +0 -287
  424. package/src/utils/ini-reader.ts +0 -86
  425. package/src/utils/logger.ts +0 -35
  426. package/src/utils/normalize.test.ts +0 -162
  427. package/src/utils/normalize.ts +0 -146
  428. package/src/utils/path-security.ts +0 -43
  429. package/src/utils/response-factory.ts +0 -44
  430. package/src/utils/response-validator.ts +0 -395
  431. package/src/utils/result-helpers.ts +0 -195
  432. package/src/utils/safe-json.test.ts +0 -90
  433. package/src/utils/safe-json.ts +0 -70
  434. package/src/utils/unreal-command-queue.ts +0 -166
  435. package/src/utils/validation.test.ts +0 -184
  436. package/src/utils/validation.ts +0 -312
  437. package/src/wasm/index.ts +0 -838
  438. package/test-server.mjs +0 -100
  439. package/tests/run-unreal-tool-tests.mjs +0 -948
  440. package/tests/test-animation.mjs +0 -369
  441. package/tests/test-asset-advanced.mjs +0 -82
  442. package/tests/test-asset-errors.mjs +0 -35
  443. package/tests/test-asset-graph.mjs +0 -311
  444. package/tests/test-audio.mjs +0 -417
  445. package/tests/test-automation-timeouts.mjs +0 -98
  446. package/tests/test-behavior-tree.mjs +0 -444
  447. package/tests/test-blueprint-graph.mjs +0 -410
  448. package/tests/test-blueprint.mjs +0 -577
  449. package/tests/test-client-mode.mjs +0 -86
  450. package/tests/test-console-command.mjs +0 -56
  451. package/tests/test-control-actor.mjs +0 -425
  452. package/tests/test-control-editor.mjs +0 -112
  453. package/tests/test-graphql.mjs +0 -372
  454. package/tests/test-input.mjs +0 -349
  455. package/tests/test-inspect.mjs +0 -302
  456. package/tests/test-landscape.mjs +0 -316
  457. package/tests/test-lighting.mjs +0 -428
  458. package/tests/test-manage-asset.mjs +0 -438
  459. package/tests/test-manage-level.mjs +0 -89
  460. package/tests/test-materials.mjs +0 -356
  461. package/tests/test-niagara.mjs +0 -185
  462. package/tests/test-no-inline-python.mjs +0 -122
  463. package/tests/test-performance.mjs +0 -539
  464. package/tests/test-plugin-handshake.mjs +0 -82
  465. package/tests/test-runner.mjs +0 -933
  466. package/tests/test-sequence.mjs +0 -104
  467. package/tests/test-system.mjs +0 -96
  468. package/tests/test-wasm.mjs +0 -283
  469. package/tests/test-world-partition.mjs +0 -215
  470. package/tsconfig.json +0 -56
  471. package/vitest.config.ts +0 -35
  472. package/wasm/Cargo.lock +0 -363
  473. package/wasm/Cargo.toml +0 -42
  474. package/wasm/LICENSE +0 -21
  475. package/wasm/README.md +0 -253
  476. package/wasm/src/dependency_resolver.rs +0 -377
  477. package/wasm/src/lib.rs +0 -153
  478. package/wasm/src/property_parser.rs +0 -271
  479. package/wasm/src/transform_math.rs +0 -396
  480. package/wasm/tests/integration.rs +0 -109
@@ -1,94 +0,0 @@
1
- name: 'Bug Report'
2
- description: 'Report a bug to help us improve Unreal Engine MCP Server'
3
- labels:
4
- - 'bug'
5
- body:
6
- - type: 'markdown'
7
- attributes:
8
- value: |-
9
- > [!IMPORTANT]
10
- > Thanks for taking the time to fill out this bug report!
11
- >
12
- > Please search **[existing issues](https://github.com/ChiR24/Unreal_mcp/issues)** to see if an issue already exists for the bug you encountered.
13
-
14
- - type: 'textarea'
15
- id: 'problem'
16
- attributes:
17
- label: 'What happened?'
18
- description: 'A clear and concise description of what the bug is.'
19
- validations:
20
- required: true
21
-
22
- - type: 'textarea'
23
- id: 'expected'
24
- attributes:
25
- label: 'What did you expect to happen?'
26
- validations:
27
- required: true
28
-
29
- - type: 'dropdown'
30
- id: 'ue-version'
31
- attributes:
32
- label: 'Unreal Engine Version'
33
- options:
34
- - 'UE 5.0'
35
- - 'UE 5.1'
36
- - 'UE 5.2'
37
- - 'UE 5.3'
38
- - 'UE 5.4'
39
- - 'UE 5.5'
40
- - 'UE 5.6'
41
- - 'UE 5.7'
42
- - 'Other'
43
- validations:
44
- required: true
45
-
46
- - type: 'dropdown'
47
- id: 'mcp-client'
48
- attributes:
49
- label: 'MCP Client'
50
- options:
51
- - 'Claude Desktop'
52
- - 'Cursor'
53
- - 'VS Code (Copilot)'
54
- - 'Custom MCP Client'
55
- - 'Other'
56
- validations:
57
- required: true
58
-
59
- - type: 'textarea'
60
- id: 'environment'
61
- attributes:
62
- label: 'Environment Information'
63
- description: 'Please include OS, Node.js version, and any relevant environment details.'
64
- value: |-
65
- - **OS**: [e.g., Windows 11, macOS Sonoma, Ubuntu 22.04]
66
- - **Node.js Version**: [e.g., 18.x, 20.x]
67
- - **MCP Server Version**: [e.g., 0.5.0]
68
- validations:
69
- required: true
70
-
71
- - type: 'textarea'
72
- id: 'reproduction'
73
- attributes:
74
- label: 'Steps to Reproduce'
75
- description: 'How can we reproduce the issue?'
76
- value: |-
77
- 1.
78
- 2.
79
- 3.
80
- validations:
81
- required: true
82
-
83
- - type: 'textarea'
84
- id: 'logs'
85
- attributes:
86
- label: 'Relevant Logs'
87
- description: 'Paste any relevant error logs or console output.'
88
- render: 'shell'
89
-
90
- - type: 'textarea'
91
- id: 'additional-context'
92
- attributes:
93
- label: 'Additional Context'
94
- description: 'Add any other context or screenshots about the problem here.'
@@ -1,8 +0,0 @@
1
- blank_issues_enabled: false
2
- contact_links:
3
- - name: 'Documentation'
4
- url: 'https://github.com/ChiR24/Unreal_mcp/tree/main/docs'
5
- about: 'Check the documentation for usage guides and API reference.'
6
- - name: 'Discussions'
7
- url: 'https://github.com/ChiR24/Unreal_mcp/discussions'
8
- about: 'Ask questions and share ideas with the community.'
@@ -1,56 +0,0 @@
1
- name: 'Feature Request'
2
- description: 'Suggest a new feature or improvement for Unreal Engine MCP Server'
3
- labels:
4
- - 'enhancement'
5
- body:
6
- - type: 'markdown'
7
- attributes:
8
- value: |-
9
- > [!IMPORTANT]
10
- > Thanks for taking the time to suggest an enhancement!
11
- >
12
- > Please search **[existing issues](https://github.com/ChiR24/Unreal_mcp/issues)** to see if a similar feature has already been requested.
13
-
14
- - type: 'textarea'
15
- id: 'feature'
16
- attributes:
17
- label: 'What would you like to be added?'
18
- description: 'A clear and concise description of the enhancement.'
19
- validations:
20
- required: true
21
-
22
- - type: 'dropdown'
23
- id: 'category'
24
- attributes:
25
- label: 'Feature Category'
26
- options:
27
- - 'New Tool'
28
- - 'Existing Tool Enhancement'
29
- - 'Plugin (C++)'
30
- - 'Performance'
31
- - 'Documentation'
32
- - 'Testing'
33
- - 'Developer Experience'
34
- - 'Other'
35
- validations:
36
- required: true
37
-
38
- - type: 'textarea'
39
- id: 'rationale'
40
- attributes:
41
- label: 'Why is this needed?'
42
- description: 'A clear and concise description of why this enhancement is needed.'
43
- validations:
44
- required: true
45
-
46
- - type: 'textarea'
47
- id: 'alternatives'
48
- attributes:
49
- label: 'Alternatives Considered'
50
- description: 'Any alternative solutions or features you have considered.'
51
-
52
- - type: 'textarea'
53
- id: 'additional-context'
54
- attributes:
55
- label: 'Additional Context'
56
- description: 'Add any other context, mockups, or screenshots about the feature request here.'
@@ -1,478 +0,0 @@
1
- # Unreal MCP — AI Agent Quick Guide (for AI coding agents)
2
-
3
- **Two-process architecture**: Node.js MCP server (`src/`) ↔ Native C++ UE Editor plugin (`Plugins/McpAutomationBridge/Source/`)
4
-
5
- **Data flow**: JSON payloads → `sendAutomationRequest(action, params)` (TS) → WebSocket → `UMcpAutomationBridgeSubsystem::ProcessAutomationRequest()` (C++) → Domain-specific `*Handlers.cpp` (native UE subsystems). Uses `FJsonObjectConverter::JsonObjectToUStruct()` + `FProperty` for typed marshaling.
6
-
7
- ## 🚀 Quickstart Checklist
8
-
9
- ### Prerequisites
10
- - **Enable UE Plugins**: MCP Automation Bridge, Editor Scripting Utilities
11
- - **Required Plugins**: Sequencer, Level Sequence Editor, Control Rig, Subobject Data Interface (UE 5.7+)
12
-
13
- ### Setup Commands
14
- ```bash
15
- # Sync plugin to Unreal project
16
- npm run automation:sync -- --project "X:/MyProject/Plugins"
17
-
18
- # Verify plugin installation
19
- npm run automation:verify -- --project "X:/MyProject/Plugins"
20
-
21
- # Start development server (auto-connects on demand)
22
- npm run dev
23
-
24
- # Build with WASM optimization (5-8x performance)
25
- npm run build:wasm
26
- ```
27
-
28
- ## 🗺️ Architecture Overview
29
-
30
- ### Core Components
31
-
32
- **Node.js Server (`src/`)**
33
- - `src/index.ts`: MCP server setup, tool registration, WASM initialization
34
- - `src/unreal-bridge.ts`: Connection management, command throttling, safety validation
35
- - `src/automation/bridge.ts`: WebSocket client with handshake/reconnect logic
36
- - `src/tools/consolidated-*.ts`: 17 tool dispatchers with response validation
37
- - `src/wasm/index.ts`: WebAssembly integration (JSON parsing, transform math)
38
-
39
- **C++ Plugin (`Plugins/McpAutomationBridge/Source/McpAutomationBridge/`)**
40
- - `Private/McpAutomationBridgeSubsystem.cpp`: WebSocket server, request routing
41
- - `Private/McpBridgeWebSocket.cpp/h`: Custom WebSocket with protocol negotiation
42
- - `Private/McpAutomationBridgeHelpers.h`: JSON↔UStruct conversion, class resolution
43
- - `Private/*Handlers.cpp` (18 files): Domain-specific implementations
44
-
45
- ### Communication Protocol
46
- - **Transport**: WebSocket (`ws://127.0.0.1:8091`)
47
- - **Message format**: `{type: "automation_request", requestId: string, action: string, payload: object}`
48
- - **Response format**: `{success: boolean, message?: string, error?: string, data?: object}`
49
- - **Handshake**: Capability token exchange with metadata
50
- - **Heartbeat**: 15s interval for connection health
51
-
52
- ## 🛠️ Developer Workflows
53
-
54
- ### Build & Test
55
- ```bash
56
- # Full build (TypeScript + WASM)
57
- npm run build
58
-
59
- # TypeScript only (faster iteration)
60
- npm run build:core
61
-
62
- # Run specific tool tests
63
- npm run test:manage_asset
64
- npm run test:control_actor
65
- npm run test:blueprint
66
-
67
- # Run all tests
68
- npm run test
69
-
70
- # Lint (TypeScript, C++, C#)
71
- npm run lint
72
- npm run lint:cpp
73
- ```
74
-
75
- ### Debugging
76
- ```bash
77
- # Check WebSocket connections
78
- netstat -ano | findstr :8091
79
-
80
- # Clean plugin build artifacts
81
- rm -r Plugins/McpAutomationBridge/{Binaries,Intermediate}
82
-
83
- # Set debug logging
84
- LOG_LEVEL=debug npm run dev
85
-
86
- # View MCP resources in Unreal
87
- ue://health # Metrics dashboard
88
- ue://automation-bridge # Connection status
89
- ```
90
-
91
- ## 📋 Critical Patterns & Conventions
92
-
93
- ### 1. Two-Step Tool Implementation
94
- **C++ Handler** → **TypeScript Wrapper** → **Consolidated Router**
95
-
96
- ```cpp
97
- // In McpAutomationBridgeSubsystem.cpp
98
- if (Action == TEXT("create_material"))
99
- {
100
- return AssetWorkflowHandlers::CreateMaterial(Payload, Reply);
101
- }
102
- ```
103
-
104
- ```typescript
105
- // In src/tools/assets.ts
106
- const resp = await automationBridge.sendAutomationRequest('create_material', {name, path});
107
- return responseValidator.wrapResponse('manage_asset', resp);
108
- ```
109
-
110
- ### 2. Response Validation
111
- All tools use `responseValidator.wrapResponse()` with Zod schemas defined in `consolidated-tool-definitions.ts`:
112
-
113
- ```typescript
114
- // Register schema in src/index.ts
115
- responseValidator.registerSchema('manage_asset', toolDefs.find(t => t.name === 'manage_asset').outputSchema);
116
- ```
117
-
118
- ### 3. Command Safety
119
- - **Validation**: `CommandValidator.validate()` blocks dangerous commands
120
- - **Throttling**: `executeThrottledCommand()` with priority queueing
121
- - **Timeouts**: Default 30s, configurable via `timeoutMs`
122
- - **Retry logic**: Exponential backoff with `ErrorHandler.retryWithBackoff()`
123
-
124
- ### 4. Path Normalization
125
- - **UE paths**: `/Content` → `/Game` (via `normalize.ts`)
126
- - **Vectors**: `{x,y,z}` or `[x,y,z]` → `toVec3Tuple()`
127
- - **Asset references**: Use `ResolveClassByName()` in C++ helpers
128
-
129
- ### 5. WASM Optimization
130
- Automatic fallback when WASM unavailable:
131
-
132
- ```typescript
133
- // In src/wasm/index.ts
134
- try {
135
- const result = wasmModule.PropertyParser.parse_properties(jsonStr);
136
- // 5-8x faster
137
- } catch (error) {
138
- // Fallback to TypeScript
139
- return JSON.parse(jsonStr);
140
- }
141
- ```
142
-
143
- ## 🔧 Adding New Tools
144
-
145
- ### Step-by-Step
146
-
147
- 1. **C++ Implementation**
148
- - Add handler in appropriate `*Handlers.cpp` file
149
- - Register in `McpAutomationBridgeSubsystem.cpp::ProcessAutomationRequest()`
150
- - Return `FReply{Success=true, Data=JsonObject}`
151
-
152
- 2. **TypeScript Wrapper**
153
- - Create or update `src/tools/<domain>.ts`
154
- - Use `automationBridge.sendAutomationRequest(action, params)`
155
- - Wrap response with `responseValidator.wrapResponse()`
156
-
157
- 3. **Consolidated Routing**
158
- - Add to `consolidated-tool-definitions.ts` (input/output schemas)
159
- - Route in `consolidated-tool-handlers.ts`
160
-
161
- 4. **Testing**
162
- - Create `tests/test-<domain>.mjs` with Markdown test cases
163
- - Run with `npm run test:<domain>`
164
-
165
- ### Example: New Material Action
166
-
167
- ```typescript
168
- // 1. Add to consolidated-tool-definitions.ts
169
- actions: ['list', 'create_material', 'update_material_shader']
170
-
171
- // 2. Add properties to inputSchema
172
- shaderType: { type: 'string', enum: ['DefaultLit', 'Unlit', 'Subsurface'] }
173
-
174
- // 3. Implement in src/tools/assets.ts
175
- case 'update_material_shader':
176
- return automationBridge.sendAutomationRequest('update_material_shader', params);
177
-
178
- // 4. Add test case in tests/test-materials.mjs
179
- {
180
- scenario: "Update material shader type",
181
- toolName: "manage_asset",
182
- arguments: {
183
- action: "update_material_shader",
184
- assetPath: "/Game/M_MasterMaterial_Test",
185
- shaderType: "Unlit"
186
- },
187
- expected: "success"
188
- }
189
- ```
190
-
191
- ## 🎯 Key Integration Points
192
-
193
- ### WebSocket Communication
194
- - **Client**: `src/automation/bridge.ts` (Node.js)
195
- - **Server**: `McpBridgeWebSocket.cpp` (Unreal Plugin)
196
- - **Protocol**: Custom MCP automation protocol with handshake
197
- - **Reconnect**: Exponential backoff with jitter
198
-
199
- ### Cross-Process Data Flow
200
- ```
201
- TypeScript Tool Call
202
-
203
- UnrealBridge.tryConnect()
204
-
205
- AutomationBridge.sendAutomationRequest()
206
-
207
- WebSocket → McpAutomationBridgeSubsystem
208
-
209
- ProcessAutomationRequest() → Handler
210
-
211
- FReply → JSON → TypeScript Response
212
- ```
213
-
214
- ### Error Handling
215
- - **Timeouts**: 30s default, configurable per request
216
- - **Retries**: 3 attempts with exponential backoff
217
- - **Fallbacks**: Automatic TypeScript when WASM unavailable
218
- - **Validation**: Zod schemas for all tool I/O
219
-
220
- ## 📊 Performance Optimization
221
-
222
- ### WASM Acceleration (5-8x faster)
223
- - **JSON parsing**: Property parsing with depth limits
224
- - **Transform math**: Vector/matrix operations
225
- - **Dependency resolution**: Asset graph traversal
226
- - **Topological sorting**: Build order calculation
227
-
228
- ### Command Throttling
229
- - **Priority queue**: 1-10 priority levels
230
- - **Minimum delay**: 100ms for stats, 300ms for operations
231
- - **Concurrency limits**: Configurable max pending requests
232
-
233
- ### Caching
234
- - **Asset lists**: 10-second TTL
235
- - **Class resolution**: Memoized lookups
236
- - **WebSocket connections**: Persistent with reconnect
237
-
238
- ## 🧪 Testing Strategy
239
-
240
- ### Test Structure
241
- - **Markdown-based**: Human-readable test cases
242
- - **Domain-specific**: 17 test files covering all tools
243
- - **Integration-focused**: Real Unreal Engine operations
244
-
245
- ### Running Tests
246
- ```bash
247
- # Single tool test
248
- npm run test:manage_asset
249
-
250
- # All tests
251
- npm run test
252
-
253
- # With debug output
254
- LOG_LEVEL=debug npm run test:blueprint
255
- ```
256
-
257
- ### Test Case Format
258
- ```javascript
259
- {
260
- scenario: "Descriptive test name",
261
- toolName: "manage_asset",
262
- arguments: { action: "create_material", name: "TestMaterial" },
263
- expected: "success|not_found|error_message"
264
- }
265
- ```
266
-
267
- ## 🚨 Common Pitfalls
268
-
269
- ### 1. Plugin Not Enabled
270
- **Symptom**: `Automation bridge not connected`
271
- **Fix**: Enable "MCP Automation Bridge" in UE Editor Plugins
272
-
273
- ### 2. Port Conflicts
274
- **Symptom**: Connection refused on :8091
275
- **Fix**: Check `netstat -ano | findstr :8091` and kill conflicting process
276
-
277
- ### 3. WASM Missing
278
- **Symptom**: Fallback to TypeScript warnings
279
- **Fix**: Run `npm run build:wasm` or set `WASM_ENABLED=false`
280
-
281
- ### 4. Path Normalization
282
- **Symptom**: Asset not found errors
283
- **Fix**: Use `/Game` prefix, not `/Content`
284
-
285
- ### 5. Command Validation
286
- **Symptom**: "Dangerous command blocked"
287
- **Fix**: Use safe alternatives or whitelist in `CommandValidator`
288
-
289
- ## 📚 Essential References
290
-
291
- ### Key Files
292
- - `src/constants.ts`: Configuration defaults and timeouts
293
- - `src/utils/response-validator.ts`: Response schema validation
294
- - `src/utils/command-validator.ts`: Safety rules and blocked commands
295
- - `src/utils/unreal-command-queue.ts`: Throttling implementation
296
-
297
- ### Documentation
298
- - `docs/handler-mapping.md`: TypeScript → C++ handler mappings
299
- - `docs/GraphQL-API.md`: Query interface specification
300
- - `README.md`: Complete setup and usage guide
301
-
302
- ### Debug Resources
303
- - `ue://health`: Real-time metrics dashboard
304
- - `ue://automation-bridge`: Connection status and pending requests
305
- - UE Output Log: Filter for `bridge_ack` and `automation_request`
306
-
307
- ## 🎓 Learning Resources
308
-
309
- ### Understanding the Codebase
310
- 1. Start with `src/index.ts` → `createServer()`
311
- 2. Follow WebSocket flow in `src/automation/bridge.ts`
312
- 3. Examine a simple handler: `McpAutomationBridge_AssetQueryHandlers.cpp`
313
- 4. Study tool implementation: `src/tools/assets.ts`
314
- 5. Review test patterns: `tests/test-manage-asset.mjs`
315
-
316
- ### Recommended Reading Order
317
- ```
318
- README.md → docs/handler-mapping.md → src/index.ts
319
- → src/automation/bridge.ts → src/tools/consolidated-*.ts
320
- → Plugins/.../McpAutomationBridgeSubsystem.cpp
321
- ```
322
-
323
- ## 🤝 Contribution Guidelines
324
-
325
- ### Pull Request Requirements
326
- - **Scope**: Single tool/action per PR
327
- - **Tests**: Add Markdown test cases
328
- - **Documentation**: Update `handler-mapping.md` if adding handlers
329
- - **Validation**: Ensure Zod schemas are comprehensive
330
-
331
- ### Code Style
332
- - **TypeScript**: Follow ESLint rules (`npm run lint`)
333
- - **C++**: Use Unreal coding standards
334
- - **Comments**: Document non-obvious logic and safety considerations
335
- - **Error handling**: Structured errors with context
336
-
337
- ### Review Checklist
338
- - [ ] Tool works with and without WASM
339
- - [ ] Response validation schema is complete
340
- - [ ] Command throttling is appropriate
341
- - [ ] Error messages are actionable
342
- - [ ] Test cases cover success and failure paths
343
-
344
- ## 📈 Performance Tuning
345
-
346
- ### Configuration Variables
347
- ```env
348
- # Connection
349
- MCP_AUTOMATION_PORT=8091
350
- MCP_AUTOMATION_REQUEST_TIMEOUT_MS=120000
351
-
352
- # Performance
353
- WASM_ENABLED=true
354
- ASSET_LIST_TTL_MS=10000
355
-
356
- # Logging
357
- LOG_LEVEL=info
358
- ```
359
-
360
- ### Optimization Tips
361
- - **Batch operations**: Use `delete_assets` instead of multiple `delete`
362
- - **Caching**: Leverage 10s asset cache for repeated queries
363
- - **Priority**: Set appropriate priority for time-sensitive operations
364
- - **WASM**: Enable for JSON-heavy and math-intensive operations
365
-
366
- ## 🎯 Quick Reference
367
-
368
- ### Most Used Commands
369
- ```bash
370
- # Development
371
- npm run dev # Start server with auto-reload
372
- npm run build # Build TypeScript + WASM
373
- npm run lint # Check code style
374
-
375
- # Testing
376
- npm run test # All tests
377
- npm run test:blueprint # Specific tool tests
378
-
379
- # Plugin Management
380
- npm run automation:sync # Sync to UE project
381
- npm run automation:verify # Verify installation
382
-
383
- # Debugging
384
- LOG_LEVEL=debug npm run dev
385
- netstat -ano | findstr :8091
386
- ```
387
-
388
- ### Common File Patterns
389
- ```
390
- src/tools/<domain>.ts # Tool implementations
391
- src/tools/consolidated-*.ts # Routing and validation
392
- Plugins/.../*Handlers.cpp # Native C++ handlers
393
- Tests/test-<domain>.mjs # Test cases
394
- ```
395
-
396
- ## 🆘 Troubleshooting
397
-
398
- ### Connection Issues
399
- ```bash
400
- # Check if plugin is listening
401
- netstat -ano | findstr :8091
402
-
403
- # Verify plugin files
404
- npm run automation:verify -- --project "C:/Path/To/Project"
405
-
406
- # Clean and rebuild
407
- rm -r Plugins/McpAutomationBridge/{Binaries,Intermediate}
408
- npm run build
409
- ```
410
-
411
- ### Performance Problems
412
- ```bash
413
- # Check WASM status
414
- curl http://localhost:8090/metrics | grep wasm
415
-
416
- # Monitor command queue
417
- LOG_LEVEL=debug npm run dev
418
-
419
- # Disable WASM for testing
420
- WASM_ENABLED=false npm run dev
421
- ```
422
-
423
- ### Test Failures
424
- ```bash
425
- # Run single test with debug
426
- LOG_LEVEL=debug npm run test:manage_asset
427
-
428
- # Check Unreal Editor logs
429
- # Filter for "automation_request" in Output Log
430
-
431
- # Verify plugin capabilities
432
- ue://automation-bridge
433
- ```
434
-
435
- ## 📋 Checklist for New Contributors
436
-
437
- 1. [ ] Read `README.md` and this guide
438
- 2. [ ] Set up Unreal Engine project with required plugins
439
- 3. [ ] Run `npm run automation:sync`
440
- 4. [ ] Start server with `npm run dev`
441
- 5. [ ] Verify connection in UE Output Log
442
- 6. [ ] Run tests with `npm run test`
443
- 7. [ ] Explore existing tools and handlers
444
- 8. [ ] Start with small, focused changes
445
- 9. [ ] Add comprehensive test cases
446
- 10. [ ] Document new features in `handler-mapping.md`
447
-
448
- ## 🤖 AI Agent Specifics
449
-
450
- ### Understanding the System
451
- - **Dual-process**: Node.js ↔ Unreal Editor plugin communication
452
- - **Protocol**: Custom WebSocket-based automation protocol
453
- - **Safety**: Command validation and throttling are mandatory
454
- - **Performance**: WASM optimization is automatic but optional
455
-
456
- ### Common AI Tasks
457
- 1. **Add new automation**: Follow the two-step implementation pattern
458
- 2. **Fix connection issues**: Check plugin status and ports
459
- 3. **Optimize performance**: Leverage WASM and caching
460
- 4. **Extend functionality**: Add new actions to existing tools
461
- 5. **Debug problems**: Use metrics endpoints and detailed logging
462
-
463
- ### When to Ask for Help
464
- - Plugin installation issues
465
- - C++ handler implementation questions
466
- - WebSocket protocol details
467
- - Performance optimization strategies
468
- - Test case design for complex scenarios
469
-
470
- ## 📝 Feedback Request
471
-
472
- Please provide feedback on:
473
- 1. **Clarity**: Are the workflows and patterns clear?
474
- 2. **Completeness**: Are any critical aspects missing?
475
- 3. **Accuracy**: Are the examples and commands correct?
476
- 4. **Organization**: Is the information easy to find?
477
-
478
- Suggest improvements to make this guide more helpful for AI agents working on this codebase!
@@ -1,19 +0,0 @@
1
- version: 2
2
- updates:
3
- # Maintain dependencies for npm
4
- - package-ecosystem: "npm"
5
- directory: "/"
6
- schedule:
7
- interval: "daily"
8
- open-pull-requests-limit: 10
9
- groups:
10
- dependencies:
11
- patterns:
12
- - "*"
13
-
14
- # Maintain dependencies for GitHub Actions
15
- - package-ecosystem: "github-actions"
16
- directory: "/"
17
- schedule:
18
- interval: "daily"
19
- open-pull-requests-limit: 10
@@ -1,24 +0,0 @@
1
- area/plugin:
2
- - changed-files:
3
- - any-glob-to-any-file: 'Plugins/**/*'
4
-
5
- area/server:
6
- - changed-files:
7
- - any-glob-to-any-file: 'src/**/*'
8
- - any-glob-to-any-file: 'package.json'
9
- - any-glob-to-any-file: 'tsconfig.json'
10
-
11
- area/docs:
12
- - changed-files:
13
- - any-glob-to-any-file: '**/*.md'
14
- - any-glob-to-any-file: 'docs/**/*'
15
-
16
- area/tools:
17
- - changed-files:
18
- - any-glob-to-any-file: '.github/**/*'
19
- - any-glob-to-any-file: 'scripts/**/*'
20
-
21
- area/testing:
22
- - changed-files:
23
- - any-glob-to-any-file: 'tests/**/*'
24
- - any-glob-to-any-file: 'test/**/*'