unreal-engine-mcp-server 0.4.7 โ 0.5.1
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-config.yml +51 -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 +27 -0
- package/.github/workflows/labeler.yml +17 -0
- package/.github/workflows/links.yml +80 -0
- package/.github/workflows/pr-size-labeler.yml +137 -0
- package/.github/workflows/publish-mcp.yml +13 -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 +338 -31
- package/CONTRIBUTING.md +140 -0
- package/GEMINI.md +115 -0
- package/Public/Plugin_setup_guide.mp4 +0 -0
- package/README.md +189 -128
- 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 +26 -0
- package/dist/config.js +59 -0
- package/dist/constants.d.ts +16 -0
- package/dist/constants.js +16 -0
- package/dist/graphql/loaders.d.ts +64 -0
- package/dist/graphql/loaders.js +117 -0
- package/dist/graphql/resolvers.d.ts +268 -0
- package/dist/graphql/resolvers.js +746 -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 +117 -0
- package/dist/graphql/types.d.ts +9 -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 +33 -18
- package/dist/index.js +130 -619
- 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 +20 -0
- package/dist/server-setup.js +71 -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 +163 -9
- package/dist/tools/actors.js +356 -311
- package/dist/tools/animation.d.ts +135 -4
- package/dist/tools/animation.js +510 -411
- package/dist/tools/assets.d.ts +75 -29
- package/dist/tools/assets.js +265 -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.d.ts +208 -126
- 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 +198 -1027
- package/dist/tools/debug.d.ts +143 -85
- package/dist/tools/debug.js +234 -180
- package/dist/tools/dynamic-handler-registry.d.ts +13 -0
- package/dist/tools/dynamic-handler-registry.js +23 -0
- package/dist/tools/editor.d.ts +30 -83
- package/dist/tools/editor.js +247 -244
- package/dist/tools/engine.d.ts +10 -4
- package/dist/tools/engine.js +13 -5
- package/dist/tools/environment.d.ts +30 -0
- package/dist/tools/environment.js +267 -0
- package/dist/tools/foliage.d.ts +65 -99
- package/dist/tools/foliage.js +221 -331
- package/dist/tools/handlers/actor-handlers.d.ts +3 -0
- package/dist/tools/handlers/actor-handlers.js +227 -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 +54 -93
- package/dist/tools/landscape.js +284 -409
- package/dist/tools/level.d.ts +66 -27
- package/dist/tools/level.js +647 -675
- package/dist/tools/lighting.d.ts +77 -38
- package/dist/tools/lighting.js +445 -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 +194 -118
- package/dist/tools/niagara.d.ts +149 -39
- package/dist/tools/niagara.js +267 -182
- package/dist/tools/performance.d.ts +27 -13
- package/dist/tools/performance.js +203 -122
- package/dist/tools/physics.d.ts +32 -77
- package/dist/tools/physics.js +175 -582
- package/dist/tools/property-dictionary.d.ts +13 -0
- package/dist/tools/property-dictionary.js +82 -0
- package/dist/tools/sequence.d.ts +85 -60
- package/dist/tools/sequence.js +208 -747
- 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 +64 -34
- package/dist/tools/ui.js +134 -214
- package/dist/types/automation-responses.d.ts +115 -0
- package/dist/types/automation-responses.js +2 -0
- package/dist/types/env.d.ts +0 -3
- package/dist/types/env.js +0 -7
- package/dist/types/responses.d.ts +249 -0
- package/dist/types/responses.js +2 -0
- 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 +68 -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/path-security.d.ts +2 -0
- package/dist/utils/path-security.js +24 -0
- package/dist/utils/response-factory.d.ts +7 -0
- package/dist/utils/response-factory.js +27 -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 +684 -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 +67 -28
- 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 +136 -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 +58 -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 +19 -0
- package/src/graphql/loaders.ts +244 -0
- package/src/graphql/resolvers.ts +1008 -0
- package/src/graphql/schema.ts +452 -0
- package/src/graphql/server.ts +156 -0
- package/src/graphql/types.ts +10 -0
- package/src/handlers/resource-handlers.ts +186 -0
- package/src/index.ts +166 -664
- package/src/resources/actors.ts +58 -76
- package/src/resources/assets.ts +148 -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 +114 -0
- package/src/services/health-monitor.ts +132 -0
- package/src/services/metrics-server.ts +142 -0
- package/src/tools/actors.ts +426 -323
- package/src/tools/animation.ts +672 -461
- package/src/tools/assets.ts +364 -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.ts +792 -970
- package/src/tools/consolidated-tool-definitions.ts +993 -515
- package/src/tools/consolidated-tool-handlers.ts +258 -1146
- package/src/tools/debug.ts +292 -187
- package/src/tools/dynamic-handler-registry.ts +33 -0
- package/src/tools/editor.ts +329 -253
- package/src/tools/engine.ts +14 -3
- package/src/tools/environment.ts +281 -0
- package/src/tools/foliage.ts +330 -392
- package/src/tools/handlers/actor-handlers.ts +265 -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 +418 -507
- package/src/tools/level.ts +786 -708
- package/src/tools/lighting.ts +588 -984
- package/src/tools/logs.ts +9 -57
- package/src/tools/materials.ts +237 -121
- package/src/tools/niagara.ts +335 -168
- package/src/tools/performance.ts +320 -169
- package/src/tools/physics.ts +274 -613
- package/src/tools/property-dictionary.ts +98 -0
- package/src/tools/sequence.ts +276 -820
- package/src/tools/tool-definition-utils.ts +35 -0
- package/src/tools/ui.ts +205 -283
- package/src/types/automation-responses.ts +119 -0
- package/src/types/env.ts +0 -10
- package/src/types/responses.ts +355 -0
- 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 +76 -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.test.ts +162 -0
- package/src/utils/normalize.ts +60 -0
- package/src/utils/path-security.ts +43 -0
- package/src/utils/response-factory.ts +44 -0
- package/src/utils/response-validator.ts +176 -56
- package/src/utils/result-helpers.ts +21 -19
- package/src/utils/safe-json.test.ts +90 -0
- package/src/utils/safe-json.ts +14 -11
- package/src/utils/unreal-command-queue.ts +152 -0
- package/src/utils/validation.test.ts +184 -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 +369 -0
- package/tests/test-asset-advanced.mjs +82 -0
- package/tests/test-asset-errors.mjs +35 -0
- package/tests/test-asset-graph.mjs +311 -0
- package/tests/test-audio.mjs +417 -0
- package/tests/test-automation-timeouts.mjs +98 -0
- package/tests/test-behavior-tree.mjs +444 -0
- package/tests/test-blueprint-graph.mjs +410 -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 +112 -0
- package/tests/test-graphql.mjs +372 -0
- package/tests/test-input.mjs +349 -0
- package/tests/test-inspect.mjs +302 -0
- package/tests/test-landscape.mjs +316 -0
- package/tests/test-lighting.mjs +428 -0
- package/tests/test-manage-asset.mjs +438 -0
- package/tests/test-manage-level.mjs +89 -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-performance.mjs +539 -0
- package/tests/test-plugin-handshake.mjs +82 -0
- package/tests/test-runner.mjs +933 -0
- package/tests/test-sequence.mjs +104 -0
- package/tests/test-system.mjs +96 -0
- package/tests/test-wasm.mjs +283 -0
- package/tests/test-world-partition.mjs +215 -0
- package/tsconfig.json +3 -3
- package/vitest.config.ts +35 -0
- 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/prompts/index.d.ts +0 -21
- package/dist/prompts/index.js +0 -217
- 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/prompts/index.ts +0 -249
- 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
|
@@ -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@v6 # v4
|
|
19
|
+
with:
|
|
20
|
+
fetch-depth: 0
|
|
21
|
+
|
|
22
|
+
- name: Setup Node.js
|
|
23
|
+
uses: actions/setup-node@v6 # 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@a06a81a03ee405af7f2048a818ed3f03bbf83c7b # v2.5.0
|
|
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,350 @@
|
|
|
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.1] - 2025-12-17
|
|
21
11
|
|
|
22
|
-
|
|
23
|
-
###
|
|
24
|
-
-
|
|
25
|
-
-
|
|
12
|
+
> [!WARNING]
|
|
13
|
+
> ### โ ๏ธ Breaking Changes
|
|
14
|
+
> - **Standardized Return Types** - All tool methods now return `StandardActionResponse` type instead of generic objects. Consumers must update their code to handle the new response structure with `success`, `data`, `warnings`, and `error` fields. (`5e615c5`)
|
|
15
|
+
> - **Test Suite Structure** - New test files added and existing tests enhanced with comprehensive coverage.
|
|
26
16
|
|
|
27
|
-
### Changed
|
|
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.
|
|
17
|
+
### ๐ Changed
|
|
30
18
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
- Updated `smithery.yaml` and `server.json` manifest to declare `UE_PROJECT_PATH` and default values.
|
|
19
|
+
<details>
|
|
20
|
+
<summary><b>๐ฏ Standardized Tool Interfaces</b> (<code>5e615c5</code>)</summary>
|
|
34
21
|
|
|
35
|
-
|
|
36
|
-
|
|
22
|
+
| Component | Change |
|
|
23
|
+
|-----------|--------|
|
|
24
|
+
| Tool Methods | Updated all tool methods to return `StandardActionResponse` type for consistency |
|
|
25
|
+
| Tool Interfaces | Modified interfaces (assets, blueprint, editor, environment, foliage, landscape, level, sequence) to use standardized response format |
|
|
26
|
+
| Type System | Added proper type imports and exports for `StandardActionResponse` |
|
|
27
|
+
| Handler Files | Updated to work with new standardized response types |
|
|
28
|
+
| Response Structure | All implementations return correct structure with `success`/`error` fields |
|
|
37
29
|
|
|
38
|
-
|
|
39
|
-
- Fixes Smithery UI blank ueHost field by defining a default in the runtime schema.
|
|
30
|
+
</details>
|
|
40
31
|
|
|
32
|
+
### โจ Added
|
|
41
33
|
|
|
42
|
-
|
|
43
|
-
|
|
34
|
+
<details>
|
|
35
|
+
<summary><b>๐งช Comprehensive Test Suite</b> (<a href="https://github.com/ChiR24/Unreal_mcp/pull/25">#25</a>)</summary>
|
|
36
|
+
|
|
37
|
+
| Feature | Description |
|
|
38
|
+
|---------|-------------|
|
|
39
|
+
| **Test Coverage** | Added comprehensive test files with success, error, and edge cases |
|
|
40
|
+
| **GraphQL DataLoader** | Implemented N+1 query optimization with batching and caching |
|
|
41
|
+
| **Type-Safe Interfaces** | Added type-safe automation response interfaces for better error handling |
|
|
42
|
+
| **Utility Tests** | Added tests for core utilities (normalize, safe-json, validation) |
|
|
43
|
+
| **Real-World Scenarios** | Enhanced coverage with real-world scenarios and cleanup procedures |
|
|
44
|
+
| **New Test Suites** | Audio, lighting, performance, input, and asset graph management |
|
|
45
|
+
| **Enhanced Logging** | Improved diagnostic logging throughout tools |
|
|
46
|
+
| **Documentation** | Updated supported Unreal Engine versions (5.0-5.7) in testing documentation |
|
|
47
|
+
|
|
48
|
+
</details>
|
|
49
|
+
|
|
50
|
+
### ๐งน Maintenance
|
|
51
|
+
|
|
52
|
+
- ๐๏ธ **Prompts Module Cleanup** - Removed prompts module and related GraphQL prompt functionality ([#26](https://github.com/ChiR24/Unreal_mcp/pull/26))
|
|
53
|
+
- ๐ **Security Updates** - Removed unused dependencies (axios, json5, yargs) from package.json for security (`5e615c5`)
|
|
54
|
+
- ๐ **Tool Interfaces** - Enhanced asset and level tools with security validation and timeout handling (`5e615c5`)
|
|
55
|
+
|
|
56
|
+
### ๐ฆ Dependencies
|
|
57
|
+
|
|
58
|
+
<details>
|
|
59
|
+
<summary><b>GitHub Actions Updates</b></summary>
|
|
60
|
+
|
|
61
|
+
| Package | Update | PR | Commit |
|
|
62
|
+
|---------|--------|-----|--------|
|
|
63
|
+
| `actions/checkout` | v4 โ v6 | [#23](https://github.com/ChiR24/Unreal_mcp/pull/23) | `4c6b3b5` |
|
|
64
|
+
| `actions/setup-node` | v4 โ v6 | [#22](https://github.com/ChiR24/Unreal_mcp/pull/22) | `71aa35c` |
|
|
65
|
+
| `softprops/action-gh-release` | 2.0.8 โ 2.5.0 | [#21](https://github.com/ChiR24/Unreal_mcp/pull/21) | `b6c8a46` |
|
|
66
|
+
|
|
67
|
+
</details>
|
|
68
|
+
|
|
69
|
+
<details>
|
|
70
|
+
<summary><b>NPM Package Updates</b> (<a href="https://github.com/ChiR24/Unreal_mcp/pull/24">#24</a>, <code>5e615c5</code>)</summary>
|
|
71
|
+
|
|
72
|
+
| Package | Update |
|
|
73
|
+
|---------|--------|
|
|
74
|
+
| `@modelcontextprotocol/sdk` | 1.25.0 โ 1.25.1 |
|
|
75
|
+
| `@types/node` | 25.0.2 โ 25.0.3 |
|
|
76
|
+
|
|
77
|
+
</details>
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## ๐ท๏ธ [0.5.0] - 2025-12-16
|
|
82
|
+
|
|
83
|
+
> [!IMPORTANT]
|
|
84
|
+
> ### ๐ Major Architecture Migration
|
|
85
|
+
> This release marks the **complete migration** from Unreal's built-in Remote Plugin to a native C++ **McpAutomationBridge** plugin. This provides:
|
|
86
|
+
> - โก Better performance
|
|
87
|
+
> - ๐ Tighter editor integration
|
|
88
|
+
> - ๐ซ No dependency on Unreal's Remote API
|
|
89
|
+
>
|
|
90
|
+
> **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.
|
|
91
|
+
|
|
92
|
+
### ๐๏ธ Architecture
|
|
93
|
+
|
|
94
|
+
| Change | Description |
|
|
95
|
+
|--------|-------------|
|
|
96
|
+
| ๐ **Native C++ Plugin** | Introduced `McpAutomationBridge` - a native UE5 editor plugin replacing the Remote API |
|
|
97
|
+
| ๐ **Direct Editor Integration** | Commands execute directly in the editor context via automation bridge subsystem |
|
|
98
|
+
| ๐ **WebSocket Communication** | Implemented `McpBridgeWebSocket` for real-time bidirectional communication |
|
|
99
|
+
| ๐ฏ **Bridge-First Architecture** | All operations route through the native C++ bridge (`fe65968`) |
|
|
100
|
+
| ๐ **Standardized Responses** | All tools now return `StandardActionResponse` format (`0a8999b`) |
|
|
101
|
+
|
|
102
|
+
### โจ Added
|
|
103
|
+
|
|
104
|
+
<details>
|
|
105
|
+
<summary><b>๐ฎ Engine Compatibility</b></summary>
|
|
106
|
+
|
|
107
|
+
- **UE 5.7 Support** - Updated McpAutomationBridge with ControlRig dynamic loading and improved sequence handling (`ec5409b`)
|
|
108
|
+
|
|
109
|
+
</details>
|
|
110
|
+
|
|
111
|
+
<details>
|
|
112
|
+
<summary><b>๐ง New APIs & Integrations</b></summary>
|
|
113
|
+
|
|
114
|
+
- **GraphQL API** - Broadened automation bridge with GraphQL support, WASM integration, UI/editor integrations (`ffdd814`)
|
|
115
|
+
- **WebAssembly Integration** - High-performance JSON parsing with 5-8x performance gains (`23f63c7`)
|
|
116
|
+
|
|
117
|
+
</details>
|
|
118
|
+
|
|
119
|
+
<details>
|
|
120
|
+
<summary><b>๐ Automation Bridge Features</b></summary>
|
|
121
|
+
|
|
122
|
+
| Feature | Commit |
|
|
123
|
+
|---------|--------|
|
|
124
|
+
| Server mode on port `8091` | `267aa42` |
|
|
125
|
+
| Client mode with enhanced connection handling | `bf0fa56` |
|
|
126
|
+
| Heartbeat tracking and output capturing | `28242e1` |
|
|
127
|
+
| Event handling and asset management | `d10e1e2` |
|
|
128
|
+
|
|
129
|
+
</details>
|
|
130
|
+
|
|
131
|
+
<details>
|
|
132
|
+
<summary><b>๐๏ธ New Tool Systems (0a8999b, 0ac82ac)</b></summary>
|
|
133
|
+
|
|
134
|
+
| Tool | Description |
|
|
135
|
+
|------|-------------|
|
|
136
|
+
| ๐ฎ **Input Management** | New `manage_input` tool with EnhancedInput support for Input Actions and Mapping Contexts |
|
|
137
|
+
| ๐ก **Lighting Manager** | Full lighting configuration via `manage_lighting` including spawn, GI setup, shadow config, build lighting |
|
|
138
|
+
| ๐ **Performance Manager** | `manage_performance` with profiling (CPU/GPU/Memory), optimization, scalability, Nanite/Lumen config |
|
|
139
|
+
| ๐ณ **Behavior Tree Editing** | Full behavior tree creation and node editing via `manage_behavior_tree` |
|
|
140
|
+
| ๐ฌ **Enhanced Sequencer** | Track operations (add/remove tracks, set muted/solo/locked), display rate, tick resolution |
|
|
141
|
+
| ๐ **World Partition** | Cell management, data layer toggling via `manage_level` |
|
|
142
|
+
| ๐ผ๏ธ **Widget Management** | UI widget creation, visibility controls, child widget adding |
|
|
143
|
+
|
|
144
|
+
</details>
|
|
145
|
+
|
|
146
|
+
<details>
|
|
147
|
+
<summary><b>๐ Graph Editing Capabilities (0a8999b)</b></summary>
|
|
148
|
+
|
|
149
|
+
- **Blueprint Graph** - Direct node manipulation with `manage_blueprint_graph` (create_node, delete_node, connect_pins, etc.)
|
|
150
|
+
- **Material Graph** - Node operations via `manage_asset` (add_material_node, connect_material_pins, etc.)
|
|
151
|
+
- **Niagara Graph** - Module and parameter editing (add_niagara_module, set_niagara_parameter, etc.)
|
|
152
|
+
|
|
153
|
+
</details>
|
|
154
|
+
|
|
155
|
+
<details>
|
|
156
|
+
<summary><b>๐ ๏ธ New Handlers & Actions</b></summary>
|
|
157
|
+
|
|
158
|
+
- Blueprint graph management and Niagara functionalities (`aff4d55`)
|
|
159
|
+
- Physics simulation setup in AnimationTools (`83a6f5d`)
|
|
160
|
+
- **New Asset Actions:**
|
|
161
|
+
- `generate_lods`, `add_material_parameter`, `list_instances`
|
|
162
|
+
- `reset_instance_parameters`, `get_material_stats`, `exists`
|
|
163
|
+
- `nanite_rebuild_mesh`
|
|
164
|
+
- World partition and rendering tool handlers (`83a6f5d`)
|
|
165
|
+
- Screenshot with base64 image encoding (`bb4f6a8`)
|
|
166
|
+
|
|
167
|
+
</details>
|
|
168
|
+
|
|
169
|
+
<details>
|
|
170
|
+
<summary><b>๐งช Test Suites</b></summary>
|
|
171
|
+
|
|
172
|
+
**50+ new test cases** covering:
|
|
173
|
+
- Animation, Assets, Materials
|
|
174
|
+
- Sequences, World Partition
|
|
175
|
+
- Blueprints, Niagara, Behavior Trees
|
|
176
|
+
- Audio, Input Actions
|
|
177
|
+
- And more! (`31c6db9`, `85817c9`, `fc47839`, `02fd2af`)
|
|
178
|
+
|
|
179
|
+
</details>
|
|
180
|
+
|
|
181
|
+
### ๐ Changed
|
|
182
|
+
|
|
183
|
+
#### Core Refactors
|
|
184
|
+
| Component | Change | Commit |
|
|
185
|
+
|-----------|--------|--------|
|
|
186
|
+
| `SequenceTools` | Migrated to Automation Bridge | `c2fb15a` |
|
|
187
|
+
| `UnrealBridge` | Refactored for bridge connection | `7bd48d8` |
|
|
188
|
+
| Automation Dispatch | Editor-native handlers modernization | `c9db1a4` |
|
|
189
|
+
| Test Runner | Timeout expectations & content extraction | `c9766b0` |
|
|
190
|
+
| UI Handlers | Improved readability and organization | `bb4f6a8` |
|
|
191
|
+
| Connection Manager | Streamlined connection handling | `0ac82ac` |
|
|
192
|
+
|
|
193
|
+
#### Tool Improvements
|
|
194
|
+
- ๐ **PhysicsTools** - Vehicle config logic updated, deprecated checks removed (`6dba9f7`)
|
|
195
|
+
- ๐ฌ **AnimationTools** - Logging and response normalization (`7666c31`)
|
|
196
|
+
- โ ๏ธ **Error Handling** - Utilities refactored, INI file reader added (`f5444e4`)
|
|
197
|
+
- ๐ **Blueprint Actions** - Timeout handling enhancements (`65d2738`)
|
|
198
|
+
- ๐จ **Materials** - Enhanced material graph editing capabilities (`0a8999b`)
|
|
199
|
+
- ๐ **Audio** - Improved sound component management (`0a8999b`)
|
|
200
|
+
|
|
201
|
+
#### Other Changes
|
|
202
|
+
- ๐ก **Connection & Logging** - Improved error messages for clarity (`41350b3`)
|
|
203
|
+
- ๐ **Documentation** - README updated with UE 5.7, WASM docs, architecture overview, 17 tools (`8d72f28`, `4d77b7e`)
|
|
204
|
+
- ๐ **Dependencies** - Updated to latest versions (`08eede5`)
|
|
205
|
+
- ๐ **Type Definitions** - Enhanced tool interfaces and type coverage (`0a8999b`)
|
|
206
|
+
|
|
207
|
+
### ๐ Fixed
|
|
208
|
+
|
|
209
|
+
- `McpAutomationBridgeSubsystem` - Header removal, logging category, heartbeat methods (`498f644`)
|
|
210
|
+
- `McpBridgeWebSocket` - Reliable WebSocket communication (`861ad91`)
|
|
211
|
+
- **AutomationBridge** - Heartbeat handling and server metadata retrieval (`0da54f7`)
|
|
212
|
+
- **UI Handlers** - Missing payload and invalid widget path error handling (`bb4f6a8`)
|
|
213
|
+
- **Screenshot** - Clearer error messages and flow (`bb4f6a8`)
|
|
214
|
+
|
|
215
|
+
### ๐๏ธ Removed
|
|
216
|
+
|
|
217
|
+
| Removed | Reason |
|
|
218
|
+
|---------|--------|
|
|
219
|
+
| ๐ Remote API Dependency | Replaced by native C++ plugin |
|
|
220
|
+
| ๐ Python Fallbacks | Native C++ automation preferred (`fe65968`) |
|
|
221
|
+
| ๐ฆ Unused HTTP Client | Cleanup from error-handler (`f5444e4`) |
|
|
222
|
+
|
|
223
|
+
---
|
|
224
|
+
|
|
225
|
+
## ๐ท๏ธ [0.4.7] - 2025-11-16
|
|
226
|
+
|
|
227
|
+
### โจ Added
|
|
228
|
+
- Output Log reading via `system_control` tool with `read_log` action. filtering by category, level, line count.
|
|
229
|
+
- New `src/tools/logs.ts` implementing robust log tailing.
|
|
230
|
+
- ๐ Initial `McpAutomationBridge` plugin with foundational implementation (`30e62f9`)
|
|
231
|
+
- ๐งช Comprehensive test suites for various Unreal Engine tools (`31c6db9`)
|
|
232
|
+
|
|
233
|
+
### ๐ Changed
|
|
234
|
+
- `system_control` tool schema: Added `read_log` action.
|
|
235
|
+
- Updated tool handlers to route `read_log` to LogTools.
|
|
236
|
+
- Version bumped to 0.4.7.
|
|
237
|
+
|
|
238
|
+
### ๐ Documentation
|
|
239
|
+
- Updated README.md with initial bridge documentation (`a24dafd`)
|
|
240
|
+
|
|
241
|
+
---
|
|
242
|
+
|
|
243
|
+
## ๐ท๏ธ [0.4.6] - 2025-10-04
|
|
244
|
+
|
|
245
|
+
### ๐ Fixed
|
|
246
|
+
- Fixed duplicate response output issue where tool responses were displayed twice in MCP content
|
|
247
|
+
- Response validator now emits concise summaries instead of duplicating full JSON payloads
|
|
248
|
+
- Structured content preserved for validation while user-facing output is streamlined
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## ๐ท๏ธ [0.4.5] - 2025-10-03
|
|
253
|
+
|
|
254
|
+
### โจ Added
|
|
255
|
+
- ๐ง Expose `UE_PROJECT_PATH` environment variable across runtime config, Smithery manifest, and client configs
|
|
256
|
+
- ๐ Added `projectPath` to runtime `configSchema` for Smithery's session UI
|
|
257
|
+
|
|
258
|
+
### ๐ Changed
|
|
259
|
+
- โก Made `createServer` synchronous factory (removed `async`)
|
|
260
|
+
- ๐ Default for `ueHost` in exported `configSchema`
|
|
261
|
+
|
|
262
|
+
### ๐ Documentation
|
|
263
|
+
- Updated `README.md`, config examples to include `UE_PROJECT_PATH`
|
|
264
|
+
- Updated `smithery.yaml` and `server.json` manifests
|
|
265
|
+
|
|
266
|
+
### ๐จ Build
|
|
267
|
+
- Rebuilt Smithery bundle and TypeScript output
|
|
268
|
+
|
|
269
|
+
### ๐ Fixed
|
|
270
|
+
- Smithery UI blank `ueHost` field by defining default in runtime schema
|
|
271
|
+
|
|
272
|
+
---
|
|
273
|
+
|
|
274
|
+
## ๐ท๏ธ [0.4.4] - 2025-09-28
|
|
275
|
+
|
|
276
|
+
### โจ Improvements
|
|
277
|
+
|
|
278
|
+
- ๐ค **Client Elicitation Helper** - Added support for Cursor, VS Code, Claude Desktop, and other MCP clients
|
|
279
|
+
- ๐ **Consistent RESULT Parsing** - Handles JSON5 and legacy Python literals across all tools
|
|
280
|
+
- ๐ **Safe Output Stringification** - Robust handling of circular references and complex objects
|
|
281
|
+
- ๐ **Enhanced Logging** - Improved validation messages for easier debugging
|
|
282
|
+
|
|
283
|
+
---
|
|
284
|
+
|
|
285
|
+
## ๐ท๏ธ [0.4.0] - 2025-09-20
|
|
286
|
+
|
|
287
|
+
> **Major Release** - Consolidated Tools Mode
|
|
288
|
+
|
|
289
|
+
### โจ Improvements
|
|
290
|
+
|
|
291
|
+
- ๐ฏ **Consolidated Tools Mode Exclusively** - Removed legacy mode, all tools now use unified handler system
|
|
292
|
+
- ๐งน **Simplified Tool Handlers** - Removed deprecated code paths and inline plugin validation
|
|
293
|
+
- ๐ **Enhanced Error Handling** - Better error messages and recovery mechanisms
|
|
294
|
+
|
|
295
|
+
### ๐ง Quality & Maintenance
|
|
296
|
+
|
|
297
|
+
- โก Reduced resource usage by optimizing tool handlers
|
|
298
|
+
- ๐งน Cleanup of deprecated environment variables
|
|
299
|
+
|
|
300
|
+
---
|
|
301
|
+
|
|
302
|
+
## ๐ท๏ธ [0.3.1] - 2025-09-19
|
|
303
|
+
|
|
304
|
+
> **BREAKING:** Connection behavior is now on-demand
|
|
305
|
+
|
|
306
|
+
### ๐๏ธ Architecture
|
|
307
|
+
|
|
308
|
+
- ๐ **On-Demand Connection** - Shifted to intelligent on-demand connection model
|
|
309
|
+
- ๐ซ **No Background Processes** - Eliminated persistent background connections
|
|
310
|
+
|
|
311
|
+
### โก Performance
|
|
312
|
+
|
|
313
|
+
- Reduced resource usage and eliminated background processes
|
|
314
|
+
- Optimized connection state management
|
|
315
|
+
|
|
316
|
+
### ๐ก๏ธ Reliability
|
|
317
|
+
|
|
318
|
+
- Improved error handling and connection state management
|
|
319
|
+
- Better recovery from connection failures
|
|
320
|
+
|
|
321
|
+
---
|
|
322
|
+
|
|
323
|
+
## ๐ท๏ธ [0.3.0] - 2025-09-17
|
|
324
|
+
|
|
325
|
+
> ๐ **Initial Public Release**
|
|
326
|
+
|
|
327
|
+
### โจ Features
|
|
328
|
+
|
|
329
|
+
- ๐ฎ **13 Consolidated Tools** - Full suite of Unreal Engine automation tools
|
|
330
|
+
- ๐ **Normalized Asset Listing** - Auto-map `/Content` and `/Game` paths
|
|
331
|
+
- ๐๏ธ **Landscape Creation** - Returns real UE/Python response data
|
|
332
|
+
- ๐ **Action-Oriented Descriptions** - Enhanced tool documentation with usage examples
|
|
333
|
+
|
|
334
|
+
### ๐ง Quality & Maintenance
|
|
335
|
+
|
|
336
|
+
- Server version 0.3.0 with clarified 13-tool mode
|
|
337
|
+
- Comprehensive documentation and examples
|
|
338
|
+
- Lint error fixes and code style cleanup
|
|
339
|
+
|
|
340
|
+
---
|
|
341
|
+
|
|
342
|
+
<div align="center">
|
|
343
|
+
|
|
344
|
+
### ๐ Links
|
|
345
|
+
|
|
346
|
+
[](https://github.com/ChiR24/Unreal_mcp)
|
|
347
|
+
[](https://www.npmjs.com/package/unreal-engine-mcp-server)
|
|
348
|
+
[](https://www.unrealengine.com/)
|
|
349
|
+
|
|
350
|
+
</div>
|