unreal-engine-mcp-server 0.5.4 โ†’ 0.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (561) hide show
  1. package/CHANGELOG.md +350 -0
  2. package/dist/automation/bridge.d.ts.map +1 -0
  3. package/dist/automation/bridge.js +5 -4
  4. package/dist/automation/bridge.js.map +1 -0
  5. package/dist/automation/connection-manager.d.ts.map +1 -0
  6. package/dist/automation/connection-manager.js.map +1 -0
  7. package/dist/automation/handshake.d.ts.map +1 -0
  8. package/dist/automation/handshake.js.map +1 -0
  9. package/dist/automation/index.d.ts.map +1 -0
  10. package/dist/automation/index.js.map +1 -0
  11. package/dist/automation/message-handler.d.ts.map +1 -0
  12. package/dist/automation/message-handler.js.map +1 -0
  13. package/dist/automation/request-tracker.d.ts.map +1 -0
  14. package/dist/automation/request-tracker.js.map +1 -0
  15. package/dist/automation/types.d.ts +7 -0
  16. package/dist/automation/types.d.ts.map +1 -0
  17. package/dist/automation/types.js.map +1 -0
  18. package/dist/cli.d.ts.map +1 -0
  19. package/dist/cli.js +6 -4
  20. package/dist/cli.js.map +1 -0
  21. package/dist/config/class-aliases.d.ts.map +1 -0
  22. package/dist/config/class-aliases.js.map +1 -0
  23. package/dist/config.d.ts.map +1 -0
  24. package/dist/config.js.map +1 -0
  25. package/dist/constants.d.ts.map +1 -0
  26. package/dist/constants.js.map +1 -0
  27. package/dist/graphql/loaders.d.ts.map +1 -0
  28. package/dist/graphql/loaders.js.map +1 -0
  29. package/dist/graphql/resolvers.d.ts +174 -69
  30. package/dist/graphql/resolvers.d.ts.map +1 -0
  31. package/dist/graphql/resolvers.js +82 -67
  32. package/dist/graphql/resolvers.js.map +1 -0
  33. package/dist/graphql/schema.d.ts.map +1 -0
  34. package/dist/graphql/schema.js.map +1 -0
  35. package/dist/graphql/server.d.ts.map +1 -0
  36. package/dist/graphql/server.js.map +1 -0
  37. package/dist/graphql/types.d.ts.map +1 -0
  38. package/dist/graphql/types.js.map +1 -0
  39. package/dist/handlers/resource-handlers.d.ts.map +1 -0
  40. package/dist/handlers/resource-handlers.js.map +1 -0
  41. package/dist/index.d.ts +2 -1
  42. package/dist/index.d.ts.map +1 -0
  43. package/dist/index.js +70 -9
  44. package/dist/index.js.map +1 -0
  45. package/dist/resources/actors.d.ts +7 -4
  46. package/dist/resources/actors.d.ts.map +1 -0
  47. package/dist/resources/actors.js +15 -12
  48. package/dist/resources/actors.js.map +1 -0
  49. package/dist/resources/assets.d.ts +43 -2
  50. package/dist/resources/assets.d.ts.map +1 -0
  51. package/dist/resources/assets.js +21 -12
  52. package/dist/resources/assets.js.map +1 -0
  53. package/dist/resources/levels.d.ts.map +1 -0
  54. package/dist/resources/levels.js +7 -5
  55. package/dist/resources/levels.js.map +1 -0
  56. package/dist/schemas/index.d.ts +4 -0
  57. package/dist/schemas/index.d.ts.map +1 -0
  58. package/dist/schemas/index.js +4 -0
  59. package/dist/schemas/index.js.map +1 -0
  60. package/dist/schemas/parser.d.ts +20 -0
  61. package/dist/schemas/parser.d.ts.map +1 -0
  62. package/dist/schemas/parser.js +61 -0
  63. package/dist/schemas/parser.js.map +1 -0
  64. package/dist/schemas/primitives.d.ts +221 -0
  65. package/dist/schemas/primitives.d.ts.map +1 -0
  66. package/dist/schemas/primitives.js +115 -0
  67. package/dist/schemas/primitives.js.map +1 -0
  68. package/dist/schemas/responses.d.ts +362 -0
  69. package/dist/schemas/responses.d.ts.map +1 -0
  70. package/dist/schemas/responses.js +252 -0
  71. package/dist/schemas/responses.js.map +1 -0
  72. package/dist/server/resource-registry.d.ts.map +1 -0
  73. package/dist/server/resource-registry.js.map +1 -0
  74. package/dist/server/tool-registry.d.ts.map +1 -0
  75. package/dist/server/tool-registry.js +22 -17
  76. package/dist/server/tool-registry.js.map +1 -0
  77. package/dist/server-setup.d.ts.map +1 -0
  78. package/dist/server-setup.js.map +1 -0
  79. package/dist/services/health-monitor.d.ts +1 -1
  80. package/dist/services/health-monitor.d.ts.map +1 -0
  81. package/dist/services/health-monitor.js +4 -3
  82. package/dist/services/health-monitor.js.map +1 -0
  83. package/dist/services/metrics-server.d.ts.map +1 -0
  84. package/dist/services/metrics-server.js.map +1 -0
  85. package/dist/tools/actors.d.ts +27 -27
  86. package/dist/tools/actors.d.ts.map +1 -0
  87. package/dist/tools/actors.js +14 -10
  88. package/dist/tools/actors.js.map +1 -0
  89. package/dist/tools/animation.d.ts +15 -23
  90. package/dist/tools/animation.d.ts.map +1 -0
  91. package/dist/tools/animation.js +17 -13
  92. package/dist/tools/animation.js.map +1 -0
  93. package/dist/tools/assets.d.ts.map +1 -0
  94. package/dist/tools/assets.js +18 -12
  95. package/dist/tools/assets.js.map +1 -0
  96. package/dist/tools/audio.d.ts +10 -10
  97. package/dist/tools/audio.d.ts.map +1 -0
  98. package/dist/tools/audio.js.map +1 -0
  99. package/dist/tools/base-tool.d.ts.map +1 -0
  100. package/dist/tools/base-tool.js.map +1 -0
  101. package/dist/tools/behavior-tree.d.ts +24 -24
  102. package/dist/tools/behavior-tree.d.ts.map +1 -0
  103. package/dist/tools/behavior-tree.js.map +1 -0
  104. package/dist/tools/blueprint.d.ts +14 -3
  105. package/dist/tools/blueprint.d.ts.map +1 -0
  106. package/dist/tools/blueprint.js +5 -3
  107. package/dist/tools/blueprint.js.map +1 -0
  108. package/dist/tools/consolidated-tool-definitions.d.ts +32 -32
  109. package/dist/tools/consolidated-tool-definitions.d.ts.map +1 -0
  110. package/dist/tools/consolidated-tool-definitions.js.map +1 -0
  111. package/dist/tools/consolidated-tool-handlers.d.ts +1 -1
  112. package/dist/tools/consolidated-tool-handlers.d.ts.map +1 -0
  113. package/dist/tools/consolidated-tool-handlers.js +26 -21
  114. package/dist/tools/consolidated-tool-handlers.js.map +1 -0
  115. package/dist/tools/debug.d.ts +25 -7
  116. package/dist/tools/debug.d.ts.map +1 -0
  117. package/dist/tools/debug.js +3 -1
  118. package/dist/tools/debug.js.map +1 -0
  119. package/dist/tools/dynamic-handler-registry.d.ts +1 -1
  120. package/dist/tools/dynamic-handler-registry.d.ts.map +1 -0
  121. package/dist/tools/dynamic-handler-registry.js +3 -1
  122. package/dist/tools/dynamic-handler-registry.js.map +1 -0
  123. package/dist/tools/editor.d.ts.map +1 -0
  124. package/dist/tools/editor.js +8 -6
  125. package/dist/tools/editor.js.map +1 -0
  126. package/dist/tools/engine.d.ts +1 -1
  127. package/dist/tools/engine.d.ts.map +1 -0
  128. package/dist/tools/engine.js +4 -2
  129. package/dist/tools/engine.js.map +1 -0
  130. package/dist/tools/environment.d.ts.map +1 -0
  131. package/dist/tools/environment.js +4 -3
  132. package/dist/tools/environment.js.map +1 -0
  133. package/dist/tools/foliage.d.ts.map +1 -0
  134. package/dist/tools/foliage.js +8 -8
  135. package/dist/tools/foliage.js.map +1 -0
  136. package/dist/tools/handlers/actor-handlers.d.ts +2 -1
  137. package/dist/tools/handlers/actor-handlers.d.ts.map +1 -0
  138. package/dist/tools/handlers/actor-handlers.js +56 -33
  139. package/dist/tools/handlers/actor-handlers.js.map +1 -0
  140. package/dist/tools/handlers/animation-handlers.d.ts +2 -1
  141. package/dist/tools/handlers/animation-handlers.d.ts.map +1 -0
  142. package/dist/tools/handlers/animation-handlers.js +74 -67
  143. package/dist/tools/handlers/animation-handlers.js.map +1 -0
  144. package/dist/tools/handlers/argument-helper.d.ts +24 -4
  145. package/dist/tools/handlers/argument-helper.d.ts.map +1 -0
  146. package/dist/tools/handlers/argument-helper.js +139 -4
  147. package/dist/tools/handlers/argument-helper.js.map +1 -0
  148. package/dist/tools/handlers/asset-handlers.d.ts +2 -1
  149. package/dist/tools/handlers/asset-handlers.d.ts.map +1 -0
  150. package/dist/tools/handlers/asset-handlers.js +155 -94
  151. package/dist/tools/handlers/asset-handlers.js.map +1 -0
  152. package/dist/tools/handlers/audio-handlers.d.ts +2 -1
  153. package/dist/tools/handlers/audio-handlers.d.ts.map +1 -0
  154. package/dist/tools/handlers/audio-handlers.js +82 -80
  155. package/dist/tools/handlers/audio-handlers.js.map +1 -0
  156. package/dist/tools/handlers/blueprint-handlers.d.ts +3 -5
  157. package/dist/tools/handlers/blueprint-handlers.d.ts.map +1 -0
  158. package/dist/tools/handlers/blueprint-handlers.js +150 -142
  159. package/dist/tools/handlers/blueprint-handlers.js.map +1 -0
  160. package/dist/tools/handlers/common-handlers.d.ts +2 -3
  161. package/dist/tools/handlers/common-handlers.d.ts.map +1 -0
  162. package/dist/tools/handlers/common-handlers.js.map +1 -0
  163. package/dist/tools/handlers/editor-handlers.d.ts.map +1 -0
  164. package/dist/tools/handlers/editor-handlers.js +12 -2
  165. package/dist/tools/handlers/editor-handlers.js.map +1 -0
  166. package/dist/tools/handlers/effect-handlers.d.ts +2 -1
  167. package/dist/tools/handlers/effect-handlers.d.ts.map +1 -0
  168. package/dist/tools/handlers/effect-handlers.js +70 -68
  169. package/dist/tools/handlers/effect-handlers.js.map +1 -0
  170. package/dist/tools/handlers/environment-handlers.d.ts +2 -1
  171. package/dist/tools/handlers/environment-handlers.d.ts.map +1 -0
  172. package/dist/tools/handlers/environment-handlers.js +86 -74
  173. package/dist/tools/handlers/environment-handlers.js.map +1 -0
  174. package/dist/tools/handlers/graph-handlers.d.ts +1 -1
  175. package/dist/tools/handlers/graph-handlers.d.ts.map +1 -0
  176. package/dist/tools/handlers/graph-handlers.js +63 -2
  177. package/dist/tools/handlers/graph-handlers.js.map +1 -0
  178. package/dist/tools/handlers/input-handlers.d.ts +2 -5
  179. package/dist/tools/handlers/input-handlers.d.ts.map +1 -0
  180. package/dist/tools/handlers/input-handlers.js +5 -4
  181. package/dist/tools/handlers/input-handlers.js.map +1 -0
  182. package/dist/tools/handlers/inspect-handlers.d.ts +2 -1
  183. package/dist/tools/handlers/inspect-handlers.d.ts.map +1 -0
  184. package/dist/tools/handlers/inspect-handlers.js +61 -37
  185. package/dist/tools/handlers/inspect-handlers.js.map +1 -0
  186. package/dist/tools/handlers/level-handlers.d.ts +2 -2
  187. package/dist/tools/handlers/level-handlers.d.ts.map +1 -0
  188. package/dist/tools/handlers/level-handlers.js +43 -39
  189. package/dist/tools/handlers/level-handlers.js.map +1 -0
  190. package/dist/tools/handlers/lighting-handlers.d.ts +12 -1
  191. package/dist/tools/handlers/lighting-handlers.d.ts.map +1 -0
  192. package/dist/tools/handlers/lighting-handlers.js +90 -47
  193. package/dist/tools/handlers/lighting-handlers.js.map +1 -0
  194. package/dist/tools/handlers/performance-handlers.d.ts +2 -1
  195. package/dist/tools/handlers/performance-handlers.d.ts.map +1 -0
  196. package/dist/tools/handlers/performance-handlers.js +55 -40
  197. package/dist/tools/handlers/performance-handlers.js.map +1 -0
  198. package/dist/tools/handlers/pipeline-handlers.d.ts.map +1 -0
  199. package/dist/tools/handlers/pipeline-handlers.js.map +1 -0
  200. package/dist/tools/handlers/sequence-handlers.d.ts.map +1 -0
  201. package/dist/tools/handlers/sequence-handlers.js.map +1 -0
  202. package/dist/tools/handlers/system-handlers.d.ts +3 -2
  203. package/dist/tools/handlers/system-handlers.d.ts.map +1 -0
  204. package/dist/tools/handlers/system-handlers.js +105 -52
  205. package/dist/tools/handlers/system-handlers.js.map +1 -0
  206. package/dist/tools/input.d.ts.map +1 -0
  207. package/dist/tools/input.js +3 -1
  208. package/dist/tools/input.js.map +1 -0
  209. package/dist/tools/introspection.d.ts +14 -14
  210. package/dist/tools/introspection.d.ts.map +1 -0
  211. package/dist/tools/introspection.js +54 -45
  212. package/dist/tools/introspection.js.map +1 -0
  213. package/dist/tools/landscape.d.ts.map +1 -0
  214. package/dist/tools/landscape.js +15 -13
  215. package/dist/tools/landscape.js.map +1 -0
  216. package/dist/tools/level.d.ts.map +1 -0
  217. package/dist/tools/level.js +3 -2
  218. package/dist/tools/level.js.map +1 -0
  219. package/dist/tools/lighting.d.ts +32 -59
  220. package/dist/tools/lighting.d.ts.map +1 -0
  221. package/dist/tools/lighting.js +56 -19
  222. package/dist/tools/lighting.js.map +1 -0
  223. package/dist/tools/logs.d.ts.map +1 -0
  224. package/dist/tools/logs.js +2 -1
  225. package/dist/tools/logs.js.map +1 -0
  226. package/dist/tools/materials.d.ts +42 -14
  227. package/dist/tools/materials.d.ts.map +1 -0
  228. package/dist/tools/materials.js +15 -9
  229. package/dist/tools/materials.js.map +1 -0
  230. package/dist/tools/niagara.d.ts +63 -39
  231. package/dist/tools/niagara.d.ts.map +1 -0
  232. package/dist/tools/niagara.js +43 -33
  233. package/dist/tools/niagara.js.map +1 -0
  234. package/dist/tools/performance.d.ts +12 -11
  235. package/dist/tools/performance.d.ts.map +1 -0
  236. package/dist/tools/performance.js +3 -2
  237. package/dist/tools/performance.js.map +1 -0
  238. package/dist/tools/physics.d.ts +37 -20
  239. package/dist/tools/physics.d.ts.map +1 -0
  240. package/dist/tools/physics.js +37 -30
  241. package/dist/tools/physics.js.map +1 -0
  242. package/dist/tools/property-dictionary.d.ts.map +1 -0
  243. package/dist/tools/property-dictionary.js.map +1 -0
  244. package/dist/tools/sequence.d.ts +1 -1
  245. package/dist/tools/sequence.d.ts.map +1 -0
  246. package/dist/tools/sequence.js +8 -4
  247. package/dist/tools/sequence.js.map +1 -0
  248. package/dist/tools/tool-definition-utils.d.ts.map +1 -0
  249. package/dist/tools/tool-definition-utils.js.map +1 -0
  250. package/dist/tools/ui.d.ts +11 -11
  251. package/dist/tools/ui.d.ts.map +1 -0
  252. package/dist/tools/ui.js +7 -3
  253. package/dist/tools/ui.js.map +1 -0
  254. package/dist/types/automation-responses.d.ts.map +1 -0
  255. package/dist/types/automation-responses.js.map +1 -0
  256. package/dist/types/env.d.ts.map +1 -0
  257. package/dist/types/env.js.map +1 -0
  258. package/dist/types/handler-types.d.ts +112 -3
  259. package/dist/types/handler-types.d.ts.map +1 -0
  260. package/dist/types/handler-types.js.map +1 -0
  261. package/dist/types/tool-interfaces.d.ts +39 -21
  262. package/dist/types/tool-interfaces.d.ts.map +1 -0
  263. package/dist/types/tool-interfaces.js.map +1 -0
  264. package/dist/types/tool-types.d.ts +8 -8
  265. package/dist/types/tool-types.d.ts.map +1 -0
  266. package/dist/types/tool-types.js.map +1 -0
  267. package/dist/unreal-bridge.d.ts +8 -6
  268. package/dist/unreal-bridge.d.ts.map +1 -0
  269. package/dist/unreal-bridge.js +16 -3
  270. package/dist/unreal-bridge.js.map +1 -0
  271. package/dist/utils/command-validator.d.ts.map +1 -0
  272. package/dist/utils/command-validator.js.map +1 -0
  273. package/dist/utils/elicitation.d.ts +2 -5
  274. package/dist/utils/elicitation.d.ts.map +1 -0
  275. package/dist/utils/elicitation.js +3 -2
  276. package/dist/utils/elicitation.js.map +1 -0
  277. package/dist/utils/error-handler.d.ts.map +1 -0
  278. package/dist/utils/error-handler.js.map +1 -0
  279. package/dist/utils/ini-reader.d.ts +1 -1
  280. package/dist/utils/ini-reader.d.ts.map +1 -0
  281. package/dist/utils/ini-reader.js.map +1 -0
  282. package/dist/utils/logger.d.ts +4 -4
  283. package/dist/utils/logger.d.ts.map +1 -0
  284. package/dist/utils/logger.js.map +1 -0
  285. package/dist/utils/normalize.d.ts +2 -2
  286. package/dist/utils/normalize.d.ts.map +1 -0
  287. package/dist/utils/normalize.js +4 -3
  288. package/dist/utils/normalize.js.map +1 -0
  289. package/dist/utils/path-security.d.ts.map +1 -0
  290. package/dist/utils/path-security.js.map +1 -0
  291. package/dist/utils/response-factory.d.ts +2 -2
  292. package/dist/utils/response-factory.d.ts.map +1 -0
  293. package/dist/utils/response-factory.js +3 -1
  294. package/dist/utils/response-factory.js.map +1 -0
  295. package/dist/utils/response-validator.d.ts +4 -4
  296. package/dist/utils/response-validator.d.ts.map +1 -0
  297. package/dist/utils/response-validator.js +31 -23
  298. package/dist/utils/response-validator.js.map +1 -0
  299. package/dist/utils/result-helpers.d.ts.map +1 -0
  300. package/dist/utils/result-helpers.js.map +1 -0
  301. package/dist/utils/safe-json.d.ts.map +1 -0
  302. package/dist/utils/safe-json.js.map +1 -0
  303. package/dist/utils/unreal-command-queue.d.ts +2 -2
  304. package/dist/utils/unreal-command-queue.d.ts.map +1 -0
  305. package/dist/utils/unreal-command-queue.js +4 -3
  306. package/dist/utils/unreal-command-queue.js.map +1 -0
  307. package/dist/utils/validation.d.ts +1 -1
  308. package/dist/utils/validation.d.ts.map +1 -0
  309. package/dist/utils/validation.js.map +1 -0
  310. package/dist/wasm/index.d.ts +2 -2
  311. package/dist/wasm/index.d.ts.map +1 -0
  312. package/dist/wasm/index.js +11 -7
  313. package/dist/wasm/index.js.map +1 -0
  314. package/package.json +12 -34
  315. package/server.json +2 -2
  316. package/.dockerignore +0 -57
  317. package/.env.example +0 -26
  318. package/.env.production +0 -61
  319. package/.eslintrc.json +0 -0
  320. package/.eslintrc.override.json +0 -8
  321. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -94
  322. package/.github/ISSUE_TEMPLATE/config.yml +0 -8
  323. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -56
  324. package/.github/copilot-instructions.md +0 -478
  325. package/.github/dependabot.yml +0 -19
  326. package/.github/labeler.yml +0 -24
  327. package/.github/labels.yml +0 -70
  328. package/.github/pull_request_template.md +0 -42
  329. package/.github/release-drafter-config.yml +0 -51
  330. package/.github/workflows/auto-merge.yml +0 -38
  331. package/.github/workflows/ci.yml +0 -38
  332. package/.github/workflows/dependency-review.yml +0 -17
  333. package/.github/workflows/gemini-issue-triage.yml +0 -172
  334. package/.github/workflows/greetings.yml +0 -27
  335. package/.github/workflows/labeler.yml +0 -17
  336. package/.github/workflows/links.yml +0 -80
  337. package/.github/workflows/pr-size-labeler.yml +0 -137
  338. package/.github/workflows/publish-mcp.yml +0 -79
  339. package/.github/workflows/release-drafter.yml +0 -24
  340. package/.github/workflows/release.yml +0 -112
  341. package/.github/workflows/semantic-pull-request.yml +0 -35
  342. package/.github/workflows/smoke-test.yml +0 -36
  343. package/.github/workflows/stale.yml +0 -28
  344. package/CONTRIBUTING.md +0 -140
  345. package/Dockerfile +0 -37
  346. package/GEMINI.md +0 -115
  347. package/Public/Plugin_setup_guide.mp4 +0 -0
  348. package/Public/icon.png +0 -0
  349. package/claude_desktop_config_example.json +0 -15
  350. package/dist/types/responses.d.ts +0 -249
  351. package/dist/types/responses.js +0 -2
  352. package/docs/GraphQL-API.md +0 -888
  353. package/docs/Migration-Guide-v0.5.0.md +0 -684
  354. package/docs/Roadmap.md +0 -53
  355. package/docs/WebAssembly-Integration.md +0 -628
  356. package/docs/editor-plugin-extension.md +0 -370
  357. package/docs/handler-mapping.md +0 -249
  358. package/docs/native-automation-progress.md +0 -128
  359. package/docs/testing-guide.md +0 -423
  360. package/eslint.config.mjs +0 -68
  361. package/mcp-config-example.json +0 -14
  362. package/plugins/McpAutomationBridge/Config/FilterPlugin.ini +0 -8
  363. package/plugins/McpAutomationBridge/McpAutomationBridge.uplugin +0 -64
  364. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/McpAutomationBridge.Build.cs +0 -189
  365. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeGlobals.cpp +0 -22
  366. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeGlobals.h +0 -30
  367. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeHelpers.h +0 -1983
  368. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeModule.cpp +0 -72
  369. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeSettings.cpp +0 -46
  370. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeSubsystem.cpp +0 -846
  371. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AnimationHandlers.cpp +0 -2393
  372. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AssetQueryHandlers.cpp +0 -300
  373. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AssetWorkflowHandlers.cpp +0 -2807
  374. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AudioHandlers.cpp +0 -1087
  375. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BehaviorTreeHandlers.cpp +0 -488
  376. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintCreationHandlers.cpp +0 -643
  377. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintCreationHandlers.h +0 -31
  378. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintGraphHandlers.cpp +0 -1094
  379. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintHandlers.cpp +0 -5750
  380. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintHandlers_List.cpp +0 -152
  381. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_ControlHandlers.cpp +0 -2614
  382. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_DebugHandlers.cpp +0 -42
  383. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EditorFunctionHandlers.cpp +0 -1237
  384. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EffectHandlers.cpp +0 -1725
  385. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EnvironmentHandlers.cpp +0 -2265
  386. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_FoliageHandlers.cpp +0 -954
  387. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_InputHandlers.cpp +0 -209
  388. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_InsightsHandlers.cpp +0 -41
  389. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LandscapeHandlers.cpp +0 -1164
  390. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LevelHandlers.cpp +0 -762
  391. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LightingHandlers.cpp +0 -663
  392. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LogHandlers.cpp +0 -136
  393. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_MaterialGraphHandlers.cpp +0 -494
  394. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_NiagaraGraphHandlers.cpp +0 -278
  395. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_NiagaraHandlers.cpp +0 -625
  396. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PerformanceHandlers.cpp +0 -401
  397. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PipelineHandlers.cpp +0 -67
  398. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_ProcessRequest.cpp +0 -472
  399. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PropertyHandlers.cpp +0 -2634
  400. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_RenderHandlers.cpp +0 -189
  401. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SCSHandlers.cpp +0 -917
  402. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SCSHandlers.h +0 -39
  403. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SequenceHandlers.cpp +0 -2706
  404. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SequencerHandlers.cpp +0 -519
  405. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_TestHandlers.cpp +0 -38
  406. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_UiHandlers.cpp +0 -668
  407. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_WorldPartitionHandlers.cpp +0 -346
  408. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpBridgeWebSocket.cpp +0 -1345
  409. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpBridgeWebSocket.h +0 -149
  410. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpConnectionManager.cpp +0 -782
  411. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpAutomationBridgeSettings.h +0 -115
  412. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpAutomationBridgeSubsystem.h +0 -796
  413. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpConnectionManager.h +0 -117
  414. package/scripts/check-unreal-connection.mjs +0 -19
  415. package/scripts/clean-tmp.js +0 -23
  416. package/scripts/patch-wasm.js +0 -26
  417. package/scripts/run-all-tests.mjs +0 -136
  418. package/scripts/smoke-test.ts +0 -94
  419. package/scripts/sync-mcp-plugin.js +0 -143
  420. package/scripts/test-no-plugin-alternates.mjs +0 -113
  421. package/scripts/validate-server.js +0 -46
  422. package/scripts/verify-automation-bridge.js +0 -200
  423. package/src/automation/bridge.ts +0 -630
  424. package/src/automation/connection-manager.ts +0 -148
  425. package/src/automation/handshake.ts +0 -99
  426. package/src/automation/index.ts +0 -2
  427. package/src/automation/message-handler.ts +0 -192
  428. package/src/automation/request-tracker.ts +0 -155
  429. package/src/automation/types.ts +0 -108
  430. package/src/cli.ts +0 -34
  431. package/src/config/class-aliases.ts +0 -65
  432. package/src/config.ts +0 -73
  433. package/src/constants.ts +0 -29
  434. package/src/graphql/loaders.ts +0 -244
  435. package/src/graphql/resolvers.ts +0 -1008
  436. package/src/graphql/schema.ts +0 -452
  437. package/src/graphql/server.ts +0 -156
  438. package/src/graphql/types.ts +0 -10
  439. package/src/handlers/resource-handlers.ts +0 -186
  440. package/src/index.ts +0 -243
  441. package/src/resources/actors.ts +0 -127
  442. package/src/resources/assets.ts +0 -286
  443. package/src/resources/levels.ts +0 -68
  444. package/src/server/resource-registry.ts +0 -47
  445. package/src/server/tool-registry.ts +0 -354
  446. package/src/server-setup.ts +0 -114
  447. package/src/services/health-monitor.ts +0 -132
  448. package/src/services/metrics-server.ts +0 -176
  449. package/src/tools/actors.ts +0 -564
  450. package/src/tools/animation.ts +0 -941
  451. package/src/tools/assets.ts +0 -394
  452. package/src/tools/audio.ts +0 -499
  453. package/src/tools/base-tool.ts +0 -52
  454. package/src/tools/behavior-tree.ts +0 -45
  455. package/src/tools/blueprint.ts +0 -940
  456. package/src/tools/consolidated-tool-definitions.ts +0 -1256
  457. package/src/tools/consolidated-tool-handlers.ts +0 -302
  458. package/src/tools/debug.ts +0 -622
  459. package/src/tools/dynamic-handler-registry.ts +0 -33
  460. package/src/tools/editor.ts +0 -435
  461. package/src/tools/engine.ts +0 -43
  462. package/src/tools/environment.ts +0 -281
  463. package/src/tools/foliage.ts +0 -596
  464. package/src/tools/handlers/actor-handlers.ts +0 -244
  465. package/src/tools/handlers/animation-handlers.ts +0 -237
  466. package/src/tools/handlers/argument-helper.ts +0 -142
  467. package/src/tools/handlers/asset-handlers.ts +0 -550
  468. package/src/tools/handlers/audio-handlers.ts +0 -194
  469. package/src/tools/handlers/blueprint-handlers.ts +0 -380
  470. package/src/tools/handlers/common-handlers.ts +0 -108
  471. package/src/tools/handlers/editor-handlers.ts +0 -124
  472. package/src/tools/handlers/effect-handlers.ts +0 -224
  473. package/src/tools/handlers/environment-handlers.ts +0 -183
  474. package/src/tools/handlers/graph-handlers.ts +0 -117
  475. package/src/tools/handlers/input-handlers.ts +0 -28
  476. package/src/tools/handlers/inspect-handlers.ts +0 -450
  477. package/src/tools/handlers/level-handlers.ts +0 -253
  478. package/src/tools/handlers/lighting-handlers.ts +0 -151
  479. package/src/tools/handlers/performance-handlers.ts +0 -132
  480. package/src/tools/handlers/pipeline-handlers.ts +0 -194
  481. package/src/tools/handlers/sequence-handlers.ts +0 -438
  482. package/src/tools/handlers/system-handlers.ts +0 -564
  483. package/src/tools/input.ts +0 -160
  484. package/src/tools/introspection.ts +0 -689
  485. package/src/tools/landscape.ts +0 -649
  486. package/src/tools/level.ts +0 -989
  487. package/src/tools/lighting.ts +0 -1052
  488. package/src/tools/logs.ts +0 -219
  489. package/src/tools/materials.ts +0 -295
  490. package/src/tools/niagara.ts +0 -485
  491. package/src/tools/performance.ts +0 -661
  492. package/src/tools/physics.ts +0 -679
  493. package/src/tools/property-dictionary.ts +0 -98
  494. package/src/tools/sequence.ts +0 -385
  495. package/src/tools/tool-definition-utils.ts +0 -35
  496. package/src/tools/ui.ts +0 -452
  497. package/src/types/automation-responses.ts +0 -119
  498. package/src/types/env.ts +0 -17
  499. package/src/types/handler-types.ts +0 -442
  500. package/src/types/responses.ts +0 -355
  501. package/src/types/tool-interfaces.ts +0 -250
  502. package/src/types/tool-types.ts +0 -575
  503. package/src/unreal-bridge.ts +0 -693
  504. package/src/utils/command-validator.ts +0 -139
  505. package/src/utils/elicitation.ts +0 -132
  506. package/src/utils/error-handler.ts +0 -287
  507. package/src/utils/ini-reader.ts +0 -86
  508. package/src/utils/logger.ts +0 -35
  509. package/src/utils/normalize.test.ts +0 -162
  510. package/src/utils/normalize.ts +0 -146
  511. package/src/utils/path-security.ts +0 -43
  512. package/src/utils/response-factory.ts +0 -44
  513. package/src/utils/response-validator.ts +0 -395
  514. package/src/utils/result-helpers.ts +0 -195
  515. package/src/utils/safe-json.test.ts +0 -90
  516. package/src/utils/safe-json.ts +0 -70
  517. package/src/utils/unreal-command-queue.ts +0 -166
  518. package/src/utils/validation.test.ts +0 -184
  519. package/src/utils/validation.ts +0 -312
  520. package/src/wasm/index.ts +0 -838
  521. package/test-server.mjs +0 -100
  522. package/tests/test-animation.mjs +0 -369
  523. package/tests/test-asset-advanced.mjs +0 -82
  524. package/tests/test-asset-graph.mjs +0 -311
  525. package/tests/test-audio.mjs +0 -417
  526. package/tests/test-automation-timeouts.mjs +0 -98
  527. package/tests/test-behavior-tree.mjs +0 -444
  528. package/tests/test-blueprint-graph.mjs +0 -410
  529. package/tests/test-blueprint.mjs +0 -577
  530. package/tests/test-client-mode.mjs +0 -86
  531. package/tests/test-console-command.mjs +0 -56
  532. package/tests/test-control-actor.mjs +0 -425
  533. package/tests/test-control-editor.mjs +0 -112
  534. package/tests/test-graphql.mjs +0 -372
  535. package/tests/test-input.mjs +0 -349
  536. package/tests/test-inspect.mjs +0 -302
  537. package/tests/test-landscape.mjs +0 -316
  538. package/tests/test-lighting.mjs +0 -428
  539. package/tests/test-manage-asset.mjs +0 -438
  540. package/tests/test-manage-level.mjs +0 -89
  541. package/tests/test-materials.mjs +0 -356
  542. package/tests/test-niagara.mjs +0 -185
  543. package/tests/test-no-inline-python.mjs +0 -122
  544. package/tests/test-performance.mjs +0 -539
  545. package/tests/test-plugin-handshake.mjs +0 -82
  546. package/tests/test-runner.mjs +0 -993
  547. package/tests/test-sequence.mjs +0 -104
  548. package/tests/test-system.mjs +0 -96
  549. package/tests/test-wasm.mjs +0 -283
  550. package/tests/test-world-partition.mjs +0 -215
  551. package/tsconfig.json +0 -56
  552. package/vitest.config.ts +0 -35
  553. package/wasm/Cargo.lock +0 -363
  554. package/wasm/Cargo.toml +0 -42
  555. package/wasm/LICENSE +0 -21
  556. package/wasm/README.md +0 -253
  557. package/wasm/src/dependency_resolver.rs +0 -377
  558. package/wasm/src/lib.rs +0 -153
  559. package/wasm/src/property_parser.rs +0 -271
  560. package/wasm/src/transform_math.rs +0 -396
  561. package/wasm/tests/integration.rs +0 -109
@@ -1,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/**/*'
@@ -1,70 +0,0 @@
1
- # Repository Labels
2
- # Run: gh label create "label-name" --description "desc" --color "hex"
3
-
4
- # Area labels (for issue triage)
5
- - name: "area/plugin"
6
- description: "C++ McpAutomationBridge plugin issues"
7
- color: "1d76db"
8
-
9
- - name: "area/server"
10
- description: "Node.js MCP server issues"
11
- color: "0e8a16"
12
-
13
- - name: "area/tools"
14
- description: "Tool implementation issues"
15
- color: "5319e7"
16
-
17
- - name: "area/testing"
18
- description: "Test infrastructure issues"
19
- color: "fbca04"
20
-
21
- - name: "area/docs"
22
- description: "Documentation issues"
23
- color: "0075ca"
24
-
25
- # Type labels
26
- - name: "type/bug"
27
- description: "Bug reports"
28
- color: "d73a4a"
29
-
30
- - name: "type/enhancement"
31
- description: "Feature requests"
32
- color: "a2eeef"
33
-
34
- - name: "type/question"
35
- description: "Questions or support"
36
- color: "d876e3"
37
-
38
- # Size labels (for PRs)
39
- - name: "size/xs"
40
- description: "Extra small PR (<10 lines)"
41
- color: "3CBF00"
42
-
43
- - name: "size/s"
44
- description: "Small PR (10-50 lines)"
45
- color: "5D9801"
46
-
47
- - name: "size/m"
48
- description: "Medium PR (51-200 lines)"
49
- color: "7F7203"
50
-
51
- - name: "size/l"
52
- description: "Large PR (201-1000 lines)"
53
- color: "A14C05"
54
-
55
- - name: "size/xl"
56
- description: "Extra large PR (1000+ lines)"
57
- color: "C32607"
58
-
59
- # Status labels
60
- - name: "needs-triage"
61
- description: "Needs triage by maintainers"
62
- color: "ededed"
63
-
64
- - name: "stale"
65
- description: "Inactive issue/PR"
66
- color: "fef2c0"
67
-
68
- - name: "pinned"
69
- description: "Exempt from stale bot"
70
- color: "006b75"
@@ -1,42 +0,0 @@
1
- ## Summary
2
-
3
- <!-- Concisely describe what this PR changes and why. Focus on impact. -->
4
-
5
- ## Changes
6
-
7
- <!-- List the key changes made in this PR. -->
8
-
9
- -
10
-
11
- ## Related Issues
12
-
13
- <!-- Use keywords to auto-close issues (Closes #123, Fixes #456).
14
- If only related, use: Related to #123 -->
15
-
16
- ## Type of Change
17
-
18
- <!-- Check all that apply -->
19
-
20
- - [ ] ๐Ÿ› Bug fix (non-breaking change that fixes an issue)
21
- - [ ] โœจ New feature (non-breaking change that adds functionality)
22
- - [ ] ๐Ÿ’ฅ Breaking change (fix or feature that would cause existing functionality to change)
23
- - [ ] ๐Ÿ“š Documentation update
24
- - [ ] ๐Ÿ”ง Configuration/build change
25
- - [ ] โ™ป๏ธ Refactoring (no functional changes)
26
- - [ ] ๐Ÿงช Test addition/update
27
-
28
- ## Testing
29
-
30
- <!-- Describe how to test these changes -->
31
-
32
- - [ ] Tested with Unreal Engine (version: ___)
33
- - [ ] Tested MCP client integration (client: ___)
34
- - [ ] Added/updated tests
35
-
36
- ## Pre-Merge Checklist
37
-
38
- - [ ] Code follows project style guidelines
39
- - [ ] Self-reviewed the code
40
- - [ ] Updated relevant documentation (if needed)
41
- - [ ] Added/updated tests (if applicable)
42
- - [ ] CI passes
@@ -1,51 +0,0 @@
1
- name-template: 'v$NEXT_PATCH_VERSION'
2
- tag-template: 'v$NEXT_PATCH_VERSION'
3
- categories:
4
- - title: '๐Ÿš€ Features'
5
- labels:
6
- - 'type/enhancement'
7
- - 'feature'
8
- - 'enhancement'
9
- - title: '๐Ÿ› Bug Fixes'
10
- labels:
11
- - 'type/bug'
12
- - 'bug'
13
- - 'fix'
14
- - title: '๐Ÿ“š Documentation'
15
- labels:
16
- - 'area/docs'
17
- - 'documentation'
18
- - title: '๐Ÿงฐ Tools'
19
- labels:
20
- - 'area/tools'
21
- - 'tooling'
22
- - title: '๐Ÿ”Œ Plugin'
23
- labels:
24
- - 'area/plugin'
25
- - title: '๐Ÿงช Testing'
26
- labels:
27
- - 'area/testing'
28
- - 'test'
29
- - title: '๐Ÿ“ฆ Maintenance'
30
- labels:
31
- - 'chore'
32
- - 'maintenance'
33
- change-template: '- $TITLE @$AUTHOR (#$NUMBER)'
34
- change-title-escapes: '\<*_&'
35
- version-resolver:
36
- major:
37
- labels:
38
- - 'major'
39
- minor:
40
- labels:
41
- - 'minor'
42
- patch:
43
- labels:
44
- - 'patch'
45
- - 'type/bug'
46
- - 'bug'
47
- default: patch
48
- template: |
49
- ## Changes in this Release
50
-
51
- $CHANGES