unreal-engine-mcp-server 0.5.4 → 0.5.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (468) hide show
  1. package/dist/automation/bridge.d.ts.map +1 -0
  2. package/dist/automation/bridge.js.map +1 -0
  3. package/dist/automation/connection-manager.d.ts.map +1 -0
  4. package/dist/automation/connection-manager.js.map +1 -0
  5. package/dist/automation/handshake.d.ts.map +1 -0
  6. package/dist/automation/handshake.js.map +1 -0
  7. package/dist/automation/index.d.ts.map +1 -0
  8. package/dist/automation/index.js.map +1 -0
  9. package/dist/automation/message-handler.d.ts.map +1 -0
  10. package/dist/automation/message-handler.js.map +1 -0
  11. package/dist/automation/request-tracker.d.ts.map +1 -0
  12. package/dist/automation/request-tracker.js.map +1 -0
  13. package/dist/automation/types.d.ts.map +1 -0
  14. package/dist/automation/types.js.map +1 -0
  15. package/dist/cli.d.ts.map +1 -0
  16. package/dist/cli.js +4 -3
  17. package/dist/cli.js.map +1 -0
  18. package/dist/config/class-aliases.d.ts.map +1 -0
  19. package/dist/config/class-aliases.js.map +1 -0
  20. package/dist/config.d.ts.map +1 -0
  21. package/dist/config.js.map +1 -0
  22. package/dist/constants.d.ts.map +1 -0
  23. package/dist/constants.js.map +1 -0
  24. package/dist/graphql/loaders.d.ts.map +1 -0
  25. package/dist/graphql/loaders.js.map +1 -0
  26. package/dist/graphql/resolvers.d.ts.map +1 -0
  27. package/dist/graphql/resolvers.js +29 -29
  28. package/dist/graphql/resolvers.js.map +1 -0
  29. package/dist/graphql/schema.d.ts.map +1 -0
  30. package/dist/graphql/schema.js.map +1 -0
  31. package/dist/graphql/server.d.ts.map +1 -0
  32. package/dist/graphql/server.js.map +1 -0
  33. package/dist/graphql/types.d.ts.map +1 -0
  34. package/dist/graphql/types.js.map +1 -0
  35. package/dist/handlers/resource-handlers.d.ts.map +1 -0
  36. package/dist/handlers/resource-handlers.js.map +1 -0
  37. package/dist/index.d.ts +1 -0
  38. package/dist/index.d.ts.map +1 -0
  39. package/dist/index.js +64 -7
  40. package/dist/index.js.map +1 -0
  41. package/dist/resources/actors.d.ts.map +1 -0
  42. package/dist/resources/actors.js.map +1 -0
  43. package/dist/resources/assets.d.ts.map +1 -0
  44. package/dist/resources/assets.js +6 -4
  45. package/dist/resources/assets.js.map +1 -0
  46. package/dist/resources/levels.d.ts.map +1 -0
  47. package/dist/resources/levels.js.map +1 -0
  48. package/dist/server/resource-registry.d.ts.map +1 -0
  49. package/dist/server/resource-registry.js.map +1 -0
  50. package/dist/server/tool-registry.d.ts.map +1 -0
  51. package/dist/server/tool-registry.js.map +1 -0
  52. package/dist/server-setup.d.ts.map +1 -0
  53. package/dist/server-setup.js.map +1 -0
  54. package/dist/services/health-monitor.d.ts.map +1 -0
  55. package/dist/services/health-monitor.js.map +1 -0
  56. package/dist/services/metrics-server.d.ts.map +1 -0
  57. package/dist/services/metrics-server.js.map +1 -0
  58. package/dist/tools/actors.d.ts.map +1 -0
  59. package/dist/tools/actors.js +3 -1
  60. package/dist/tools/actors.js.map +1 -0
  61. package/dist/tools/animation.d.ts.map +1 -0
  62. package/dist/tools/animation.js +2 -2
  63. package/dist/tools/animation.js.map +1 -0
  64. package/dist/tools/assets.d.ts.map +1 -0
  65. package/dist/tools/assets.js.map +1 -0
  66. package/dist/tools/audio.d.ts.map +1 -0
  67. package/dist/tools/audio.js.map +1 -0
  68. package/dist/tools/base-tool.d.ts.map +1 -0
  69. package/dist/tools/base-tool.js.map +1 -0
  70. package/dist/tools/behavior-tree.d.ts.map +1 -0
  71. package/dist/tools/behavior-tree.js.map +1 -0
  72. package/dist/tools/blueprint.d.ts.map +1 -0
  73. package/dist/tools/blueprint.js +4 -2
  74. package/dist/tools/blueprint.js.map +1 -0
  75. package/dist/tools/consolidated-tool-definitions.d.ts.map +1 -0
  76. package/dist/tools/consolidated-tool-definitions.js.map +1 -0
  77. package/dist/tools/consolidated-tool-handlers.d.ts.map +1 -0
  78. package/dist/tools/consolidated-tool-handlers.js.map +1 -0
  79. package/dist/tools/debug.d.ts.map +1 -0
  80. package/dist/tools/debug.js +3 -1
  81. package/dist/tools/debug.js.map +1 -0
  82. package/dist/tools/dynamic-handler-registry.d.ts.map +1 -0
  83. package/dist/tools/dynamic-handler-registry.js +3 -1
  84. package/dist/tools/dynamic-handler-registry.js.map +1 -0
  85. package/dist/tools/editor.d.ts.map +1 -0
  86. package/dist/tools/editor.js +1 -1
  87. package/dist/tools/editor.js.map +1 -0
  88. package/dist/tools/engine.d.ts.map +1 -0
  89. package/dist/tools/engine.js.map +1 -0
  90. package/dist/tools/environment.d.ts.map +1 -0
  91. package/dist/tools/environment.js +2 -2
  92. package/dist/tools/environment.js.map +1 -0
  93. package/dist/tools/foliage.d.ts.map +1 -0
  94. package/dist/tools/foliage.js.map +1 -0
  95. package/dist/tools/handlers/actor-handlers.d.ts +1 -1
  96. package/dist/tools/handlers/actor-handlers.d.ts.map +1 -0
  97. package/dist/tools/handlers/actor-handlers.js +6 -5
  98. package/dist/tools/handlers/actor-handlers.js.map +1 -0
  99. package/dist/tools/handlers/animation-handlers.d.ts.map +1 -0
  100. package/dist/tools/handlers/animation-handlers.js.map +1 -0
  101. package/dist/tools/handlers/argument-helper.d.ts.map +1 -0
  102. package/dist/tools/handlers/argument-helper.js.map +1 -0
  103. package/dist/tools/handlers/asset-handlers.d.ts.map +1 -0
  104. package/dist/tools/handlers/asset-handlers.js +5 -1
  105. package/dist/tools/handlers/asset-handlers.js.map +1 -0
  106. package/dist/tools/handlers/audio-handlers.d.ts.map +1 -0
  107. package/dist/tools/handlers/audio-handlers.js.map +1 -0
  108. package/dist/tools/handlers/blueprint-handlers.d.ts.map +1 -0
  109. package/dist/tools/handlers/blueprint-handlers.js +2 -1
  110. package/dist/tools/handlers/blueprint-handlers.js.map +1 -0
  111. package/dist/tools/handlers/common-handlers.d.ts.map +1 -0
  112. package/dist/tools/handlers/common-handlers.js.map +1 -0
  113. package/dist/tools/handlers/editor-handlers.d.ts.map +1 -0
  114. package/dist/tools/handlers/editor-handlers.js +12 -2
  115. package/dist/tools/handlers/editor-handlers.js.map +1 -0
  116. package/dist/tools/handlers/effect-handlers.d.ts.map +1 -0
  117. package/dist/tools/handlers/effect-handlers.js.map +1 -0
  118. package/dist/tools/handlers/environment-handlers.d.ts.map +1 -0
  119. package/dist/tools/handlers/environment-handlers.js.map +1 -0
  120. package/dist/tools/handlers/graph-handlers.d.ts.map +1 -0
  121. package/dist/tools/handlers/graph-handlers.js +61 -1
  122. package/dist/tools/handlers/graph-handlers.js.map +1 -0
  123. package/dist/tools/handlers/input-handlers.d.ts.map +1 -0
  124. package/dist/tools/handlers/input-handlers.js.map +1 -0
  125. package/dist/tools/handlers/inspect-handlers.d.ts.map +1 -0
  126. package/dist/tools/handlers/inspect-handlers.js.map +1 -0
  127. package/dist/tools/handlers/level-handlers.d.ts.map +1 -0
  128. package/dist/tools/handlers/level-handlers.js.map +1 -0
  129. package/dist/tools/handlers/lighting-handlers.d.ts.map +1 -0
  130. package/dist/tools/handlers/lighting-handlers.js +23 -1
  131. package/dist/tools/handlers/lighting-handlers.js.map +1 -0
  132. package/dist/tools/handlers/performance-handlers.d.ts.map +1 -0
  133. package/dist/tools/handlers/performance-handlers.js +15 -2
  134. package/dist/tools/handlers/performance-handlers.js.map +1 -0
  135. package/dist/tools/handlers/pipeline-handlers.d.ts.map +1 -0
  136. package/dist/tools/handlers/pipeline-handlers.js.map +1 -0
  137. package/dist/tools/handlers/sequence-handlers.d.ts.map +1 -0
  138. package/dist/tools/handlers/sequence-handlers.js.map +1 -0
  139. package/dist/tools/handlers/system-handlers.d.ts.map +1 -0
  140. package/dist/tools/handlers/system-handlers.js +16 -1
  141. package/dist/tools/handlers/system-handlers.js.map +1 -0
  142. package/dist/tools/input.d.ts.map +1 -0
  143. package/dist/tools/input.js +3 -1
  144. package/dist/tools/input.js.map +1 -0
  145. package/dist/tools/introspection.d.ts.map +1 -0
  146. package/dist/tools/introspection.js.map +1 -0
  147. package/dist/tools/landscape.d.ts.map +1 -0
  148. package/dist/tools/landscape.js +3 -1
  149. package/dist/tools/landscape.js.map +1 -0
  150. package/dist/tools/level.d.ts.map +1 -0
  151. package/dist/tools/level.js.map +1 -0
  152. package/dist/tools/lighting.d.ts.map +1 -0
  153. package/dist/tools/lighting.js +3 -1
  154. package/dist/tools/lighting.js.map +1 -0
  155. package/dist/tools/logs.d.ts.map +1 -0
  156. package/dist/tools/logs.js.map +1 -0
  157. package/dist/tools/materials.d.ts.map +1 -0
  158. package/dist/tools/materials.js +3 -1
  159. package/dist/tools/materials.js.map +1 -0
  160. package/dist/tools/niagara.d.ts.map +1 -0
  161. package/dist/tools/niagara.js +7 -5
  162. package/dist/tools/niagara.js.map +1 -0
  163. package/dist/tools/performance.d.ts.map +1 -0
  164. package/dist/tools/performance.js.map +1 -0
  165. package/dist/tools/physics.d.ts.map +1 -0
  166. package/dist/tools/physics.js +9 -7
  167. package/dist/tools/physics.js.map +1 -0
  168. package/dist/tools/property-dictionary.d.ts.map +1 -0
  169. package/dist/tools/property-dictionary.js.map +1 -0
  170. package/dist/tools/sequence.d.ts.map +1 -0
  171. package/dist/tools/sequence.js +3 -1
  172. package/dist/tools/sequence.js.map +1 -0
  173. package/dist/tools/tool-definition-utils.d.ts.map +1 -0
  174. package/dist/tools/tool-definition-utils.js.map +1 -0
  175. package/dist/tools/ui.d.ts.map +1 -0
  176. package/dist/tools/ui.js +3 -1
  177. package/dist/tools/ui.js.map +1 -0
  178. package/dist/types/automation-responses.d.ts.map +1 -0
  179. package/dist/types/automation-responses.js.map +1 -0
  180. package/dist/types/env.d.ts.map +1 -0
  181. package/dist/types/env.js.map +1 -0
  182. package/dist/types/handler-types.d.ts.map +1 -0
  183. package/dist/types/handler-types.js.map +1 -0
  184. package/dist/types/tool-interfaces.d.ts.map +1 -0
  185. package/dist/types/tool-interfaces.js.map +1 -0
  186. package/dist/types/tool-types.d.ts.map +1 -0
  187. package/dist/types/tool-types.js.map +1 -0
  188. package/dist/unreal-bridge.d.ts +1 -0
  189. package/dist/unreal-bridge.d.ts.map +1 -0
  190. package/dist/unreal-bridge.js +8 -0
  191. package/dist/unreal-bridge.js.map +1 -0
  192. package/dist/utils/command-validator.d.ts.map +1 -0
  193. package/dist/utils/command-validator.js.map +1 -0
  194. package/dist/utils/elicitation.d.ts.map +1 -0
  195. package/dist/utils/elicitation.js.map +1 -0
  196. package/dist/utils/error-handler.d.ts.map +1 -0
  197. package/dist/utils/error-handler.js.map +1 -0
  198. package/dist/utils/ini-reader.d.ts.map +1 -0
  199. package/dist/utils/ini-reader.js.map +1 -0
  200. package/dist/utils/logger.d.ts.map +1 -0
  201. package/dist/utils/logger.js.map +1 -0
  202. package/dist/utils/normalize.d.ts.map +1 -0
  203. package/dist/utils/normalize.js.map +1 -0
  204. package/dist/utils/path-security.d.ts.map +1 -0
  205. package/dist/utils/path-security.js.map +1 -0
  206. package/dist/utils/response-factory.d.ts.map +1 -0
  207. package/dist/utils/response-factory.js +3 -1
  208. package/dist/utils/response-factory.js.map +1 -0
  209. package/dist/utils/response-validator.d.ts.map +1 -0
  210. package/dist/utils/response-validator.js.map +1 -0
  211. package/dist/utils/result-helpers.d.ts.map +1 -0
  212. package/dist/utils/result-helpers.js.map +1 -0
  213. package/dist/utils/safe-json.d.ts.map +1 -0
  214. package/dist/utils/safe-json.js.map +1 -0
  215. package/dist/utils/unreal-command-queue.d.ts.map +1 -0
  216. package/dist/utils/unreal-command-queue.js.map +1 -0
  217. package/dist/utils/validation.d.ts.map +1 -0
  218. package/dist/utils/validation.js.map +1 -0
  219. package/dist/wasm/index.d.ts.map +1 -0
  220. package/dist/wasm/index.js.map +1 -0
  221. package/package.json +12 -34
  222. package/server.json +2 -2
  223. package/.dockerignore +0 -57
  224. package/.env.example +0 -26
  225. package/.env.production +0 -61
  226. package/.eslintrc.json +0 -0
  227. package/.eslintrc.override.json +0 -8
  228. package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -94
  229. package/.github/ISSUE_TEMPLATE/config.yml +0 -8
  230. package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -56
  231. package/.github/copilot-instructions.md +0 -478
  232. package/.github/dependabot.yml +0 -19
  233. package/.github/labeler.yml +0 -24
  234. package/.github/labels.yml +0 -70
  235. package/.github/pull_request_template.md +0 -42
  236. package/.github/release-drafter-config.yml +0 -51
  237. package/.github/workflows/auto-merge.yml +0 -38
  238. package/.github/workflows/ci.yml +0 -38
  239. package/.github/workflows/dependency-review.yml +0 -17
  240. package/.github/workflows/gemini-issue-triage.yml +0 -172
  241. package/.github/workflows/greetings.yml +0 -27
  242. package/.github/workflows/labeler.yml +0 -17
  243. package/.github/workflows/links.yml +0 -80
  244. package/.github/workflows/pr-size-labeler.yml +0 -137
  245. package/.github/workflows/publish-mcp.yml +0 -79
  246. package/.github/workflows/release-drafter.yml +0 -24
  247. package/.github/workflows/release.yml +0 -112
  248. package/.github/workflows/semantic-pull-request.yml +0 -35
  249. package/.github/workflows/smoke-test.yml +0 -36
  250. package/.github/workflows/stale.yml +0 -28
  251. package/CONTRIBUTING.md +0 -140
  252. package/Dockerfile +0 -37
  253. package/GEMINI.md +0 -115
  254. package/Public/Plugin_setup_guide.mp4 +0 -0
  255. package/Public/icon.png +0 -0
  256. package/claude_desktop_config_example.json +0 -15
  257. package/dist/types/responses.d.ts +0 -249
  258. package/dist/types/responses.js +0 -2
  259. package/docs/GraphQL-API.md +0 -888
  260. package/docs/Migration-Guide-v0.5.0.md +0 -684
  261. package/docs/Roadmap.md +0 -53
  262. package/docs/WebAssembly-Integration.md +0 -628
  263. package/docs/editor-plugin-extension.md +0 -370
  264. package/docs/handler-mapping.md +0 -249
  265. package/docs/native-automation-progress.md +0 -128
  266. package/docs/testing-guide.md +0 -423
  267. package/eslint.config.mjs +0 -68
  268. package/mcp-config-example.json +0 -14
  269. package/plugins/McpAutomationBridge/Config/FilterPlugin.ini +0 -8
  270. package/plugins/McpAutomationBridge/McpAutomationBridge.uplugin +0 -64
  271. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/McpAutomationBridge.Build.cs +0 -189
  272. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeGlobals.cpp +0 -22
  273. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeGlobals.h +0 -30
  274. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeHelpers.h +0 -1983
  275. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeModule.cpp +0 -72
  276. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeSettings.cpp +0 -46
  277. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeSubsystem.cpp +0 -846
  278. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AnimationHandlers.cpp +0 -2393
  279. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AssetQueryHandlers.cpp +0 -300
  280. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AssetWorkflowHandlers.cpp +0 -2807
  281. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AudioHandlers.cpp +0 -1087
  282. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BehaviorTreeHandlers.cpp +0 -488
  283. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintCreationHandlers.cpp +0 -643
  284. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintCreationHandlers.h +0 -31
  285. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintGraphHandlers.cpp +0 -1094
  286. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintHandlers.cpp +0 -5750
  287. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintHandlers_List.cpp +0 -152
  288. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_ControlHandlers.cpp +0 -2614
  289. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_DebugHandlers.cpp +0 -42
  290. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EditorFunctionHandlers.cpp +0 -1237
  291. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EffectHandlers.cpp +0 -1725
  292. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EnvironmentHandlers.cpp +0 -2265
  293. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_FoliageHandlers.cpp +0 -954
  294. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_InputHandlers.cpp +0 -209
  295. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_InsightsHandlers.cpp +0 -41
  296. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LandscapeHandlers.cpp +0 -1164
  297. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LevelHandlers.cpp +0 -762
  298. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LightingHandlers.cpp +0 -663
  299. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LogHandlers.cpp +0 -136
  300. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_MaterialGraphHandlers.cpp +0 -494
  301. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_NiagaraGraphHandlers.cpp +0 -278
  302. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_NiagaraHandlers.cpp +0 -625
  303. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PerformanceHandlers.cpp +0 -401
  304. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PipelineHandlers.cpp +0 -67
  305. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_ProcessRequest.cpp +0 -472
  306. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PropertyHandlers.cpp +0 -2634
  307. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_RenderHandlers.cpp +0 -189
  308. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SCSHandlers.cpp +0 -917
  309. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SCSHandlers.h +0 -39
  310. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SequenceHandlers.cpp +0 -2706
  311. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SequencerHandlers.cpp +0 -519
  312. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_TestHandlers.cpp +0 -38
  313. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_UiHandlers.cpp +0 -668
  314. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_WorldPartitionHandlers.cpp +0 -346
  315. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpBridgeWebSocket.cpp +0 -1345
  316. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpBridgeWebSocket.h +0 -149
  317. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpConnectionManager.cpp +0 -782
  318. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpAutomationBridgeSettings.h +0 -115
  319. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpAutomationBridgeSubsystem.h +0 -796
  320. package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpConnectionManager.h +0 -117
  321. package/scripts/check-unreal-connection.mjs +0 -19
  322. package/scripts/clean-tmp.js +0 -23
  323. package/scripts/patch-wasm.js +0 -26
  324. package/scripts/run-all-tests.mjs +0 -136
  325. package/scripts/smoke-test.ts +0 -94
  326. package/scripts/sync-mcp-plugin.js +0 -143
  327. package/scripts/test-no-plugin-alternates.mjs +0 -113
  328. package/scripts/validate-server.js +0 -46
  329. package/scripts/verify-automation-bridge.js +0 -200
  330. package/src/automation/bridge.ts +0 -630
  331. package/src/automation/connection-manager.ts +0 -148
  332. package/src/automation/handshake.ts +0 -99
  333. package/src/automation/index.ts +0 -2
  334. package/src/automation/message-handler.ts +0 -192
  335. package/src/automation/request-tracker.ts +0 -155
  336. package/src/automation/types.ts +0 -108
  337. package/src/cli.ts +0 -34
  338. package/src/config/class-aliases.ts +0 -65
  339. package/src/config.ts +0 -73
  340. package/src/constants.ts +0 -29
  341. package/src/graphql/loaders.ts +0 -244
  342. package/src/graphql/resolvers.ts +0 -1008
  343. package/src/graphql/schema.ts +0 -452
  344. package/src/graphql/server.ts +0 -156
  345. package/src/graphql/types.ts +0 -10
  346. package/src/handlers/resource-handlers.ts +0 -186
  347. package/src/index.ts +0 -243
  348. package/src/resources/actors.ts +0 -127
  349. package/src/resources/assets.ts +0 -286
  350. package/src/resources/levels.ts +0 -68
  351. package/src/server/resource-registry.ts +0 -47
  352. package/src/server/tool-registry.ts +0 -354
  353. package/src/server-setup.ts +0 -114
  354. package/src/services/health-monitor.ts +0 -132
  355. package/src/services/metrics-server.ts +0 -176
  356. package/src/tools/actors.ts +0 -564
  357. package/src/tools/animation.ts +0 -941
  358. package/src/tools/assets.ts +0 -394
  359. package/src/tools/audio.ts +0 -499
  360. package/src/tools/base-tool.ts +0 -52
  361. package/src/tools/behavior-tree.ts +0 -45
  362. package/src/tools/blueprint.ts +0 -940
  363. package/src/tools/consolidated-tool-definitions.ts +0 -1256
  364. package/src/tools/consolidated-tool-handlers.ts +0 -302
  365. package/src/tools/debug.ts +0 -622
  366. package/src/tools/dynamic-handler-registry.ts +0 -33
  367. package/src/tools/editor.ts +0 -435
  368. package/src/tools/engine.ts +0 -43
  369. package/src/tools/environment.ts +0 -281
  370. package/src/tools/foliage.ts +0 -596
  371. package/src/tools/handlers/actor-handlers.ts +0 -244
  372. package/src/tools/handlers/animation-handlers.ts +0 -237
  373. package/src/tools/handlers/argument-helper.ts +0 -142
  374. package/src/tools/handlers/asset-handlers.ts +0 -550
  375. package/src/tools/handlers/audio-handlers.ts +0 -194
  376. package/src/tools/handlers/blueprint-handlers.ts +0 -380
  377. package/src/tools/handlers/common-handlers.ts +0 -108
  378. package/src/tools/handlers/editor-handlers.ts +0 -124
  379. package/src/tools/handlers/effect-handlers.ts +0 -224
  380. package/src/tools/handlers/environment-handlers.ts +0 -183
  381. package/src/tools/handlers/graph-handlers.ts +0 -117
  382. package/src/tools/handlers/input-handlers.ts +0 -28
  383. package/src/tools/handlers/inspect-handlers.ts +0 -450
  384. package/src/tools/handlers/level-handlers.ts +0 -253
  385. package/src/tools/handlers/lighting-handlers.ts +0 -151
  386. package/src/tools/handlers/performance-handlers.ts +0 -132
  387. package/src/tools/handlers/pipeline-handlers.ts +0 -194
  388. package/src/tools/handlers/sequence-handlers.ts +0 -438
  389. package/src/tools/handlers/system-handlers.ts +0 -564
  390. package/src/tools/input.ts +0 -160
  391. package/src/tools/introspection.ts +0 -689
  392. package/src/tools/landscape.ts +0 -649
  393. package/src/tools/level.ts +0 -989
  394. package/src/tools/lighting.ts +0 -1052
  395. package/src/tools/logs.ts +0 -219
  396. package/src/tools/materials.ts +0 -295
  397. package/src/tools/niagara.ts +0 -485
  398. package/src/tools/performance.ts +0 -661
  399. package/src/tools/physics.ts +0 -679
  400. package/src/tools/property-dictionary.ts +0 -98
  401. package/src/tools/sequence.ts +0 -385
  402. package/src/tools/tool-definition-utils.ts +0 -35
  403. package/src/tools/ui.ts +0 -452
  404. package/src/types/automation-responses.ts +0 -119
  405. package/src/types/env.ts +0 -17
  406. package/src/types/handler-types.ts +0 -442
  407. package/src/types/responses.ts +0 -355
  408. package/src/types/tool-interfaces.ts +0 -250
  409. package/src/types/tool-types.ts +0 -575
  410. package/src/unreal-bridge.ts +0 -693
  411. package/src/utils/command-validator.ts +0 -139
  412. package/src/utils/elicitation.ts +0 -132
  413. package/src/utils/error-handler.ts +0 -287
  414. package/src/utils/ini-reader.ts +0 -86
  415. package/src/utils/logger.ts +0 -35
  416. package/src/utils/normalize.test.ts +0 -162
  417. package/src/utils/normalize.ts +0 -146
  418. package/src/utils/path-security.ts +0 -43
  419. package/src/utils/response-factory.ts +0 -44
  420. package/src/utils/response-validator.ts +0 -395
  421. package/src/utils/result-helpers.ts +0 -195
  422. package/src/utils/safe-json.test.ts +0 -90
  423. package/src/utils/safe-json.ts +0 -70
  424. package/src/utils/unreal-command-queue.ts +0 -166
  425. package/src/utils/validation.test.ts +0 -184
  426. package/src/utils/validation.ts +0 -312
  427. package/src/wasm/index.ts +0 -838
  428. package/test-server.mjs +0 -100
  429. package/tests/test-animation.mjs +0 -369
  430. package/tests/test-asset-advanced.mjs +0 -82
  431. package/tests/test-asset-graph.mjs +0 -311
  432. package/tests/test-audio.mjs +0 -417
  433. package/tests/test-automation-timeouts.mjs +0 -98
  434. package/tests/test-behavior-tree.mjs +0 -444
  435. package/tests/test-blueprint-graph.mjs +0 -410
  436. package/tests/test-blueprint.mjs +0 -577
  437. package/tests/test-client-mode.mjs +0 -86
  438. package/tests/test-console-command.mjs +0 -56
  439. package/tests/test-control-actor.mjs +0 -425
  440. package/tests/test-control-editor.mjs +0 -112
  441. package/tests/test-graphql.mjs +0 -372
  442. package/tests/test-input.mjs +0 -349
  443. package/tests/test-inspect.mjs +0 -302
  444. package/tests/test-landscape.mjs +0 -316
  445. package/tests/test-lighting.mjs +0 -428
  446. package/tests/test-manage-asset.mjs +0 -438
  447. package/tests/test-manage-level.mjs +0 -89
  448. package/tests/test-materials.mjs +0 -356
  449. package/tests/test-niagara.mjs +0 -185
  450. package/tests/test-no-inline-python.mjs +0 -122
  451. package/tests/test-performance.mjs +0 -539
  452. package/tests/test-plugin-handshake.mjs +0 -82
  453. package/tests/test-runner.mjs +0 -993
  454. package/tests/test-sequence.mjs +0 -104
  455. package/tests/test-system.mjs +0 -96
  456. package/tests/test-wasm.mjs +0 -283
  457. package/tests/test-world-partition.mjs +0 -215
  458. package/tsconfig.json +0 -56
  459. package/vitest.config.ts +0 -35
  460. package/wasm/Cargo.lock +0 -363
  461. package/wasm/Cargo.toml +0 -42
  462. package/wasm/LICENSE +0 -21
  463. package/wasm/README.md +0 -253
  464. package/wasm/src/dependency_resolver.rs +0 -377
  465. package/wasm/src/lib.rs +0 -153
  466. package/wasm/src/property_parser.rs +0 -271
  467. package/wasm/src/transform_math.rs +0 -396
  468. package/wasm/tests/integration.rs +0 -109
@@ -1,370 +0,0 @@
1
- # MCP Automation Bridge Plugin
2
-
3
- The MCP Automation Bridge is a production-ready Unreal Editor plugin that enables direct communication between the MCP server and Unreal Engine, providing **100% native C++ implementations** for all automation tasks. This document describes the current implementation and future roadmap.
4
-
5
- ## Goals
6
- - **Direct SCS Access** – expose Blueprint SimpleConstructionScript mutations through a curated C++ API that the MCP server can call.
7
- - **Typed Property Marshaling** – relay incoming JSON payloads through Unreal's `FProperty` system so class/enum/soft object references resolve without manual string coercion.
8
- - **Asset Lifecycle Helpers** – wrap save/move/delete flows with redirector fix-up, source control hooks, and safety prompts suppressed via automation policies.
9
- - **Modal Dialog Mediation** – surface blocking dialogs to the MCP server with explicit continue/cancel channels instead of stalling automation.
10
- - **Native-Only Architecture** – all operations implemented in C++ without Python dependencies for maximum reliability and performance.
11
-
12
- ## Architecture Sketch
13
- - Editor plugin registers a `UMcpAutomationBridge` subsystem.
14
- - Subsystem subscribes to a local WebSocket or named pipe opened by the Node MCP server when it needs elevated actions.
15
- - Each elevated command includes a capability token so the plugin can enforce an allow-list (exposed through project settings) and fail gracefully if disabled.
16
- - Results are serialized back to the MCP server with structured warnings so the client can still prompt the user when manual intervention is required.
17
-
18
- ## Plugin Architecture (Current: v0.6.0)
19
-
20
- ### Core Components
21
- - **Plugin Location**: `plugins/McpAutomationBridge/` (source) and `Public/McpAutomationBridge/` (distribution)
22
- - **Module Type**: Editor-only subsystem (`UEditorSubsystem`)
23
- - **Main Class**: `UMcpAutomationBridgeSubsystem` - manages WebSocket connections, request routing, and automation execution
24
- - **WebSocket Implementation**: `FMcpBridgeWebSocket` - custom lightweight WebSocket client (no external dependencies)
25
- - **Settings**: `UMcpAutomationBridgeSettings` - configurable via **Project Settings ▸ Plugins ▸ MCP Automation Bridge**
26
-
27
- ### Connection Management
28
- - **WebSocket Server Mode**: Plugin connects TO the MCP server's WebSocket listener (default: `ws://127.0.0.1:8091`)
29
- - **Handshake Protocol**: `bridge_hello` → capability token validation → `bridge_ack`
30
- - **Reconnection**: Automatic with exponential backoff (configurable delay, 5s default)
31
- - **Heartbeat**: Optional heartbeat tracking for connection health monitoring
32
- - **Capability Token**: Optional security layer for authentication
33
- - **Multi-Port Support**: Can connect to multiple server ports simultaneously
34
-
35
- ### Request Processing
36
- - **Thread-Safe Queue**: Incoming requests queued and processed sequentially on game thread
37
- - **Telemetry**: Tracks success/failure rates, execution times, and action statistics
38
- - **Error Handling**: Structured error responses with error codes and retry flags
39
- - **Timeout Management**: Configurable timeouts for long-running operations
40
-
41
- ## Server Integration (0.1.0)
42
- - `src/automation-bridge.ts` spins up a lightweight WebSocket server (default `ws://127.0.0.1:8091`) guarded by an optional capability token.
43
- - Handshake flow: editor sends `bridge_hello` → server validates capability token → server responds with `bridge_ack` and caches the socket for future elevated commands.
44
- - Environment flags: `MCP_AUTOMATION_HOST`, `MCP_AUTOMATION_PORT`, `MCP_AUTOMATION_CAPABILITY_TOKEN`, and `MCP_AUTOMATION_CLIENT_MODE` allow operators to relocate or disable the listener without code changes.
45
- - Health endpoint (`ue://health`) now surfaces bridge connectivity status so MCP clients can confirm when the plugin is online.
46
-
47
- ## Implemented Actions (Current)
48
-
49
- ### 1. Asset Operations (`HandleAssetAction`)
50
- ✅ **Fully Implemented** - Native C++ using UE Asset Tools
51
- - `import_asset_deferred` - Native `UAssetImportTask` with FBX/texture support
52
- - `create_material` - `UMaterialFactoryNew` for material creation
53
- - `create_material_instance` - Material instance creation with parameter overrides
54
- - `duplicate_asset` - Asset duplication with overwrite control
55
- - `rename_asset` - Asset renaming with conflict detection
56
- - `move_asset` - Asset moving with optional redirector fixup
57
- - `delete_assets` - Bulk asset deletion with dependency handling
58
- - `list` - Asset Registry directory listing with filtering
59
- - `create_folder` - Content folder creation
60
- - `get_dependencies` - Asset dependency graph traversal
61
- - `create_thumbnail` - Thumbnail generation
62
- - `set_tags` - Asset metadata tagging
63
- - `generate_report` - Asset reports
64
- - `validate` - Asset existence validation
65
- - `get_source_control_state` - Check checkout/revision status
66
- - `analyze_graph` - Deep dependency analysis (WASM-accelerated)
67
-
68
- ### 2. Editor Function Execution (`HandleExecuteEditorFunction`)
69
- ✅ **Fully Implemented** - Native subsystem operations
70
- - `execute_console_command` - Direct `GEditor->Exec()` console command execution
71
- - `GET_ALL_ACTORS` - `UEditorActorSubsystem::GetAllLevelActors()`
72
- - `SPAWN_ACTOR` - `UEditorActorSubsystem::SpawnActorFromClass()`
73
- - `DELETE_ACTOR` - `UEditorActorSubsystem::DestroyActor()`
74
- - `ASSET_EXISTS` - `UEditorAssetLibrary::DoesAssetExist()`
75
- - `SET_VIEWPORT_CAMERA` - `UUnrealEditorSubsystem::SetLevelViewportCameraInfo()`
76
- - `CREATE_LEVEL` - Level creation via subsystem
77
- - `LOAD_LEVEL` - Level loading
78
- - `SAVE_LEVEL` - Level saving
79
- - `BUILD_LIGHTING` - `ULevelEditorSubsystem::BuildLightMaps()`
80
- - `LIST_ACTOR_COMPONENTS` - Enumerate components for any editor actor via `UEditorActorSubsystem`
81
- - `RESOLVE_OBJECT` - Resolve assets or classes and surface best-effort metadata for inspection tools
82
- - `SAVE_DIRTY_PACKAGES` / `SAVE_ALL_DIRTY_PACKAGES` - Trigger native dirty-package saves through `UEditorLoadingAndSavingUtils`
83
- - `SAVE_ASSET` - Persist a specific asset path using throttled `UEditorAssetLibrary` helpers
84
- - `SET_BLUEPRINT_DEFAULT` - Routes to native blueprint default editing without Python fallbacks
85
-
86
- ### 3. Property Operations (`HandleSetObjectProperty`, `HandleGetObjectProperty`)
87
- ✅ **Fully Implemented** - Typed `FProperty` marshaling
88
- - **set_object_property** - JSON → `FProperty` conversion with type safety
89
- - **get_object_property** - `FProperty` → JSON serialization
90
- - **Array Operations**: append, remove, insert, get_element, set_element, clear
91
- - **Map Operations**: set_value, get_value, remove_key, has_key, get_keys, clear
92
- - **Set Operations**: add, remove, contains, clear
93
- - **Supported Types**: primitives, enums, objects, soft object paths, structs (Vector/Rotator), arrays, maps, sets
94
-
95
- ### 4. Blueprint Operations (`HandleBlueprintAction`)
96
- ⚠️ **Partially Implemented** - SCS modification in progress
97
- - Blueprint asset creation ✅
98
- - SimpleConstructionScript (SCS) node manipulation ⚠️
99
- - Component addition to blueprints ⚠️
100
- - Blueprint compilation and saving ✅
101
- - CDO (Class Default Object) property modification ✅
102
- - Blueprint default overrides via `SET_BLUEPRINT_DEFAULT` requests ✅
103
-
104
- ### 5. Sequence/Sequencer Operations
105
- ✅ **Fully Implemented** - Level Sequence Editor integration
106
- - **HandleSequenceAction** - Sequence creation and management
107
- - **HandleAddSequencerKeyframe** - Keyframe operations
108
- - **HandleManageSequencerTrack** - Track management
109
- - **HandleAddCameraTrack** - Camera track addition
110
- - **HandleAddAnimationTrack** - Animation track addition
111
- - **HandleAddTransformTrack** - Transform track addition
112
-
113
- ### 6. Effect Operations (`HandleEffectAction`)
114
- ✅ **Fully Implemented** - Niagara and debug visualization
115
- - Niagara system creation (`UNiagaraSystemFactoryNew`)
116
- - Niagara emitter creation
117
- - Spawn Niagara actors in level
118
- - Modify Niagara user parameters
119
- - Debug shape drawing (lines, boxes, spheres, arrows)
120
- - Dynamic light spawning
121
- - Effect cleanup operations
122
-
123
- ### 7. Animation & Physics (`HandleAnimationPhysicsAction`)
124
- ✅ **Fully Implemented** - Animation blueprint and physics setup
125
- - **HandleCreateAnimBlueprint** - Animation blueprint creation
126
- - **HandlePlayAnimMontage** - Montage playback control
127
- - **HandleSetupRagdoll** - Ragdoll physics configuration
128
- - Physics asset manipulation
129
- - Skeletal mesh animation control
130
-
131
- ### 8. Environment Building (`HandleBuildEnvironmentAction`)
132
- ✅ **Fully Implemented** - Landscape and foliage tools
133
- - **HandleCreateLandscape** - Landscape actor creation
134
- - **HandleEditLandscape** - Landscape editing dispatcher
135
- - **HandleModifyHeightmap** - Heightmap sculpting
136
- - **HandlePaintLandscapeLayer** - Layer painting
137
- - **HandlePaintFoliage** - Foliage painting with density control
138
- - **HandleRemoveFoliage** - Foliage removal
139
- - **HandleGetFoliageInstances** - Foliage instance queries
140
-
141
- ### 9. Material Graph Operations (`HandleCreateMaterialNodes`)
142
- ✅ **Fully Implemented** - Material editor graph manipulation
143
- - **HandleAddMaterialTextureSample** - Add texture sample nodes
144
- - **HandleAddMaterialExpression** - Add material expression nodes
145
- - Material graph node connections
146
- - Material parameter setup
147
-
148
- ### 10. Asset Workflow (`HandleSourceControl*`, `HandleFixupRedirectors`, etc.)
149
- ✅ **Fully Implemented** - Production asset pipeline support
150
- - **HandleSourceControlCheckout** - Perforce/SVN checkout
151
- - **HandleSourceControlSubmit** - Perforce/SVN submit
152
- - **HandleFixupRedirectors** - Redirector cleanup after moves
153
- - **HandleBulkRenameAssets** - Batch asset renaming
154
- - **HandleBulkDeleteAssets** - Batch asset deletion
155
- - **HandleGenerateThumbnail** - Thumbnail generation
156
-
157
- ### 11. Actor & Editor Control
158
- ✅ **Fully Implemented** - Viewport and actor manipulation
159
- - PIE (Play In Editor) control - `ULevelEditorSubsystem::EditorPlaySimulate()`
160
- - Camera positioning and rotation - `UUnrealEditorSubsystem::SetLevelViewportCameraInfo()`
161
- - View mode changes - Native `GEditor->Exec()` with safety validation
162
- - Actor spawning with class resolution
163
- - Actor deletion with label matching
164
- - Actor property modification
165
-
166
- ### 12. Python Execution (`HandleExecuteEditorPython`)
167
- ❌ **REMOVED** - Python execution is no longer supported
168
- - All automation is now implemented natively in C++
169
- - `execute_editor_python` action returns error: "Python execution is no longer supported"
170
- - Improves security, reliability, and performance
171
- - **Migration**: Use native automation actions instead
172
-
173
- ## Tool Coverage Matrix (Updated)
174
-
175
- | Consolidated Tool | Actions | Bridge Status | Notes |
176
- |-------------------|---------|---------------|-------|
177
- | **manage_asset** | `list` | ✅ Native | Asset Registry native listing |
178
- | | `import` | ✅ Native | `UAssetImportTask` FBX/texture import |
179
- | | `create_material` | ✅ Native | `UMaterialFactoryNew` native creation |
180
- | | `create_material_instance` | ✅ Native | Native material instance factory |
181
- | | `duplicate` / `rename` / `move` | ✅ Native | `UEditorAssetLibrary` + `AssetTools` |
182
- | | `delete` | ✅ Native | Bulk deletion with dependency handling |
183
- | **control_actor** | `spawn` | ✅ Native | `UEditorActorSubsystem::SpawnActorFromClass()` |
184
- | | `delete` | ✅ Native | `UEditorActorSubsystem::DestroyActor()` |
185
- | | `apply_force` | 🔧 Planned | Physics forces native implementation pending |
186
- | **control_editor** | `play` / `stop` / `pause` | ✅ Native | `ULevelEditorSubsystem` PIE control |
187
- | | `set_camera` | ✅ Native | `UUnrealEditorSubsystem::SetLevelViewportCameraInfo()` |
188
- | | `set_view_mode` | ✅ Native | Safe viewmode validation + `GEditor->Exec()` |
189
- | | `console_command` | ✅ Native | `GEditor->Exec()` direct execution |
190
- | **manage_level** | `load` / `save` / `stream` | ✅ Native | Editor function handlers for level ops |
191
- | | `create_level` | ✅ Native | Native `CREATE_LEVEL` function |
192
- | | `create_light` | ✅ Native | `SPAWN_ACTOR` with light class |
193
- | | `build_lighting` | ✅ Native | `ULevelEditorSubsystem::BuildLightMaps()` |
194
- | **animation_physics** | `create_animation_bp` | ✅ Native | Animation blueprint factory |
195
- | | `play_montage` | ✅ Native | Native montage playback control |
196
- | | `setup_ragdoll` | ✅ Native | Ragdoll physics configuration |
197
- | | `configure_vehicle` | ⚠️ Partial | Complex vehicle setup in progress |
198
- | **create_effect** | `niagara` | ✅ Native | `UNiagaraSystemFactoryNew` native creation |
199
- | | `spawn_niagara` | ✅ Native | Native Niagara actor spawning |
200
- | | `debug_shape` | ✅ Native | Debug line/box/sphere drawing |
201
- | | `dynamic_light` | ✅ Native | Dynamic light spawning |
202
- | **manage_blueprint** | `create` | ✅ Native | Blueprint asset creation |
203
- | | `add_component` | ✅ Native | SCS manipulation via native APIs; UE 5.7+ SubobjectDataInterface support added |
204
- | | `edit_defaults` | ✅ Native | CDO property modification |
205
- | **build_environment** | `create_landscape` | ✅ Native | Landscape actor creation |
206
- | | `sculpt` / `paint` | ✅ Native | Heightmap/layer editing |
207
- | | `add_foliage` | ✅ Native | Foliage painting with density control |
208
- | **system_control** | `profile` / `show_fps` | ✅ Native | Console command execution |
209
- | | `set_quality` | ✅ Native | Quality settings via console |
210
- | | `screenshot` | ✅ Native | Screenshot capture commands |
211
- | **console_command** | (all) | ✅ Native | Direct `GEditor->Exec()` with safety filtering |
212
- | **execute_python** | (all) | ❌ Removed | Python execution removed; use native actions |
213
- | **manage_sequence** | `create` / `add_track` | ✅ Native | Level Sequence Editor native operations |
214
- | | `keyframe` | ✅ Native | Native keyframe manipulation |
215
- | **inspect** | `get_property` | ✅ Native | `FProperty` → JSON serialization |
216
- | | `set_property` | ✅ Native | JSON → `FProperty` typed marshaling |
217
- | | `list` | ✅ Native | Actor/asset listing via subsystems |
218
- | **manage_audio** | `create_sound_cue` | ✅ Native | Sound Cue asset creation |
219
- | | `play_sound_at_location` | ✅ Native | 3D spatial sound playback |
220
- | | `create_audio_component` | ✅ Native | Audio component creation |
221
- | **manage_behavior_tree** | `add_node` | ✅ Native | Behavior Tree node creation |
222
- | | `connect_nodes` | ✅ Native | Node connection management |
223
- | | `set_node_properties` | ✅ Native | Node property editing |
224
-
225
- **Legend:**
226
- - ✅ **Native** = Fully implemented in C++ plugin
227
- - ⚠️ **Partial** = Some operations implemented; work in progress
228
- - 🔧 **Planned** = Designed but not yet implemented
229
- - ❌ **Removed** = Feature removed (Python execution)
230
-
231
- ## Current Version Status (v0.6.0)
232
-
233
- ### ✅ Completed Features
234
- 1. ✔️ **WebSocket Transport** - Custom lightweight WebSocket client with no external dependencies
235
- 2. ✔️ **Asset Operations** - Complete native asset pipeline (import, create, modify, delete)
236
- 3. ✔️ **Property Marshaling** - Full `FProperty` system integration with type safety
237
- 4. ✔️ **Editor Functions** - Native implementations of common editor operations
238
- 5. ✔️ **Sequence/Animation** - Level Sequence Editor and animation blueprint integration
239
- 6. ✔️ **Environment Tools** - Landscape and foliage manipulation
240
- 7. ✔️ **Material Graph** - Material node creation and editing
241
- 8. ✔️ **Source Control** - Perforce/SVN integration
242
- 9. ✔️ **Telemetry** - Request tracking and performance metrics
243
- 10. ✔️ **Security** - Capability token authentication
244
- 11. ✔️ **Camera Control** - Native viewport camera positioning via `SetLevelViewportCameraInfo()`
245
- 12. ✔️ **Python-Free Architecture** - 100% native C++ implementation
246
-
247
- ### ⚠️ In Progress
248
- 1. **Blueprint SCS Enhancements** - Improving UE 5.6+ SubobjectData subsystem compatibility
249
- - Native component addition and modification (UE 5.7+ supported)
250
- - Full SCS tree manipulation
251
- 2. **Modal Dialog Interception** - Handling blocking editor dialogs
252
- - Asset save prompts
253
- - Package checkout dialogs
254
-
255
- ### 📅 Roadmap (v0.7.0+)
256
-
257
- #### High Priority
258
- 1. **Complete Blueprint SCS API** - Finalize SimpleConstructionScript manipulation for UE 5.6+
259
- - Leverage `SubobjectData` subsystem when available
260
- - Fallback to legacy reflection-based approach for older engines
261
- - Native component property editing
262
-
263
- 2. **Physics System Integration** - Native physics force application
264
- - `UPrimitiveComponent::AddForce()` wrappers
265
- - Physics constraint manipulation
266
- - Impulse and torque application
267
- - Vehicle physics configuration
268
-
269
- 3. **Modal Dialog Mediation** - Intercept blocking dialogs
270
- - Asset save prompts
271
- - Package checkout dialogs
272
- - Build lighting confirmation
273
- - Timeout-based fallback responses
274
-
275
- #### Medium Priority
276
- 4. **Hot Reload Support** - Update plugin without editor restart
277
- - Dynamic handler registration
278
- - State preservation across reloads
279
-
280
- 5. **Enhanced Telemetry** - Expanded metrics and diagnostics
281
- - Per-action success/failure rates
282
- - Performance profiling data
283
- - Connection health history
284
-
285
- 6. **Batch Operations** - Multi-operation transactions
286
- - Transactional asset workflows
287
- - Undo/redo support
288
- - Rollback on failure
289
-
290
- 7. **Advanced Security** - Enhanced authentication
291
- - Session token support
292
- - Per-action capability tokens
293
- - Client certificate validation
294
-
295
- #### Low Priority
296
- 8. **Marketplace Distribution** - Packaged plugin distribution
297
- - Pre-compiled binaries for multiple UE versions
298
- - Simplified installation process
299
- - Documentation and samples
300
-
301
- 9. **Blueprint Visual Editing** - Direct Blueprint graph manipulation
302
- - Node creation and connection
303
- - Function/macro creation
304
- - Event graph editing
305
-
306
- ## Dependencies
307
-
308
- ### Required Unreal Engine Modules
309
- - **Core** - Base engine functionality
310
- - **CoreUObject** - UObject system
311
- - **Engine** - Runtime engine
312
- - **UnrealEd** - Editor subsystems
313
- - **EditorScriptingUtilities** - Editor scripting APIs
314
- - **AssetTools** - Asset manipulation
315
- - **AssetRegistry** - Asset database
316
- - **LevelEditor** - Level editing subsystems
317
- - **BlueprintGraph** - Blueprint editing
318
- - **LevelSequence** / **LevelSequenceEditor** - Sequencer
319
- - **Landscape** / **LandscapeEditor** - Terrain tools
320
- - **Niagara** / **NiagaraEditor** - VFX system
321
- - **MaterialEditor** - Material editing
322
-
323
- ### Optional Modules (Auto-Detected)
324
- - **SubobjectDataInterface** - UE 5.7+ Blueprint SCS subsystem
325
- - **ControlRig** - Animation and physics tools
326
- - **SourceControl** - Version control integration
327
-
328
- ## Installation & Configuration
329
-
330
- ### Plugin Installation
331
- 1. Copy `Public/McpAutomationBridge/` to your project's `Plugins/` directory
332
- 2. Regenerate project files
333
- 3. Enable plugin via **Edit ▸ Plugins ▸ MCP Automation Bridge**
334
- 4. Restart editor
335
-
336
- ### Configuration (Project Settings ▸ Plugins ▸ MCP Automation Bridge)
337
- - **Server Host**: MCP server address (default: `127.0.0.1`)
338
- - **Server Port**: WebSocket port (default: `8091`)
339
- - **Capability Token**: Optional security token
340
- - **Reconnect Enabled**: Auto-reconnect on disconnect
341
- - **Reconnect Delay**: Delay between reconnection attempts (default: 5s)
342
- - **Heartbeat Timeout**: Connection health timeout
343
- - **Ticker Interval**: Subsystem tick frequency (default: 0.25s)
344
-
345
- ### Environment Variables (Override Settings)
346
- - `MCP_AUTOMATION_HOST` - Server host override
347
- - `MCP_AUTOMATION_PORT` - Server port override
348
- - `MCP_AUTOMATION_CAPABILITY_TOKEN` - Security token
349
- - `MCP_IGNORE_SUBOBJECTDATA` - Disable SubobjectData detection
350
- - `MCP_FORCE_SUBOBJECTDATA` - Force SubobjectData module linkage
351
-
352
- ### Deprecated Settings (Removed)
353
- - ~~`MCP_ALLOW_PYTHON_FALLBACKS`~~ - Python execution has been removed
354
- - ~~`Allow Python Fallbacks`~~ - Setting removed from project settings
355
- - ~~`bAllowPythonFallbacks`~~ - Configuration property removed
356
- - ~~`bAllowAllPythonFallbacks`~~ - Configuration property removed
357
-
358
- ## Contributions
359
-
360
- Contributions welcome! Please open an issue or discussion before starting major work to ensure alignment with the roadmap.
361
-
362
- ### Development Guidelines
363
- - Follow Unreal Engine C++ coding standards
364
- - Add handler functions to appropriate `McpAutomationBridge_*Handlers.cpp` files
365
- - Register new handlers in `ProcessAutomationRequest()`
366
- - Update `McpAutomationBridgeSubsystem.h` with handler declarations
367
- - Add comprehensive error handling with structured error codes
368
- - Test across multiple UE versions (5.0-5.7)
369
- - Document new actions in this file
370
- - **No Python dependencies** - All new features must be native C++
@@ -1,249 +0,0 @@
1
- # Handler Mappings
2
-
3
- This document maps the TypeScript tool definitions to their corresponding C++ handlers in the Unreal Engine plugin.
4
-
5
- ## 1. Asset Manager (`manage_asset`)
6
-
7
- | Action | C++ Handler File | C++ Function | Notes |
8
- | :--- | :--- | :--- | :--- |
9
- | `list` | `McpAutomationBridge_AssetQueryHandlers.cpp` | `HandleAssetQueryAction` | |
10
- | `search_assets` | `McpAutomationBridge_AssetQueryHandlers.cpp` | `HandleAssetQueryAction` | |
11
- | `import` | `McpAutomationBridge_AssetWorkflowHandlers.cpp` | `HandleAssetAction` | |
12
- | `duplicate` | `McpAutomationBridge_AssetWorkflowHandlers.cpp` | `HandleAssetAction` | |
13
- | `rename` | `McpAutomationBridge_AssetWorkflowHandlers.cpp` | `HandleAssetAction` | |
14
- | `move` | `McpAutomationBridge_AssetWorkflowHandlers.cpp` | `HandleAssetAction` | |
15
- | `delete` | `McpAutomationBridge_AssetWorkflowHandlers.cpp` | `HandleAssetAction` | |
16
- | `delete_assets` | `McpAutomationBridge_AssetWorkflowHandlers.cpp` | `HandleBulkDeleteAssets` | |
17
- | `create_folder` | `McpAutomationBridge_AssetWorkflowHandlers.cpp` | `HandleAssetAction` | |
18
- | `get_asset` | `McpAutomationBridge_AssetWorkflowHandlers.cpp` | `HandleGetAsset` | |
19
- | `get_dependencies` | `McpAutomationBridge_AssetQueryHandlers.cpp` | `HandleGetAssetDependencies` | |
20
- | `get_source_control_state` | `McpAutomationBridge_AssetWorkflowHandlers.cpp` | `HandleSourceControlCheckout` | |
21
- | `analyze_graph` | `McpAutomationBridge_AssetQueryHandlers.cpp` | `HandleGetAssetReferences` | |
22
- | `create_thumbnail` | `McpAutomationBridge_AssetWorkflowHandlers.cpp` | `HandleGenerateThumbnail` | |
23
- | `set_tags` | `McpAutomationBridge_AssetWorkflowHandlers.cpp` | `HandleAssetAction` | |
24
- | `validate` | `McpAutomationBridge_AssetWorkflowHandlers.cpp` | `HandleAssetAction` | |
25
- | `fixup_redirectors` | `McpAutomationBridge_AssetWorkflowHandlers.cpp` | `HandleFixupRedirectors` | |
26
- | `generate_report` | `McpAutomationBridge_AssetWorkflowHandlers.cpp` | `HandleAssetAction` | |
27
- | `create_material` | `McpAutomationBridge_AssetWorkflowHandlers.cpp` | `HandleAssetAction` | |
28
- | `create_material_instance` | `McpAutomationBridge_AssetWorkflowHandlers.cpp` | `HandleAssetAction` | |
29
- | `create_render_target` | `McpAutomationBridge_RenderHandlers.cpp` | `HandleRenderAction` | |
30
- | `nanite_rebuild_mesh` | `McpAutomationBridge_RenderHandlers.cpp` | `HandleRenderAction` | |
31
- | `add_material_node` | `McpAutomationBridge_MaterialGraphHandlers.cpp` | `HandleAddMaterialExpression` | |
32
- | `connect_material_pins` | `McpAutomationBridge_MaterialGraphHandlers.cpp` | `HandleCreateMaterialNodes` | |
33
- | `remove_material_node` | `McpAutomationBridge_MaterialGraphHandlers.cpp` | `HandleCreateMaterialNodes` | |
34
- | `add_bt_node` | `McpAutomationBridge_BehaviorTreeHandlers.cpp` | `HandleBehaviorTreeAction` | |
35
- | `connect_bt_nodes` | `McpAutomationBridge_BehaviorTreeHandlers.cpp` | `HandleBehaviorTreeAction` | |
36
-
37
- ## 2. Blueprint Manager (`manage_blueprint`)
38
-
39
- | Action | C++ Handler File | C++ Function | Notes |
40
- | :--- | :--- | :--- | :--- |
41
- | `create` | `McpAutomationBridge_BlueprintCreationHandlers.cpp` | `HandleBlueprintAction` | |
42
- | `get_blueprint` | `McpAutomationBridge_BlueprintHandlers.cpp` | `HandleBlueprintAction` | |
43
- | `compile` | `McpAutomationBridge_BlueprintHandlers.cpp` | `HandleBlueprintAction` | |
44
- | `add_component` | `McpAutomationBridge_SCSHandlers.cpp` | `HandleBlueprintAction` | Uses `SubobjectData` in UE 5.7+ |
45
- | `set_default` | `McpAutomationBridge_BlueprintHandlers.cpp` | `HandleBlueprintAction` | |
46
- | `modify_scs` | `McpAutomationBridge_SCSHandlers.cpp` | `HandleBlueprintAction` | |
47
- | `get_scs` | `McpAutomationBridge_SCSHandlers.cpp` | `HandleBlueprintAction` | |
48
- | `create_node` | `McpAutomationBridge_BlueprintGraphHandlers.cpp` | `HandleBlueprintGraphAction` | |
49
- | `delete_node` | `McpAutomationBridge_BlueprintGraphHandlers.cpp` | `HandleBlueprintGraphAction` | |
50
- | `connect_pins` | `McpAutomationBridge_BlueprintGraphHandlers.cpp` | `HandleBlueprintGraphAction` | |
51
- | `break_pin_links` | `McpAutomationBridge_BlueprintGraphHandlers.cpp` | `HandleBlueprintGraphAction` | |
52
- | `set_node_property` | `McpAutomationBridge_BlueprintGraphHandlers.cpp` | `HandleBlueprintGraphAction` | |
53
-
54
- ## 17. Input Manager (`manage_input`)
55
-
56
- | Action | C++ Handler File | C++ Function | Notes |
57
- | :--- | :--- | :--- | :--- |
58
- | `create_input_action` | `McpAutomationBridge_InputHandlers.cpp` | `HandleInputAction` | |
59
- | `create_input_mapping_context` | `McpAutomationBridge_InputHandlers.cpp` | `HandleInputAction` | |
60
- | `add_mapping` | `McpAutomationBridge_InputHandlers.cpp` | `HandleInputAction` | |
61
- | `remove_mapping` | `McpAutomationBridge_InputHandlers.cpp` | `HandleInputAction` | |
62
- | `add_variable` | `McpAutomationBridge_BlueprintHandlers.cpp` | `HandleBlueprintAction` | |
63
- | `add_function` | `McpAutomationBridge_BlueprintHandlers.cpp` | `HandleBlueprintAction` | |
64
- | `add_event` | `McpAutomationBridge_BlueprintHandlers.cpp` | `HandleBlueprintAction` | Supports custom & standard events |
65
-
66
- ## 3. Actor Control (`control_actor`)
67
-
68
- | Action | C++ Handler File | C++ Function | Notes |
69
- | :--- | :--- | :--- | :--- |
70
- | `spawn` | `McpAutomationBridge_ControlHandlers.cpp` | `HandleControlActorAction` | |
71
- | `spawn_blueprint` | `McpAutomationBridge_ControlHandlers.cpp` | `HandleControlActorAction` | |
72
- | `delete` | `McpAutomationBridge_ControlHandlers.cpp` | `HandleControlActorAction` | |
73
- | `delete_by_tag` | `McpAutomationBridge_ControlHandlers.cpp` | `HandleControlActorAction` | |
74
- | `duplicate` | `McpAutomationBridge_ControlHandlers.cpp` | `HandleControlActorAction` | |
75
- | `apply_force` | `McpAutomationBridge_ControlHandlers.cpp` | `HandleControlActorAction` | |
76
- | `set_transform` | `McpAutomationBridge_ControlHandlers.cpp` | `HandleControlActorAction` | |
77
- | `get_transform` | `McpAutomationBridge_ControlHandlers.cpp` | `HandleControlActorAction` | |
78
- | `set_visibility` | `McpAutomationBridge_ControlHandlers.cpp` | `HandleControlActorAction` | |
79
- | `add_component` | `McpAutomationBridge_ControlHandlers.cpp` | `HandleControlActorAction` | Runtime component addition |
80
- | `add_tag` | `McpAutomationBridge_ControlHandlers.cpp` | `HandleControlActorAction` | |
81
- | `find_by_tag` | `McpAutomationBridge_ControlHandlers.cpp` | `HandleControlActorAction` | |
82
- | `list` | `McpAutomationBridge_ControlHandlers.cpp` | `HandleControlActorAction` | |
83
- | `attach` | `McpAutomationBridge_ControlHandlers.cpp` | `HandleControlActorAction` | |
84
- | `detach` | `McpAutomationBridge_ControlHandlers.cpp` | `HandleControlActorAction` | |
85
-
86
- ## 4. Editor Control (`control_editor`)
87
-
88
- | Action | C++ Handler File | C++ Function | Notes |
89
- | :--- | :--- | :--- | :--- |
90
- | `play` | `McpAutomationBridge_EditorFunctionHandlers.cpp` | `HandleControlEditorAction` | |
91
- | `stop` | `McpAutomationBridge_EditorFunctionHandlers.cpp` | `HandleControlEditorAction` | |
92
- | `set_camera` | `McpAutomationBridge_EditorFunctionHandlers.cpp` | `HandleControlEditorAction` | |
93
- | `console_command` | `McpAutomationBridge_EditorFunctionHandlers.cpp` | `HandleConsoleCommandAction` | |
94
- | `screenshot` | `McpAutomationBridge_EditorFunctionHandlers.cpp` | `HandleControlEditorAction` | |
95
- | `simulate_input` | `McpAutomationBridge_UiHandlers.cpp` | `HandleUiAction` | |
96
- | `create_bookmark` | `McpAutomationBridge_EditorFunctionHandlers.cpp` | `HandleControlEditorAction` | |
97
-
98
- ## 5. Level Manager (`manage_level`)
99
-
100
- | Action | C++ Handler File | C++ Function | Notes |
101
- | :--- | :--- | :--- | :--- |
102
- | `load` | `McpAutomationBridge_EditorFunctionHandlers.cpp` | `HandleLevelAction` | |
103
- | `save` | `McpAutomationBridge_EditorFunctionHandlers.cpp` | `HandleLevelAction` | |
104
- | `create_level` | `McpAutomationBridge_EditorFunctionHandlers.cpp` | `HandleLevelAction` | |
105
- | `export_level` | `McpAutomationBridge_LevelHandlers.cpp` | `HandleLevelAction` | |
106
- | `import_level` | `McpAutomationBridge_LevelHandlers.cpp` | `HandleLevelAction` | |
107
- | `load_cells` | `McpAutomationBridge_WorldPartitionHandlers.cpp` | `HandleWorldPartitionAction` | |
108
- | `set_datalayer` | `McpAutomationBridge_WorldPartitionHandlers.cpp` | `HandleWorldPartitionAction` | |
109
-
110
- ## 6. Lighting Manager (`manage_lighting`)
111
-
112
- | Action | C++ Handler File | C++ Function | Notes |
113
- | :--- | :--- | :--- | :--- |
114
- | `spawn_light` | `McpAutomationBridge_LightingHandlers.cpp` | `HandleLightingAction` | |
115
- | `spawn_sky_light` | `McpAutomationBridge_LightingHandlers.cpp` | `HandleLightingAction` | |
116
- | `build_lighting` | `McpAutomationBridge_LightingHandlers.cpp` | `HandleLightingAction` | |
117
- | `ensure_single_sky_light` | `McpAutomationBridge_LightingHandlers.cpp` | `HandleLightingAction` | |
118
- | `create_lightmass_volume` | `McpAutomationBridge_LightingHandlers.cpp` | `HandleLightingAction` | |
119
- | `setup_volumetric_fog` | `McpAutomationBridge_LightingHandlers.cpp` | `HandleLightingAction` | |
120
- | `create_lighting_enabled_level` | `McpAutomationBridge_LightingHandlers.cpp` | `HandleLightingAction` | |
121
- | `setup_global_illumination` | `McpAutomationBridge_LightingHandlers.cpp` | `HandleLightingAction` | |
122
- | `configure_shadows` | `McpAutomationBridge_LightingHandlers.cpp` | `HandleLightingAction` | |
123
- | `set_exposure` | `McpAutomationBridge_LightingHandlers.cpp` | `HandleLightingAction` | |
124
- | `set_ambient_occlusion` | `McpAutomationBridge_LightingHandlers.cpp` | `HandleLightingAction` | |
125
- | `list_light_types` | `McpAutomationBridge_LightingHandlers.cpp` | `HandleLightingAction` | Discovery: Returns all `ALight` subclasses |
126
-
127
- ## 7. Performance Manager (`manage_performance`)
128
-
129
- | Action | C++ Handler File | C++ Function | Notes |
130
- | :--- | :--- | :--- | :--- |
131
- | `generate_memory_report` | `McpAutomationBridge_PerformanceHandlers.cpp` | `HandlePerformanceAction` | |
132
- | `configure_texture_streaming` | `McpAutomationBridge_PerformanceHandlers.cpp` | `HandlePerformanceAction` | |
133
- | `merge_actors` | `McpAutomationBridge_PerformanceHandlers.cpp` | `HandlePerformanceAction` | |
134
- | `start_profiling` | `McpAutomationBridge_PerformanceHandlers.cpp` | `HandlePerformanceAction` | |
135
- | `stop_profiling` | `McpAutomationBridge_PerformanceHandlers.cpp` | `HandlePerformanceAction` | |
136
- | `show_fps` | `McpAutomationBridge_PerformanceHandlers.cpp` | `HandlePerformanceAction` | |
137
- | `show_stats` | `McpAutomationBridge_PerformanceHandlers.cpp` | `HandlePerformanceAction` | |
138
- | `set_scalability` | `McpAutomationBridge_PerformanceHandlers.cpp` | `HandlePerformanceAction` | |
139
- | `set_resolution_scale` | `McpAutomationBridge_PerformanceHandlers.cpp` | `HandlePerformanceAction` | |
140
- | `set_vsync` | `McpAutomationBridge_PerformanceHandlers.cpp` | `HandlePerformanceAction` | |
141
- | `set_frame_rate_limit` | `McpAutomationBridge_PerformanceHandlers.cpp` | `HandlePerformanceAction` | |
142
- | `configure_nanite` | `McpAutomationBridge_PerformanceHandlers.cpp` | `HandlePerformanceAction` | |
143
- | `configure_lod` | `McpAutomationBridge_PerformanceHandlers.cpp` | `HandlePerformanceAction` | |
144
-
145
- ## 8. Animation & Physics (`animation_physics`)
146
-
147
- | Action | C++ Handler File | C++ Function | Notes |
148
- | :--- | :--- | :--- | :--- |
149
- | `create_animation_bp` | `McpAutomationBridge_AnimationHandlers.cpp` | `HandleCreateAnimBlueprint` | |
150
- | `play_montage` | `McpAutomationBridge_AnimationHandlers.cpp` | `HandlePlayAnimMontage` | |
151
- | `setup_ragdoll` | `McpAutomationBridge_AnimationHandlers.cpp` | `HandleSetupRagdoll` | |
152
- | `configure_vehicle` | `McpAutomationBridge_AnimationHandlers.cpp` | `HandleAnimationPhysicsAction` | Supports custom vehicle type passthrough |
153
-
154
- ## 9. Effects Manager (`manage_effect`)
155
-
156
- | Action | C++ Handler File | C++ Function | Notes |
157
- | :--- | :--- | :--- | :--- |
158
- | `niagara` | `McpAutomationBridge_EffectHandlers.cpp` | `HandleEffectAction` | |
159
- | `spawn_niagara` | `McpAutomationBridge_EffectHandlers.cpp` | `HandleSpawnNiagaraActor` | |
160
- | `debug_shape` | `McpAutomationBridge_EffectHandlers.cpp` | `HandleEffectAction` | |
161
- | `create_niagara_system` | `McpAutomationBridge_EffectHandlers.cpp` | `HandleCreateNiagaraSystem` | |
162
- | `create_niagara_emitter` | `McpAutomationBridge_EffectHandlers.cpp` | `HandleCreateNiagaraEmitter` | |
163
- | `add_niagara_module` | `McpAutomationBridge_NiagaraGraphHandlers.cpp` | `HandleNiagaraGraphAction` | |
164
- | `list_debug_shapes` | `McpAutomationBridge_EffectHandlers.cpp` | `HandleEffectAction` | Discovery: Returns all debug shape types |
165
- | `clear_debug_shapes` | `McpAutomationBridge_EffectHandlers.cpp` | `HandleEffectAction` | Clears persistent debug shapes |
166
-
167
- ## 10. Environment Builder (`build_environment`)
168
-
169
- | Action | C++ Handler File | C++ Function | Notes |
170
- | :--- | :--- | :--- | :--- |
171
- | `create_landscape` | `McpAutomationBridge_LandscapeHandlers.cpp` | `HandleCreateLandscape` | |
172
- | `sculpt` | `McpAutomationBridge_LandscapeHandlers.cpp` | `HandleSculptLandscape` | |
173
- | `paint_foliage` | `McpAutomationBridge_FoliageHandlers.cpp` | `HandlePaintFoliage` | |
174
- | `add_foliage_instances` | `McpAutomationBridge_FoliageHandlers.cpp` | `HandleAddFoliageInstances` | |
175
- | `get_foliage_instances` | `McpAutomationBridge_FoliageHandlers.cpp` | `HandleGetFoliageInstances` | |
176
- | `remove_foliage` | `McpAutomationBridge_FoliageHandlers.cpp` | `HandleRemoveFoliage` | |
177
- | `create_procedural_terrain` | `McpAutomationBridge_EnvironmentHandlers.cpp` | `HandleCreateProceduralTerrain` | |
178
-
179
- ## 11. System Control (`system_control`)
180
-
181
- | Action | C++ Handler File | C++ Function | Notes |
182
- | :--- | :--- | :--- | :--- |
183
- | `execute_command` | `McpAutomationBridge_EditorFunctionHandlers.cpp` | `HandleExecuteEditorFunction` | |
184
- | `console_command` | `McpAutomationBridge_EditorFunctionHandlers.cpp` | `HandleConsoleCommandAction` | |
185
- | `run_ubt` | *None* | *None* | Handled in TypeScript (`child_process`) |
186
- | `run_tests` | `McpAutomationBridge_TestHandlers.cpp` | `HandleTestAction` | |
187
- | `subscribe` | `McpAutomationBridge_LogHandlers.cpp` | `HandleLogAction` | |
188
- | `unsubscribe` | `McpAutomationBridge_LogHandlers.cpp` | `HandleLogAction` | |
189
- | `spawn_category` | `McpAutomationBridge_DebugHandlers.cpp` | `HandleDebugAction` | |
190
- | `start_session` | `McpAutomationBridge_InsightsHandlers.cpp` | `HandleInsightsAction` | |
191
- | `lumen_update_scene` | `McpAutomationBridge_RenderHandlers.cpp` | `HandleRenderAction` | |
192
- | `set_project_setting` | `McpAutomationBridge_EnvironmentHandlers.cpp` | `HandleSystemControlAction` | |
193
- | `create_hud` | `McpAutomationBridge_UiHandlers.cpp` | `HandleUiAction` | Sub-action of `system_control` |
194
- | `set_widget_text` | `McpAutomationBridge_UiHandlers.cpp` | `HandleUiAction` | Sub-action of `system_control` |
195
- | `set_widget_image` | `McpAutomationBridge_UiHandlers.cpp` | `HandleUiAction` | Sub-action of `system_control` |
196
- | `set_widget_visibility` | `McpAutomationBridge_UiHandlers.cpp` | `HandleUiAction` | Sub-action of `system_control` |
197
- | `remove_widget_from_viewport` | `McpAutomationBridge_UiHandlers.cpp` | `HandleUiAction` | Sub-action of `system_control` |
198
-
199
- ## 12. Sequencer (`manage_sequence`)
200
-
201
- | Action | C++ Handler File | C++ Function | Notes |
202
- | :--- | :--- | :--- | :--- |
203
- | `create` | `McpAutomationBridge_SequenceHandlers.cpp` | `HandleSequenceAction` | |
204
- | `add_actor` | `McpAutomationBridge_SequenceHandlers.cpp` | `HandleSequenceAction` | |
205
- | `play` | `McpAutomationBridge_SequenceHandlers.cpp` | `HandleSequenceAction` | |
206
- | `add_keyframe` | `McpAutomationBridge_SequencerHandlers.cpp` | `HandleAddSequencerKeyframe` | |
207
- | `add_camera` | `McpAutomationBridge_SequenceHandlers.cpp` | `HandleAddCameraTrack` | |
208
- | `add_track` | `McpAutomationBridge_SequenceHandlers.cpp` | `HandleSequenceAction` | Dynamic track class resolution |
209
- | `list_track_types` | `McpAutomationBridge_SequenceHandlers.cpp` | `HandleSequenceAction` | Discovery: Returns all `UMovieSceneTrack` subclasses |
210
-
211
- ## 13. Introspection (`inspect`)
212
-
213
- | Action | C++ Handler File | C++ Function | Notes |
214
- | :--- | :--- | :--- | :--- |
215
- | `inspect_object` | `McpAutomationBridge_PropertyHandlers.cpp` | `HandleInspectAction` | |
216
- | `set_property` | `McpAutomationBridge_PropertyHandlers.cpp` | `HandleSetObjectProperty` | |
217
- | `get_property` | `McpAutomationBridge_PropertyHandlers.cpp` | `HandleGetObjectProperty` | |
218
- | `get_components` | `McpAutomationBridge_ControlHandlers.cpp` | `HandleControlActorAction` | |
219
- | `list_objects` | `McpAutomationBridge_PropertyHandlers.cpp` | `HandleInspectAction` | |
220
-
221
- ## 14. Audio Manager (`manage_audio`)
222
-
223
- | Action | C++ Handler File | C++ Function | Notes |
224
- | :--- | :--- | :--- | :--- |
225
- | `create_sound_cue` | `McpAutomationBridge_AudioHandlers.cpp` | `HandleAudioAction` | |
226
- | `play_sound_at_location` | `McpAutomationBridge_AudioHandlers.cpp` | `HandleAudioAction` | |
227
- | `create_audio_component` | `McpAutomationBridge_AudioHandlers.cpp` | `HandleAudioAction` | |
228
-
229
- ## 15. Behavior Tree Manager (`manage_behavior_tree`)
230
-
231
- | Action | C++ Handler File | C++ Function | Notes |
232
- | :--- | :--- | :--- | :--- |
233
- | `add_node` | `McpAutomationBridge_BehaviorTreeHandlers.cpp` | `HandleBehaviorTreeAction` | |
234
- | `connect_nodes` | `McpAutomationBridge_BehaviorTreeHandlers.cpp` | `HandleBehaviorTreeAction` | |
235
- | `remove_node` | `McpAutomationBridge_BehaviorTreeHandlers.cpp` | `HandleBehaviorTreeAction` | |
236
- | `break_connections` | `McpAutomationBridge_BehaviorTreeHandlers.cpp` | `HandleBehaviorTreeAction` | |
237
- | `set_node_properties` | `McpAutomationBridge_BehaviorTreeHandlers.cpp` | `HandleBehaviorTreeAction` | |
238
-
239
- ## 16. Blueprint Graph Manager (`manage_blueprint_graph`)
240
-
241
- | Action | C++ Handler File | C++ Function | Notes |
242
- | :--- | :--- | :--- | :--- |
243
- | `create_node` | `McpAutomationBridge_BlueprintGraphHandlers.cpp` | `HandleBlueprintGraphAction` | Dynamic node class resolution |
244
- | `delete_node` | `McpAutomationBridge_BlueprintGraphHandlers.cpp` | `HandleBlueprintGraphAction` | |
245
- | `connect_pins` | `McpAutomationBridge_BlueprintGraphHandlers.cpp` | `HandleBlueprintGraphAction` | |
246
- | `break_pin_links` | `McpAutomationBridge_BlueprintGraphHandlers.cpp` | `HandleBlueprintGraphAction` | |
247
- | `set_node_property` | `McpAutomationBridge_BlueprintGraphHandlers.cpp` | `HandleBlueprintGraphAction` | |
248
- | `list_node_types` | `McpAutomationBridge_BlueprintGraphHandlers.cpp` | `HandleBlueprintGraphAction` | Lists all UK2Node subclasses |
249
- | `set_pin_default_value` | `McpAutomationBridge_BlueprintGraphHandlers.cpp` | `HandleBlueprintGraphAction` | Sets default value on input pins |