unreal-engine-mcp-server 0.4.7 โ 0.5.0
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.
- package/.env.example +26 -0
- package/.env.production +38 -7
- package/.eslintrc.json +0 -54
- package/.eslintrc.override.json +8 -0
- package/.github/ISSUE_TEMPLATE/bug_report.yml +94 -0
- package/.github/ISSUE_TEMPLATE/config.yml +8 -0
- package/.github/ISSUE_TEMPLATE/feature_request.yml +56 -0
- package/.github/copilot-instructions.md +478 -45
- package/.github/dependabot.yml +19 -0
- package/.github/labeler.yml +24 -0
- package/.github/labels.yml +70 -0
- package/.github/pull_request_template.md +42 -0
- package/.github/release-drafter.yml +148 -0
- package/.github/workflows/auto-merge.yml +38 -0
- package/.github/workflows/ci.yml +38 -0
- package/.github/workflows/dependency-review.yml +17 -0
- package/.github/workflows/gemini-issue-triage.yml +172 -0
- package/.github/workflows/greetings.yml +23 -0
- package/.github/workflows/labeler.yml +16 -0
- package/.github/workflows/links.yml +80 -0
- package/.github/workflows/pr-size-labeler.yml +137 -0
- package/.github/workflows/publish-mcp.yml +12 -7
- package/.github/workflows/release-drafter.yml +23 -0
- package/.github/workflows/release.yml +112 -0
- package/.github/workflows/semantic-pull-request.yml +35 -0
- package/.github/workflows/smoke-test.yml +36 -0
- package/.github/workflows/stale.yml +28 -0
- package/CHANGELOG.md +267 -31
- package/CONTRIBUTING.md +140 -0
- package/README.md +166 -71
- package/claude_desktop_config_example.json +7 -6
- package/dist/automation/bridge.d.ts +50 -0
- package/dist/automation/bridge.js +452 -0
- package/dist/automation/connection-manager.d.ts +23 -0
- package/dist/automation/connection-manager.js +107 -0
- package/dist/automation/handshake.d.ts +11 -0
- package/dist/automation/handshake.js +89 -0
- package/dist/automation/index.d.ts +3 -0
- package/dist/automation/index.js +3 -0
- package/dist/automation/message-handler.d.ts +12 -0
- package/dist/automation/message-handler.js +149 -0
- package/dist/automation/request-tracker.d.ts +25 -0
- package/dist/automation/request-tracker.js +98 -0
- package/dist/automation/types.d.ts +130 -0
- package/dist/automation/types.js +2 -0
- package/dist/cli.js +32 -5
- package/dist/config.d.ts +27 -0
- package/dist/config.js +60 -0
- package/dist/constants.d.ts +12 -0
- package/dist/constants.js +12 -0
- package/dist/graphql/resolvers.d.ts +268 -0
- package/dist/graphql/resolvers.js +743 -0
- package/dist/graphql/schema.d.ts +5 -0
- package/dist/graphql/schema.js +437 -0
- package/dist/graphql/server.d.ts +26 -0
- package/dist/graphql/server.js +115 -0
- package/dist/graphql/types.d.ts +7 -0
- package/dist/graphql/types.js +2 -0
- package/dist/handlers/resource-handlers.d.ts +20 -0
- package/dist/handlers/resource-handlers.js +180 -0
- package/dist/index.d.ts +31 -18
- package/dist/index.js +119 -619
- package/dist/prompts/index.js +4 -4
- package/dist/resources/actors.d.ts +17 -12
- package/dist/resources/actors.js +56 -76
- package/dist/resources/assets.d.ts +6 -14
- package/dist/resources/assets.js +115 -147
- package/dist/resources/levels.d.ts +13 -13
- package/dist/resources/levels.js +25 -34
- package/dist/server/resource-registry.d.ts +20 -0
- package/dist/server/resource-registry.js +37 -0
- package/dist/server/tool-registry.d.ts +23 -0
- package/dist/server/tool-registry.js +322 -0
- package/dist/server-setup.d.ts +21 -0
- package/dist/server-setup.js +111 -0
- package/dist/services/health-monitor.d.ts +34 -0
- package/dist/services/health-monitor.js +105 -0
- package/dist/services/metrics-server.d.ts +11 -0
- package/dist/services/metrics-server.js +105 -0
- package/dist/tools/actors.d.ts +147 -9
- package/dist/tools/actors.js +350 -311
- package/dist/tools/animation.d.ts +135 -4
- package/dist/tools/animation.js +510 -411
- package/dist/tools/assets.d.ts +117 -19
- package/dist/tools/assets.js +259 -284
- package/dist/tools/audio.d.ts +102 -42
- package/dist/tools/audio.js +272 -685
- package/dist/tools/base-tool.d.ts +17 -0
- package/dist/tools/base-tool.js +46 -0
- package/dist/tools/behavior-tree.d.ts +94 -0
- package/dist/tools/behavior-tree.js +39 -0
- package/dist/tools/blueprint/helpers.d.ts +29 -0
- package/dist/tools/blueprint/helpers.js +182 -0
- package/dist/tools/blueprint.d.ts +228 -118
- package/dist/tools/blueprint.js +685 -832
- package/dist/tools/consolidated-tool-definitions.d.ts +5462 -1781
- package/dist/tools/consolidated-tool-definitions.js +829 -496
- package/dist/tools/consolidated-tool-handlers.d.ts +2 -1
- package/dist/tools/consolidated-tool-handlers.js +211 -1026
- package/dist/tools/debug.d.ts +143 -85
- package/dist/tools/debug.js +234 -180
- package/dist/tools/dynamic-handler-registry.d.ts +11 -0
- package/dist/tools/dynamic-handler-registry.js +101 -0
- package/dist/tools/editor.d.ts +139 -18
- package/dist/tools/editor.js +239 -244
- package/dist/tools/engine.d.ts +10 -4
- package/dist/tools/engine.js +13 -5
- package/dist/tools/environment.d.ts +36 -0
- package/dist/tools/environment.js +267 -0
- package/dist/tools/foliage.d.ts +105 -14
- package/dist/tools/foliage.js +219 -331
- package/dist/tools/handlers/actor-handlers.d.ts +3 -0
- package/dist/tools/handlers/actor-handlers.js +232 -0
- package/dist/tools/handlers/animation-handlers.d.ts +3 -0
- package/dist/tools/handlers/animation-handlers.js +185 -0
- package/dist/tools/handlers/argument-helper.d.ts +16 -0
- package/dist/tools/handlers/argument-helper.js +80 -0
- package/dist/tools/handlers/asset-handlers.d.ts +3 -0
- package/dist/tools/handlers/asset-handlers.js +496 -0
- package/dist/tools/handlers/audio-handlers.d.ts +3 -0
- package/dist/tools/handlers/audio-handlers.js +166 -0
- package/dist/tools/handlers/blueprint-handlers.d.ts +4 -0
- package/dist/tools/handlers/blueprint-handlers.js +358 -0
- package/dist/tools/handlers/common-handlers.d.ts +14 -0
- package/dist/tools/handlers/common-handlers.js +56 -0
- package/dist/tools/handlers/editor-handlers.d.ts +3 -0
- package/dist/tools/handlers/editor-handlers.js +119 -0
- package/dist/tools/handlers/effect-handlers.d.ts +3 -0
- package/dist/tools/handlers/effect-handlers.js +171 -0
- package/dist/tools/handlers/environment-handlers.d.ts +3 -0
- package/dist/tools/handlers/environment-handlers.js +170 -0
- package/dist/tools/handlers/graph-handlers.d.ts +3 -0
- package/dist/tools/handlers/graph-handlers.js +90 -0
- package/dist/tools/handlers/input-handlers.d.ts +3 -0
- package/dist/tools/handlers/input-handlers.js +21 -0
- package/dist/tools/handlers/inspect-handlers.d.ts +3 -0
- package/dist/tools/handlers/inspect-handlers.js +383 -0
- package/dist/tools/handlers/level-handlers.d.ts +3 -0
- package/dist/tools/handlers/level-handlers.js +237 -0
- package/dist/tools/handlers/lighting-handlers.d.ts +3 -0
- package/dist/tools/handlers/lighting-handlers.js +144 -0
- package/dist/tools/handlers/performance-handlers.d.ts +3 -0
- package/dist/tools/handlers/performance-handlers.js +130 -0
- package/dist/tools/handlers/pipeline-handlers.d.ts +3 -0
- package/dist/tools/handlers/pipeline-handlers.js +110 -0
- package/dist/tools/handlers/sequence-handlers.d.ts +3 -0
- package/dist/tools/handlers/sequence-handlers.js +376 -0
- package/dist/tools/handlers/system-handlers.d.ts +4 -0
- package/dist/tools/handlers/system-handlers.js +506 -0
- package/dist/tools/input.d.ts +19 -0
- package/dist/tools/input.js +89 -0
- package/dist/tools/introspection.d.ts +103 -40
- package/dist/tools/introspection.js +425 -568
- package/dist/tools/landscape.d.ts +97 -36
- package/dist/tools/landscape.js +280 -409
- package/dist/tools/level.d.ts +130 -10
- package/dist/tools/level.js +639 -675
- package/dist/tools/lighting.d.ts +77 -38
- package/dist/tools/lighting.js +441 -943
- package/dist/tools/logs.d.ts +3 -3
- package/dist/tools/logs.js +5 -57
- package/dist/tools/materials.d.ts +91 -24
- package/dist/tools/materials.js +190 -118
- package/dist/tools/niagara.d.ts +149 -39
- package/dist/tools/niagara.js +232 -182
- package/dist/tools/performance.d.ts +27 -12
- package/dist/tools/performance.js +204 -122
- package/dist/tools/physics.d.ts +32 -77
- package/dist/tools/physics.js +171 -582
- package/dist/tools/property-dictionary.d.ts +13 -0
- package/dist/tools/property-dictionary.js +82 -0
- package/dist/tools/sequence.d.ts +73 -48
- package/dist/tools/sequence.js +196 -748
- package/dist/tools/tool-definition-utils.d.ts +59 -0
- package/dist/tools/tool-definition-utils.js +35 -0
- package/dist/tools/ui.d.ts +66 -34
- package/dist/tools/ui.js +134 -214
- package/dist/types/env.d.ts +0 -3
- package/dist/types/env.js +0 -7
- package/dist/types/tool-interfaces.d.ts +898 -0
- package/dist/types/tool-interfaces.js +2 -0
- package/dist/types/tool-types.d.ts +183 -19
- package/dist/types/tool-types.js +0 -4
- package/dist/unreal-bridge.d.ts +24 -131
- package/dist/unreal-bridge.js +364 -1506
- package/dist/utils/command-validator.d.ts +9 -0
- package/dist/utils/command-validator.js +67 -0
- package/dist/utils/elicitation.d.ts +1 -1
- package/dist/utils/elicitation.js +12 -15
- package/dist/utils/error-handler.d.ts +2 -51
- package/dist/utils/error-handler.js +11 -87
- package/dist/utils/ini-reader.d.ts +3 -0
- package/dist/utils/ini-reader.js +69 -0
- package/dist/utils/logger.js +9 -6
- package/dist/utils/normalize.d.ts +3 -0
- package/dist/utils/normalize.js +56 -0
- package/dist/utils/response-factory.d.ts +7 -0
- package/dist/utils/response-factory.js +33 -0
- package/dist/utils/response-validator.d.ts +3 -24
- package/dist/utils/response-validator.js +130 -81
- package/dist/utils/result-helpers.d.ts +4 -5
- package/dist/utils/result-helpers.js +15 -16
- package/dist/utils/safe-json.js +5 -11
- package/dist/utils/unreal-command-queue.d.ts +24 -0
- package/dist/utils/unreal-command-queue.js +120 -0
- package/dist/utils/validation.d.ts +0 -40
- package/dist/utils/validation.js +1 -78
- package/dist/wasm/index.d.ts +70 -0
- package/dist/wasm/index.js +535 -0
- package/docs/GraphQL-API.md +888 -0
- package/docs/Migration-Guide-v0.5.0.md +692 -0
- package/docs/Roadmap.md +53 -0
- package/docs/WebAssembly-Integration.md +628 -0
- package/docs/editor-plugin-extension.md +370 -0
- package/docs/handler-mapping.md +242 -0
- package/docs/native-automation-progress.md +128 -0
- package/docs/testing-guide.md +423 -0
- package/mcp-config-example.json +6 -6
- package/package.json +60 -27
- package/plugins/McpAutomationBridge/Config/FilterPlugin.ini +8 -0
- package/plugins/McpAutomationBridge/McpAutomationBridge.uplugin +64 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/McpAutomationBridge.Build.cs +189 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeGlobals.cpp +22 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeGlobals.h +30 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeHelpers.h +1983 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeModule.cpp +72 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeSettings.cpp +46 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridgeSubsystem.cpp +581 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AnimationHandlers.cpp +2394 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AssetQueryHandlers.cpp +300 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AssetWorkflowHandlers.cpp +2807 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_AudioHandlers.cpp +1087 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BehaviorTreeHandlers.cpp +488 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintCreationHandlers.cpp +643 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintCreationHandlers.h +31 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintGraphHandlers.cpp +1184 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintHandlers.cpp +5652 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_BlueprintHandlers_List.cpp +152 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_ControlHandlers.cpp +2614 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_DebugHandlers.cpp +42 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EditorFunctionHandlers.cpp +1237 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EffectHandlers.cpp +1701 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_EnvironmentHandlers.cpp +2145 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_FoliageHandlers.cpp +954 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_InputHandlers.cpp +209 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_InsightsHandlers.cpp +41 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LandscapeHandlers.cpp +1164 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LevelHandlers.cpp +762 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LightingHandlers.cpp +634 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_LogHandlers.cpp +136 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_MaterialGraphHandlers.cpp +494 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_NiagaraGraphHandlers.cpp +278 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_NiagaraHandlers.cpp +625 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PerformanceHandlers.cpp +401 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PipelineHandlers.cpp +67 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_ProcessRequest.cpp +735 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_PropertyHandlers.cpp +2634 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_RenderHandlers.cpp +189 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SCSHandlers.cpp +917 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SCSHandlers.h +39 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SequenceHandlers.cpp +2670 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_SequencerHandlers.cpp +519 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_TestHandlers.cpp +38 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_UiHandlers.cpp +668 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpAutomationBridge_WorldPartitionHandlers.cpp +346 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpBridgeWebSocket.cpp +1330 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpBridgeWebSocket.h +149 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Private/McpConnectionManager.cpp +783 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpAutomationBridgeSettings.h +115 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpAutomationBridgeSubsystem.h +796 -0
- package/plugins/McpAutomationBridge/Source/McpAutomationBridge/Public/McpConnectionManager.h +117 -0
- package/scripts/check-unreal-connection.mjs +19 -0
- package/scripts/clean-tmp.js +23 -0
- package/scripts/patch-wasm.js +26 -0
- package/scripts/run-all-tests.mjs +131 -0
- package/scripts/smoke-test.ts +94 -0
- package/scripts/sync-mcp-plugin.js +143 -0
- package/scripts/test-no-plugin-alternates.mjs +113 -0
- package/scripts/validate-server.js +46 -0
- package/scripts/verify-automation-bridge.js +200 -0
- package/server.json +57 -21
- package/src/automation/bridge.ts +558 -0
- package/src/automation/connection-manager.ts +130 -0
- package/src/automation/handshake.ts +99 -0
- package/src/automation/index.ts +2 -0
- package/src/automation/message-handler.ts +167 -0
- package/src/automation/request-tracker.ts +123 -0
- package/src/automation/types.ts +107 -0
- package/src/cli.ts +33 -6
- package/src/config.ts +73 -0
- package/src/constants.ts +12 -0
- package/src/graphql/resolvers.ts +1010 -0
- package/src/graphql/schema.ts +452 -0
- package/src/graphql/server.ts +154 -0
- package/src/graphql/types.ts +7 -0
- package/src/handlers/resource-handlers.ts +186 -0
- package/src/index.ts +152 -663
- package/src/prompts/index.ts +4 -4
- package/src/resources/actors.ts +58 -76
- package/src/resources/assets.ts +147 -134
- package/src/resources/levels.ts +28 -33
- package/src/server/resource-registry.ts +47 -0
- package/src/server/tool-registry.ts +354 -0
- package/src/server-setup.ts +148 -0
- package/src/services/health-monitor.ts +132 -0
- package/src/services/metrics-server.ts +142 -0
- package/src/tools/actors.ts +417 -322
- package/src/tools/animation.ts +671 -461
- package/src/tools/assets.ts +353 -289
- package/src/tools/audio.ts +323 -766
- package/src/tools/base-tool.ts +52 -0
- package/src/tools/behavior-tree.ts +45 -0
- package/src/tools/blueprint/helpers.ts +189 -0
- package/src/tools/blueprint.ts +787 -965
- package/src/tools/consolidated-tool-definitions.ts +993 -515
- package/src/tools/consolidated-tool-handlers.ts +272 -1139
- package/src/tools/debug.ts +292 -187
- package/src/tools/dynamic-handler-registry.ts +151 -0
- package/src/tools/editor.ts +309 -246
- package/src/tools/engine.ts +14 -3
- package/src/tools/environment.ts +287 -0
- package/src/tools/foliage.ts +314 -379
- package/src/tools/handlers/actor-handlers.ts +271 -0
- package/src/tools/handlers/animation-handlers.ts +237 -0
- package/src/tools/handlers/argument-helper.ts +142 -0
- package/src/tools/handlers/asset-handlers.ts +532 -0
- package/src/tools/handlers/audio-handlers.ts +194 -0
- package/src/tools/handlers/blueprint-handlers.ts +380 -0
- package/src/tools/handlers/common-handlers.ts +87 -0
- package/src/tools/handlers/editor-handlers.ts +123 -0
- package/src/tools/handlers/effect-handlers.ts +220 -0
- package/src/tools/handlers/environment-handlers.ts +183 -0
- package/src/tools/handlers/graph-handlers.ts +116 -0
- package/src/tools/handlers/input-handlers.ts +28 -0
- package/src/tools/handlers/inspect-handlers.ts +450 -0
- package/src/tools/handlers/level-handlers.ts +252 -0
- package/src/tools/handlers/lighting-handlers.ts +147 -0
- package/src/tools/handlers/performance-handlers.ts +132 -0
- package/src/tools/handlers/pipeline-handlers.ts +127 -0
- package/src/tools/handlers/sequence-handlers.ts +415 -0
- package/src/tools/handlers/system-handlers.ts +564 -0
- package/src/tools/input.ts +101 -0
- package/src/tools/introspection.ts +493 -584
- package/src/tools/landscape.ts +394 -489
- package/src/tools/level.ts +752 -694
- package/src/tools/lighting.ts +583 -984
- package/src/tools/logs.ts +9 -57
- package/src/tools/materials.ts +231 -121
- package/src/tools/niagara.ts +293 -168
- package/src/tools/performance.ts +320 -168
- package/src/tools/physics.ts +268 -613
- package/src/tools/property-dictionary.ts +98 -0
- package/src/tools/sequence.ts +255 -815
- package/src/tools/tool-definition-utils.ts +35 -0
- package/src/tools/ui.ts +207 -283
- package/src/types/env.ts +0 -10
- package/src/types/tool-interfaces.ts +250 -0
- package/src/types/tool-types.ts +243 -21
- package/src/unreal-bridge.ts +460 -1550
- package/src/utils/command-validator.ts +75 -0
- package/src/utils/elicitation.ts +10 -7
- package/src/utils/error-handler.ts +14 -90
- package/src/utils/ini-reader.ts +86 -0
- package/src/utils/logger.ts +8 -3
- package/src/utils/normalize.ts +60 -0
- package/src/utils/response-factory.ts +39 -0
- package/src/utils/response-validator.ts +176 -56
- package/src/utils/result-helpers.ts +21 -19
- package/src/utils/safe-json.ts +14 -11
- package/src/utils/unreal-command-queue.ts +152 -0
- package/src/utils/validation.ts +4 -1
- package/src/wasm/index.ts +838 -0
- package/test-server.mjs +100 -0
- package/tests/run-unreal-tool-tests.mjs +242 -14
- package/tests/test-animation.mjs +44 -0
- package/tests/test-asset-advanced.mjs +82 -0
- package/tests/test-asset-errors.mjs +35 -0
- package/tests/test-audio.mjs +219 -0
- package/tests/test-automation-timeouts.mjs +98 -0
- package/tests/test-behavior-tree.mjs +261 -0
- package/tests/test-blueprint-events.mjs +35 -0
- package/tests/test-blueprint-graph.mjs +79 -0
- package/tests/test-blueprint.mjs +577 -0
- package/tests/test-client-mode.mjs +86 -0
- package/tests/test-console-command.mjs +56 -0
- package/tests/test-control-actor.mjs +425 -0
- package/tests/test-control-editor.mjs +80 -0
- package/tests/test-extra-tools.mjs +38 -0
- package/tests/test-graphql.mjs +322 -0
- package/tests/test-inspect.mjs +72 -0
- package/tests/test-landscape.mjs +60 -0
- package/tests/test-manage-asset.mjs +438 -0
- package/tests/test-manage-level.mjs +70 -0
- package/tests/test-materials.mjs +356 -0
- package/tests/test-niagara.mjs +185 -0
- package/tests/test-no-inline-python.mjs +122 -0
- package/tests/test-plugin-handshake.mjs +82 -0
- package/tests/test-render.mjs +33 -0
- package/tests/test-runner.mjs +933 -0
- package/tests/test-search-assets.mjs +66 -0
- package/tests/test-sequence.mjs +68 -0
- package/tests/test-system.mjs +57 -0
- package/tests/test-wasm.mjs +193 -0
- package/tests/test-world-partition.mjs +215 -0
- package/tsconfig.json +3 -3
- package/wasm/Cargo.lock +363 -0
- package/wasm/Cargo.toml +42 -0
- package/wasm/LICENSE +21 -0
- package/wasm/README.md +253 -0
- package/wasm/src/dependency_resolver.rs +377 -0
- package/wasm/src/lib.rs +153 -0
- package/wasm/src/property_parser.rs +271 -0
- package/wasm/src/transform_math.rs +396 -0
- package/wasm/tests/integration.rs +109 -0
- package/.github/workflows/smithery-build.yml +0 -29
- package/dist/tools/build_environment_advanced.d.ts +0 -65
- package/dist/tools/build_environment_advanced.js +0 -633
- package/dist/tools/rc.d.ts +0 -110
- package/dist/tools/rc.js +0 -437
- package/dist/tools/visual.d.ts +0 -40
- package/dist/tools/visual.js +0 -282
- package/dist/utils/http.d.ts +0 -6
- package/dist/utils/http.js +0 -151
- package/dist/utils/python-output.d.ts +0 -18
- package/dist/utils/python-output.js +0 -290
- package/dist/utils/python.d.ts +0 -2
- package/dist/utils/python.js +0 -4
- package/dist/utils/stdio-redirect.d.ts +0 -2
- package/dist/utils/stdio-redirect.js +0 -20
- package/docs/unreal-tool-test-cases.md +0 -574
- package/smithery.yaml +0 -29
- package/src/tools/build_environment_advanced.ts +0 -732
- package/src/tools/rc.ts +0 -515
- package/src/tools/visual.ts +0 -281
- package/src/utils/http.ts +0 -187
- package/src/utils/python-output.ts +0 -351
- package/src/utils/python.ts +0 -3
- package/src/utils/stdio-redirect.ts +0 -18
|
@@ -2,31 +2,32 @@ name: Publish to MCP Registry
|
|
|
2
2
|
|
|
3
3
|
on:
|
|
4
4
|
push:
|
|
5
|
-
tags: ["v*"]
|
|
6
|
-
workflow_dispatch:
|
|
5
|
+
tags: ["v*"]
|
|
6
|
+
workflow_dispatch:
|
|
7
7
|
|
|
8
8
|
jobs:
|
|
9
9
|
publish:
|
|
10
10
|
runs-on: ubuntu-latest
|
|
11
11
|
permissions:
|
|
12
|
-
id-token: write
|
|
12
|
+
id-token: write
|
|
13
13
|
contents: read
|
|
14
14
|
|
|
15
15
|
steps:
|
|
16
16
|
- name: Checkout code
|
|
17
|
-
uses: actions/checkout@
|
|
17
|
+
uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
|
18
18
|
|
|
19
19
|
- name: Setup Node.js
|
|
20
|
-
uses: actions/setup-node@
|
|
20
|
+
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
|
21
21
|
with:
|
|
22
22
|
node-version: "20"
|
|
23
23
|
registry-url: "https://registry.npmjs.org"
|
|
24
|
+
cache: 'npm'
|
|
24
25
|
|
|
25
26
|
- name: Install dependencies
|
|
26
27
|
run: npm ci
|
|
27
28
|
|
|
28
|
-
- name: Run tests
|
|
29
|
-
run: npm run test
|
|
29
|
+
- name: Run smoke tests
|
|
30
|
+
run: npm run test:smoke
|
|
30
31
|
continue-on-error: true
|
|
31
32
|
|
|
32
33
|
- name: Run linting
|
|
@@ -59,17 +60,21 @@ jobs:
|
|
|
59
60
|
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
|
|
60
61
|
|
|
61
62
|
- name: Install MCP Publisher
|
|
63
|
+
if: ${{ success() }}
|
|
62
64
|
run: |
|
|
63
65
|
curl -L "https://github.com/modelcontextprotocol/registry/releases/download/v1.1.0/mcp-publisher_1.1.0_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar xz mcp-publisher
|
|
64
66
|
chmod +x mcp-publisher
|
|
65
67
|
|
|
66
68
|
- name: Login to MCP Registry
|
|
69
|
+
if: ${{ success() }}
|
|
67
70
|
run: ./mcp-publisher login github-oidc
|
|
68
71
|
|
|
69
72
|
- name: Publish to MCP Registry
|
|
73
|
+
if: ${{ success() }}
|
|
70
74
|
run: ./mcp-publisher publish
|
|
71
75
|
|
|
72
76
|
- name: Verify publication
|
|
77
|
+
if: ${{ always() }}
|
|
73
78
|
run: |
|
|
74
79
|
echo "Waiting for registry to update..."
|
|
75
80
|
sleep 30
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
name: Release Drafter
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- main
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
|
|
9
|
+
permissions:
|
|
10
|
+
contents: read
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
update_release_draft:
|
|
14
|
+
permissions:
|
|
15
|
+
contents: write
|
|
16
|
+
pull-requests: write
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
steps:
|
|
19
|
+
- uses: release-drafter/release-drafter@v6.1.0 # v6.1.0
|
|
20
|
+
with:
|
|
21
|
+
config-name: release-drafter.yml
|
|
22
|
+
env:
|
|
23
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
name: Create GitHub Release
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
tags:
|
|
6
|
+
- 'v*.*.*'
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
contents: write
|
|
10
|
+
|
|
11
|
+
jobs:
|
|
12
|
+
release:
|
|
13
|
+
name: Create Release
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
|
|
16
|
+
steps:
|
|
17
|
+
- name: Checkout code
|
|
18
|
+
uses: actions/checkout@v4 # v4
|
|
19
|
+
with:
|
|
20
|
+
fetch-depth: 0
|
|
21
|
+
|
|
22
|
+
- name: Setup Node.js
|
|
23
|
+
uses: actions/setup-node@v4 # v4
|
|
24
|
+
with:
|
|
25
|
+
node-version: '20'
|
|
26
|
+
cache: 'npm'
|
|
27
|
+
|
|
28
|
+
- name: Install dependencies
|
|
29
|
+
run: npm ci
|
|
30
|
+
|
|
31
|
+
- name: Build package
|
|
32
|
+
run: npm run build
|
|
33
|
+
|
|
34
|
+
- name: Extract version from tag
|
|
35
|
+
id: version
|
|
36
|
+
run: |
|
|
37
|
+
VERSION=${GITHUB_REF#refs/tags/v}
|
|
38
|
+
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
|
39
|
+
echo "tag=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
|
|
40
|
+
echo "Releasing version: $VERSION"
|
|
41
|
+
|
|
42
|
+
- name: Extract changelog for this version
|
|
43
|
+
id: changelog
|
|
44
|
+
run: |
|
|
45
|
+
VERSION=${{ steps.version.outputs.version }}
|
|
46
|
+
|
|
47
|
+
CHANGELOG=$(awk -v ver="$VERSION" '
|
|
48
|
+
$0 ~ "## .*\\[" ver "\\]" { found=1; next }
|
|
49
|
+
found && /^## .*\[/ { exit }
|
|
50
|
+
found { print }
|
|
51
|
+
' CHANGELOG.md)
|
|
52
|
+
|
|
53
|
+
if [ -z "$CHANGELOG" ]; then
|
|
54
|
+
CHANGELOG="Release ${{ steps.version.outputs.tag }}"
|
|
55
|
+
fi
|
|
56
|
+
|
|
57
|
+
echo "$CHANGELOG" > release_notes.md
|
|
58
|
+
echo "Generated release notes:"
|
|
59
|
+
cat release_notes.md
|
|
60
|
+
|
|
61
|
+
- name: Create dist archive
|
|
62
|
+
run: |
|
|
63
|
+
mkdir -p release-artifacts
|
|
64
|
+
|
|
65
|
+
tar -czvf release-artifacts/unreal-engine-mcp-server-${{ steps.version.outputs.version }}.tar.gz \
|
|
66
|
+
dist/ \
|
|
67
|
+
package.json \
|
|
68
|
+
README.md \
|
|
69
|
+
CHANGELOG.md \
|
|
70
|
+
LICENSE
|
|
71
|
+
|
|
72
|
+
zip -r release-artifacts/unreal-engine-mcp-server-${{ steps.version.outputs.version }}.zip \
|
|
73
|
+
dist/ \
|
|
74
|
+
package.json \
|
|
75
|
+
README.md \
|
|
76
|
+
CHANGELOG.md \
|
|
77
|
+
LICENSE
|
|
78
|
+
|
|
79
|
+
- name: Create Plugin archive
|
|
80
|
+
run: |
|
|
81
|
+
if [ -d "plugins/McpAutomationBridge" ]; then
|
|
82
|
+
tar -czvf release-artifacts/McpAutomationBridge-plugin-${{ steps.version.outputs.version }}.tar.gz \
|
|
83
|
+
plugins/McpAutomationBridge/
|
|
84
|
+
|
|
85
|
+
zip -r release-artifacts/McpAutomationBridge-plugin-${{ steps.version.outputs.version }}.zip \
|
|
86
|
+
plugins/McpAutomationBridge/
|
|
87
|
+
|
|
88
|
+
echo "Plugin archive created"
|
|
89
|
+
else
|
|
90
|
+
echo "Plugin directory not found, skipping plugin archive"
|
|
91
|
+
fi
|
|
92
|
+
|
|
93
|
+
- name: Create GitHub Release
|
|
94
|
+
uses: softprops/action-gh-release@c062e08bd532815e2082a85e87e3ef29c3e6d191 # v2.0.8
|
|
95
|
+
with:
|
|
96
|
+
name: Release ${{ steps.version.outputs.tag }}
|
|
97
|
+
body_path: release_notes.md
|
|
98
|
+
draft: false
|
|
99
|
+
prerelease: ${{ contains(github.ref, 'alpha') || contains(github.ref, 'beta') || contains(github.ref, 'rc') }}
|
|
100
|
+
files: |
|
|
101
|
+
release-artifacts/*
|
|
102
|
+
env:
|
|
103
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
104
|
+
|
|
105
|
+
- name: Release Summary
|
|
106
|
+
run: |
|
|
107
|
+
echo "## Release Created Successfully! ๐" >> $GITHUB_STEP_SUMMARY
|
|
108
|
+
echo "" >> $GITHUB_STEP_SUMMARY
|
|
109
|
+
echo "**Version:** ${{ steps.version.outputs.tag }}" >> $GITHUB_STEP_SUMMARY
|
|
110
|
+
echo "" >> $GITHUB_STEP_SUMMARY
|
|
111
|
+
echo "### Artifacts:" >> $GITHUB_STEP_SUMMARY
|
|
112
|
+
ls -la release-artifacts/ >> $GITHUB_STEP_SUMMARY
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
name: "Semantic Pull Request"
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request_target:
|
|
5
|
+
types:
|
|
6
|
+
- opened
|
|
7
|
+
- edited
|
|
8
|
+
- synchronize
|
|
9
|
+
|
|
10
|
+
permissions:
|
|
11
|
+
pull-requests: read
|
|
12
|
+
statuses: write
|
|
13
|
+
|
|
14
|
+
jobs:
|
|
15
|
+
main:
|
|
16
|
+
name: Validate PR Title
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
steps:
|
|
19
|
+
- uses: amannn/action-semantic-pull-request@48f256284bd46cdaab1048c3721360e808335d50 # v6.1.1
|
|
20
|
+
env:
|
|
21
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
22
|
+
with:
|
|
23
|
+
types: |
|
|
24
|
+
feat
|
|
25
|
+
fix
|
|
26
|
+
docs
|
|
27
|
+
style
|
|
28
|
+
refactor
|
|
29
|
+
perf
|
|
30
|
+
test
|
|
31
|
+
build
|
|
32
|
+
ci
|
|
33
|
+
chore
|
|
34
|
+
revert
|
|
35
|
+
requireScope: false
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
name: Smoke Test (Mock Mode)
|
|
2
|
+
permissions:
|
|
3
|
+
contents: read
|
|
4
|
+
|
|
5
|
+
on:
|
|
6
|
+
push:
|
|
7
|
+
branches: [ "main" ]
|
|
8
|
+
pull_request:
|
|
9
|
+
branches: [ "main" ]
|
|
10
|
+
|
|
11
|
+
concurrency:
|
|
12
|
+
group: ${{ github.workflow }}-${{ github.ref }}
|
|
13
|
+
cancel-in-progress: true
|
|
14
|
+
|
|
15
|
+
jobs:
|
|
16
|
+
smoke-test:
|
|
17
|
+
runs-on: ubuntu-latest
|
|
18
|
+
steps:
|
|
19
|
+
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
|
20
|
+
|
|
21
|
+
- name: Use Node.js
|
|
22
|
+
uses: actions/setup-node@395ad3262231945c25e8478fd5baf05154b1d79f # v6.1.0
|
|
23
|
+
with:
|
|
24
|
+
node-version: '20.x'
|
|
25
|
+
cache: 'npm'
|
|
26
|
+
|
|
27
|
+
- name: Install dependencies
|
|
28
|
+
run: npm ci
|
|
29
|
+
|
|
30
|
+
- name: Build
|
|
31
|
+
run: npm run build
|
|
32
|
+
|
|
33
|
+
- name: Run Smoke Test
|
|
34
|
+
run: npm run test:smoke
|
|
35
|
+
env:
|
|
36
|
+
MOCK_UNREAL_CONNECTION: "true"
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: '๐ท๏ธ Stale Issue and PR Management'
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
schedule:
|
|
5
|
+
- cron: '0 0 * * *'
|
|
6
|
+
workflow_dispatch:
|
|
7
|
+
|
|
8
|
+
permissions:
|
|
9
|
+
issues: write
|
|
10
|
+
pull-requests: write
|
|
11
|
+
|
|
12
|
+
jobs:
|
|
13
|
+
stale:
|
|
14
|
+
runs-on: ubuntu-latest
|
|
15
|
+
steps:
|
|
16
|
+
- uses: actions/stale@997185467fa4f803885201cee163a9f38240193d # v10.1.1
|
|
17
|
+
with:
|
|
18
|
+
stale-issue-message: 'This issue has been automatically marked as stale because it has not had recent activity. It will be closed in 14 days if no further activity occurs. Thank you for your contributions!'
|
|
19
|
+
stale-pr-message: 'This pull request has been automatically marked as stale because it has not had recent activity. It will be closed in 14 days if no further activity occurs. Please update your PR or add a comment if you would like to keep it open.'
|
|
20
|
+
close-issue-message: 'This issue was closed because it has been stale for 14 days with no activity.'
|
|
21
|
+
close-pr-message: 'This pull request was closed because it has been stale for 14 days with no activity.'
|
|
22
|
+
days-before-stale: 60
|
|
23
|
+
days-before-close: 14
|
|
24
|
+
stale-issue-label: 'stale'
|
|
25
|
+
stale-pr-label: 'stale'
|
|
26
|
+
exempt-issue-labels: 'pinned,security,bug,enhancement'
|
|
27
|
+
exempt-pr-labels: 'pinned,security'
|
|
28
|
+
operations-per-run: 100
|
package/CHANGELOG.md
CHANGED
|
@@ -1,43 +1,279 @@
|
|
|
1
|
-
# Changelog
|
|
1
|
+
# ๐ Changelog
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
- Output Log reading via `system_control` tool with `read_log` action. Supports filtering by category (comma-separated or array), log level (Error, Warning, Log, Verbose, VeryVerbose, All), line count (up to 2000), specific log path, include prefixes, and exclude categories. Automatically resolves the latest project log under Saved/Logs.
|
|
8
|
-
- New `src/tools/logs.ts` implementing robust log tailing, parsing (timestamp/category/level/message), and UE-specific internal entry filtering (e.g., excludes LogPython RESULT: blocks unless requested).
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
9
7
|
|
|
10
|
-
|
|
11
|
-
- `system_control` tool schema: Added `read_log` action with full filter parameters to inputSchema; extended outputSchema with `logPath`, `entries` array, and `filteredCount`.
|
|
12
|
-
- Updated `src/tools/consolidated-tool-handlers.ts` to route `read_log` to LogTools without requiring UE connection (file-based).
|
|
13
|
-
- `src/index.ts`: Instantiates and passes LogTools to consolidated handler.
|
|
14
|
-
- Version bumped to 0.4.7 in package.json, package-lock.json, server.json, .env.production, and runtime config.
|
|
8
|
+
---
|
|
15
9
|
|
|
16
|
-
## [0.
|
|
17
|
-
### Fixed
|
|
18
|
-
- Fixed duplicate response output issue where tool responses were being displayed twice in MCP content
|
|
19
|
-
- Response validator now emits concise summaries in text content instead of duplicating full JSON payloads
|
|
20
|
-
- Structured content is preserved for validation and tests while user-facing output is streamlined
|
|
10
|
+
## ๐ท๏ธ [0.5.0] - 2025-12-16
|
|
21
11
|
|
|
22
|
-
|
|
23
|
-
###
|
|
24
|
-
|
|
25
|
-
-
|
|
12
|
+
> [!IMPORTANT]
|
|
13
|
+
> ### ๐ Major Architecture Migration
|
|
14
|
+
> This release marks the **complete migration** from Unreal's built-in Remote Plugin to a native C++ **McpAutomationBridge** plugin. This provides:
|
|
15
|
+
> - โก Better performance
|
|
16
|
+
> - ๐ Tighter editor integration
|
|
17
|
+
> - ๐ซ No dependency on Unreal's Remote API
|
|
18
|
+
>
|
|
19
|
+
> **BREAKING CHANGE:** Response format has been standardized across all automation tools. Clients should expect responses to follow the new `StandardActionResponse` format with `success`, `data`, `warnings`, and `error` fields.
|
|
26
20
|
|
|
27
|
-
###
|
|
28
|
-
- Make `createServer` a synchronous factory (removed `async`) and updated `createServerDefault` and `startStdioServer` to use the synchronous factory. This aligns the exported default with Smitheryโs expectations and prevents auto-start mismatches in the bundled output.
|
|
29
|
-
- Provide a default for `ueHost` in the exported `configSchema` so the Smithery configuration dialog pre-fills the host input.
|
|
21
|
+
### ๐๏ธ Architecture
|
|
30
22
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
23
|
+
| Change | Description |
|
|
24
|
+
|--------|-------------|
|
|
25
|
+
| ๐ **Native C++ Plugin** | Introduced `McpAutomationBridge` - a native UE5 editor plugin replacing the Remote API |
|
|
26
|
+
| ๐ **Direct Editor Integration** | Commands execute directly in the editor context via automation bridge subsystem |
|
|
27
|
+
| ๐ **WebSocket Communication** | Implemented `McpBridgeWebSocket` for real-time bidirectional communication |
|
|
28
|
+
| ๐ฏ **Bridge-First Architecture** | All operations route through the native C++ bridge (`fe65968`) |
|
|
29
|
+
| ๐ **Standardized Responses** | All tools now return `StandardActionResponse` format (`0a8999b`) |
|
|
34
30
|
|
|
35
|
-
###
|
|
36
|
-
- Rebuilt the Smithery bundle and TypeScript output to ensure schema and defaults are exported in the distributed artifact.
|
|
31
|
+
### โจ Added
|
|
37
32
|
|
|
38
|
-
|
|
39
|
-
|
|
33
|
+
<details>
|
|
34
|
+
<summary><b>๐ฎ Engine Compatibility</b></summary>
|
|
40
35
|
|
|
36
|
+
- **UE 5.7 Support** - Updated McpAutomationBridge with ControlRig dynamic loading and improved sequence handling (`ec5409b`)
|
|
41
37
|
|
|
42
|
-
|
|
43
|
-
|
|
38
|
+
</details>
|
|
39
|
+
|
|
40
|
+
<details>
|
|
41
|
+
<summary><b>๐ง New APIs & Integrations</b></summary>
|
|
42
|
+
|
|
43
|
+
- **GraphQL API** - Broadened automation bridge with GraphQL support, WASM integration, UI/editor integrations (`ffdd814`)
|
|
44
|
+
- **WebAssembly Integration** - High-performance JSON parsing with 5-8x performance gains (`23f63c7`)
|
|
45
|
+
|
|
46
|
+
</details>
|
|
47
|
+
|
|
48
|
+
<details>
|
|
49
|
+
<summary><b>๐ Automation Bridge Features</b></summary>
|
|
50
|
+
|
|
51
|
+
| Feature | Commit |
|
|
52
|
+
|---------|--------|
|
|
53
|
+
| Server mode on port `8091` | `267aa42` |
|
|
54
|
+
| Client mode with enhanced connection handling | `bf0fa56` |
|
|
55
|
+
| Heartbeat tracking and output capturing | `28242e1` |
|
|
56
|
+
| Event handling and asset management | `d10e1e2` |
|
|
57
|
+
|
|
58
|
+
</details>
|
|
59
|
+
|
|
60
|
+
<details>
|
|
61
|
+
<summary><b>๐๏ธ New Tool Systems (0a8999b, 0ac82ac)</b></summary>
|
|
62
|
+
|
|
63
|
+
| Tool | Description |
|
|
64
|
+
|------|-------------|
|
|
65
|
+
| ๐ฎ **Input Management** | New `manage_input` tool with EnhancedInput support for Input Actions and Mapping Contexts |
|
|
66
|
+
| ๐ก **Lighting Manager** | Full lighting configuration via `manage_lighting` including spawn, GI setup, shadow config, build lighting |
|
|
67
|
+
| ๐ **Performance Manager** | `manage_performance` with profiling (CPU/GPU/Memory), optimization, scalability, Nanite/Lumen config |
|
|
68
|
+
| ๐ณ **Behavior Tree Editing** | Full behavior tree creation and node editing via `manage_behavior_tree` |
|
|
69
|
+
| ๐ฌ **Enhanced Sequencer** | Track operations (add/remove tracks, set muted/solo/locked), display rate, tick resolution |
|
|
70
|
+
| ๐ **World Partition** | Cell management, data layer toggling via `manage_level` |
|
|
71
|
+
| ๐ผ๏ธ **Widget Management** | UI widget creation, visibility controls, child widget adding |
|
|
72
|
+
|
|
73
|
+
</details>
|
|
74
|
+
|
|
75
|
+
<details>
|
|
76
|
+
<summary><b>๐ Graph Editing Capabilities (0a8999b)</b></summary>
|
|
77
|
+
|
|
78
|
+
- **Blueprint Graph** - Direct node manipulation with `manage_blueprint_graph` (create_node, delete_node, connect_pins, etc.)
|
|
79
|
+
- **Material Graph** - Node operations via `manage_asset` (add_material_node, connect_material_pins, etc.)
|
|
80
|
+
- **Niagara Graph** - Module and parameter editing (add_niagara_module, set_niagara_parameter, etc.)
|
|
81
|
+
|
|
82
|
+
</details>
|
|
83
|
+
|
|
84
|
+
<details>
|
|
85
|
+
<summary><b>๐ ๏ธ New Handlers & Actions</b></summary>
|
|
86
|
+
|
|
87
|
+
- Blueprint graph management and Niagara functionalities (`aff4d55`)
|
|
88
|
+
- Physics simulation setup in AnimationTools (`83a6f5d`)
|
|
89
|
+
- **New Asset Actions:**
|
|
90
|
+
- `generate_lods`, `add_material_parameter`, `list_instances`
|
|
91
|
+
- `reset_instance_parameters`, `get_material_stats`, `exists`
|
|
92
|
+
- `nanite_rebuild_mesh`
|
|
93
|
+
- World partition and rendering tool handlers (`83a6f5d`)
|
|
94
|
+
- Screenshot with base64 image encoding (`bb4f6a8`)
|
|
95
|
+
|
|
96
|
+
</details>
|
|
97
|
+
|
|
98
|
+
<details>
|
|
99
|
+
<summary><b>๐งช Test Suites</b></summary>
|
|
100
|
+
|
|
101
|
+
**50+ new test cases** covering:
|
|
102
|
+
- Animation, Assets, Materials
|
|
103
|
+
- Sequences, World Partition
|
|
104
|
+
- Blueprints, Niagara, Behavior Trees
|
|
105
|
+
- Audio, Input Actions
|
|
106
|
+
- And more! (`31c6db9`, `85817c9`, `fc47839`, `02fd2af`)
|
|
107
|
+
|
|
108
|
+
</details>
|
|
109
|
+
|
|
110
|
+
### ๐ Changed
|
|
111
|
+
|
|
112
|
+
#### Core Refactors
|
|
113
|
+
| Component | Change | Commit |
|
|
114
|
+
|-----------|--------|--------|
|
|
115
|
+
| `SequenceTools` | Migrated to Automation Bridge | `c2fb15a` |
|
|
116
|
+
| `UnrealBridge` | Refactored for bridge connection | `7bd48d8` |
|
|
117
|
+
| Automation Dispatch | Editor-native handlers modernization | `c9db1a4` |
|
|
118
|
+
| Test Runner | Timeout expectations & content extraction | `c9766b0` |
|
|
119
|
+
| UI Handlers | Improved readability and organization | `bb4f6a8` |
|
|
120
|
+
| Connection Manager | Streamlined connection handling | `0ac82ac` |
|
|
121
|
+
|
|
122
|
+
#### Tool Improvements
|
|
123
|
+
- ๐ **PhysicsTools** - Vehicle config logic updated, deprecated checks removed (`6dba9f7`)
|
|
124
|
+
- ๐ฌ **AnimationTools** - Logging and response normalization (`7666c31`)
|
|
125
|
+
- โ ๏ธ **Error Handling** - Utilities refactored, INI file reader added (`f5444e4`)
|
|
126
|
+
- ๐ **Blueprint Actions** - Timeout handling enhancements (`65d2738`)
|
|
127
|
+
- ๐จ **Materials** - Enhanced material graph editing capabilities (`0a8999b`)
|
|
128
|
+
- ๐ **Audio** - Improved sound component management (`0a8999b`)
|
|
129
|
+
|
|
130
|
+
#### Other Changes
|
|
131
|
+
- ๐ก **Connection & Logging** - Improved error messages for clarity (`41350b3`)
|
|
132
|
+
- ๐ **Documentation** - README updated with UE 5.7, WASM docs, architecture overview, 17 tools (`8d72f28`, `4d77b7e`)
|
|
133
|
+
- ๐ **Dependencies** - Updated to latest versions (`08eede5`)
|
|
134
|
+
- ๐ **Type Definitions** - Enhanced tool interfaces and type coverage (`0a8999b`)
|
|
135
|
+
|
|
136
|
+
### ๐ Fixed
|
|
137
|
+
|
|
138
|
+
- `McpAutomationBridgeSubsystem` - Header removal, logging category, heartbeat methods (`498f644`)
|
|
139
|
+
- `McpBridgeWebSocket` - Reliable WebSocket communication (`861ad91`)
|
|
140
|
+
- **AutomationBridge** - Heartbeat handling and server metadata retrieval (`0da54f7`)
|
|
141
|
+
- **UI Handlers** - Missing payload and invalid widget path error handling (`bb4f6a8`)
|
|
142
|
+
- **Screenshot** - Clearer error messages and flow (`bb4f6a8`)
|
|
143
|
+
|
|
144
|
+
### ๐๏ธ Removed
|
|
145
|
+
|
|
146
|
+
| Removed | Reason |
|
|
147
|
+
|---------|--------|
|
|
148
|
+
| ๐ Remote API Dependency | Replaced by native C++ plugin |
|
|
149
|
+
| ๐ Python Fallbacks | Native C++ automation preferred (`fe65968`) |
|
|
150
|
+
| ๐ฆ Unused HTTP Client | Cleanup from error-handler (`f5444e4`) |
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## ๐ท๏ธ [0.4.7] - 2025-11-16
|
|
155
|
+
|
|
156
|
+
### โจ Added
|
|
157
|
+
- Output Log reading via `system_control` tool with `read_log` action. filtering by category, level, line count.
|
|
158
|
+
- New `src/tools/logs.ts` implementing robust log tailing.
|
|
159
|
+
- ๐ Initial `McpAutomationBridge` plugin with foundational implementation (`30e62f9`)
|
|
160
|
+
- ๐งช Comprehensive test suites for various Unreal Engine tools (`31c6db9`)
|
|
161
|
+
|
|
162
|
+
### ๐ Changed
|
|
163
|
+
- `system_control` tool schema: Added `read_log` action.
|
|
164
|
+
- Updated tool handlers to route `read_log` to LogTools.
|
|
165
|
+
- Version bumped to 0.4.7.
|
|
166
|
+
|
|
167
|
+
### ๐ Documentation
|
|
168
|
+
- Updated README.md with initial bridge documentation (`a24dafd`)
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## ๐ท๏ธ [0.4.6] - 2025-10-04
|
|
173
|
+
|
|
174
|
+
### ๐ Fixed
|
|
175
|
+
- Fixed duplicate response output issue where tool responses were displayed twice in MCP content
|
|
176
|
+
- Response validator now emits concise summaries instead of duplicating full JSON payloads
|
|
177
|
+
- Structured content preserved for validation while user-facing output is streamlined
|
|
178
|
+
|
|
179
|
+
---
|
|
180
|
+
|
|
181
|
+
## ๐ท๏ธ [0.4.5] - 2025-10-03
|
|
182
|
+
|
|
183
|
+
### โจ Added
|
|
184
|
+
- ๐ง Expose `UE_PROJECT_PATH` environment variable across runtime config, Smithery manifest, and client configs
|
|
185
|
+
- ๐ Added `projectPath` to runtime `configSchema` for Smithery's session UI
|
|
186
|
+
|
|
187
|
+
### ๐ Changed
|
|
188
|
+
- โก Made `createServer` synchronous factory (removed `async`)
|
|
189
|
+
- ๐ Default for `ueHost` in exported `configSchema`
|
|
190
|
+
|
|
191
|
+
### ๐ Documentation
|
|
192
|
+
- Updated `README.md`, config examples to include `UE_PROJECT_PATH`
|
|
193
|
+
- Updated `smithery.yaml` and `server.json` manifests
|
|
194
|
+
|
|
195
|
+
### ๐จ Build
|
|
196
|
+
- Rebuilt Smithery bundle and TypeScript output
|
|
197
|
+
|
|
198
|
+
### ๐ Fixed
|
|
199
|
+
- Smithery UI blank `ueHost` field by defining default in runtime schema
|
|
200
|
+
|
|
201
|
+
---
|
|
202
|
+
|
|
203
|
+
## ๐ท๏ธ [0.4.4] - 2025-09-28
|
|
204
|
+
|
|
205
|
+
### โจ Improvements
|
|
206
|
+
|
|
207
|
+
- ๐ค **Client Elicitation Helper** - Added support for Cursor, VS Code, Claude Desktop, and other MCP clients
|
|
208
|
+
- ๐ **Consistent RESULT Parsing** - Handles JSON5 and legacy Python literals across all tools
|
|
209
|
+
- ๐ **Safe Output Stringification** - Robust handling of circular references and complex objects
|
|
210
|
+
- ๐ **Enhanced Logging** - Improved validation messages for easier debugging
|
|
211
|
+
|
|
212
|
+
---
|
|
213
|
+
|
|
214
|
+
## ๐ท๏ธ [0.4.0] - 2025-09-20
|
|
215
|
+
|
|
216
|
+
> **Major Release** - Consolidated Tools Mode
|
|
217
|
+
|
|
218
|
+
### โจ Improvements
|
|
219
|
+
|
|
220
|
+
- ๐ฏ **Consolidated Tools Mode Exclusively** - Removed legacy mode, all tools now use unified handler system
|
|
221
|
+
- ๐งน **Simplified Tool Handlers** - Removed deprecated code paths and inline plugin validation
|
|
222
|
+
- ๐ **Enhanced Error Handling** - Better error messages and recovery mechanisms
|
|
223
|
+
|
|
224
|
+
### ๐ง Quality & Maintenance
|
|
225
|
+
|
|
226
|
+
- โก Reduced resource usage by optimizing tool handlers
|
|
227
|
+
- ๐งน Cleanup of deprecated environment variables
|
|
228
|
+
|
|
229
|
+
---
|
|
230
|
+
|
|
231
|
+
## ๐ท๏ธ [0.3.1] - 2025-09-19
|
|
232
|
+
|
|
233
|
+
> **BREAKING:** Connection behavior is now on-demand
|
|
234
|
+
|
|
235
|
+
### ๐๏ธ Architecture
|
|
236
|
+
|
|
237
|
+
- ๐ **On-Demand Connection** - Shifted to intelligent on-demand connection model
|
|
238
|
+
- ๐ซ **No Background Processes** - Eliminated persistent background connections
|
|
239
|
+
|
|
240
|
+
### โก Performance
|
|
241
|
+
|
|
242
|
+
- Reduced resource usage and eliminated background processes
|
|
243
|
+
- Optimized connection state management
|
|
244
|
+
|
|
245
|
+
### ๐ก๏ธ Reliability
|
|
246
|
+
|
|
247
|
+
- Improved error handling and connection state management
|
|
248
|
+
- Better recovery from connection failures
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## ๐ท๏ธ [0.3.0] - 2025-09-17
|
|
253
|
+
|
|
254
|
+
> ๐ **Initial Public Release**
|
|
255
|
+
|
|
256
|
+
### โจ Features
|
|
257
|
+
|
|
258
|
+
- ๐ฎ **13 Consolidated Tools** - Full suite of Unreal Engine automation tools
|
|
259
|
+
- ๐ **Normalized Asset Listing** - Auto-map `/Content` and `/Game` paths
|
|
260
|
+
- ๐๏ธ **Landscape Creation** - Returns real UE/Python response data
|
|
261
|
+
- ๐ **Action-Oriented Descriptions** - Enhanced tool documentation with usage examples
|
|
262
|
+
|
|
263
|
+
### ๐ง Quality & Maintenance
|
|
264
|
+
|
|
265
|
+
- Server version 0.3.0 with clarified 13-tool mode
|
|
266
|
+
- Comprehensive documentation and examples
|
|
267
|
+
- Lint error fixes and code style cleanup
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
<div align="center">
|
|
272
|
+
|
|
273
|
+
### ๐ Links
|
|
274
|
+
|
|
275
|
+
[](https://github.com/ChiR24/Unreal_mcp)
|
|
276
|
+
[](https://www.npmjs.com/package/unreal-engine-mcp-server)
|
|
277
|
+
[](https://www.unrealengine.com/)
|
|
278
|
+
|
|
279
|
+
</div>
|