@loop_ouroboros/mcp-hub-lite 1.0.2 → 1.1.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/CHANGELOG.md +32 -0
- package/dist/client/assets/{HomeView-7rMg9C6t.js → HomeView-Bu2joUvW.js} +1 -1
- package/dist/client/assets/ResourceDetailView-BvrhDCD1.js +1 -0
- package/dist/client/assets/ResourceDetailView-DUJZbegl.css +1 -0
- package/dist/client/assets/ResourcesView-Cc8RHtia.css +1 -0
- package/dist/client/assets/ResourcesView-LjqioF_s.js +1 -0
- package/dist/client/assets/ServerDashboard-BfLeFDGw.css +1 -0
- package/dist/client/assets/ServerDashboard-FhHJFvUi.js +1 -0
- package/dist/client/assets/ServerDetail-BKV-M4qT.js +2 -0
- package/dist/client/assets/ServerDetail-CtnNKJGx.css +1 -0
- package/dist/client/assets/{ServerListView-Bws09jNR.css → ServerListView-B-bPljsO.css} +1 -1
- package/dist/client/assets/ServerListView-BXgtDyt3.js +36 -0
- package/dist/client/assets/ServerStatusTags.vue_vue_type_script_setup_true_lang-D-ooYNdN.js +1 -0
- package/dist/client/assets/SettingsView-CMFG91Z4.js +1 -0
- package/dist/client/assets/SettingsView-GkBOKL0V.css +1 -0
- package/dist/client/assets/ToolCallDialog-Bf4Xe4gH.js +1 -0
- package/dist/client/assets/ToolsView-DFpha1z0.js +1 -0
- package/dist/client/assets/{_baseClone-5q1b0P3O.js → _baseClone-Bp9Rjwd7.js} +1 -1
- package/dist/client/assets/el-form-item-B4LbJ6OO.css +1 -0
- package/dist/client/assets/el-form-item-DdSUWYsl.js +12 -0
- package/dist/client/assets/el-input-99gMrutP.js +1 -0
- package/dist/client/assets/el-input-BH4BZKnG.css +1 -0
- package/dist/client/assets/{el-loading-H85n3BUC.js → el-loading-CIQ5pD5u.js} +1 -1
- package/dist/client/assets/el-overlay-BVM6msGX.js +1 -0
- package/dist/client/assets/{el-select-C0U_l4IZ.css → el-overlay-CBvdpA69.css} +1 -1
- package/dist/client/assets/{ResourceDetailView-BdOaL_-o.css → el-radio-group-B0bauIRR.css} +1 -1
- package/dist/client/assets/el-radio-group-DhXWy7ry.js +1 -0
- package/dist/client/assets/el-skeleton-item-BLY1jEuR.css +1 -0
- package/dist/client/assets/el-skeleton-item-DJz-Us12.js +1 -0
- package/dist/client/assets/el-switch-BBrS-_6y.css +1 -0
- package/dist/client/assets/el-switch-Bu8AQ5uM.js +1 -0
- package/dist/client/assets/el-tab-pane-BnGMaV56.js +1 -0
- package/dist/client/assets/el-table-column-BMWOaLS_.js +1 -0
- package/dist/client/assets/el-table-column-BdvRS9Y2.css +1 -0
- package/dist/client/assets/index-C2V-ZGji.js +1 -0
- package/dist/client/assets/{index-BsDWtoIl.css → index-DpH6ZSbs.css} +1 -1
- package/dist/client/assets/index-vhkqgpmN.js +2 -0
- package/dist/client/assets/{omit-DPsOVNIJ.js → omit-CqPQN3XP.js} +1 -1
- package/dist/client/assets/{raf-DY5mgbuB.js → raf-C2wXzaVU.js} +1 -1
- package/dist/client/assets/{vue-vendor-6ny5zj9i.js → vue-vendor-BLHLXXJK.js} +1 -1
- package/dist/client/index.html +3 -3
- package/dist/server/shared/models/resource.model.d.ts +2 -1
- package/dist/server/shared/models/resource.model.d.ts.map +1 -1
- package/dist/server/shared/models/server.model.d.ts +362 -5
- package/dist/server/shared/models/server.model.d.ts.map +1 -1
- package/dist/server/shared/models/server.model.js +220 -1
- package/dist/server/shared/models/session.model.d.ts +1 -57
- package/dist/server/shared/models/session.model.d.ts.map +1 -1
- package/dist/server/shared/models/session.model.js +1 -55
- package/dist/server/shared/models/tool.model.d.ts +4 -2
- package/dist/server/shared/models/tool.model.d.ts.map +1 -1
- package/dist/server/shared/types/session-context.types.d.ts +0 -2
- package/dist/server/shared/types/session-context.types.d.ts.map +1 -1
- package/dist/server/shared/types/websocket.types.d.ts +17 -10
- package/dist/server/shared/types/websocket.types.d.ts.map +1 -1
- package/dist/server/src/api/mcp/gateway.d.ts +1 -3
- package/dist/server/src/api/mcp/gateway.d.ts.map +1 -1
- package/dist/server/src/api/mcp/gateway.js +19 -50
- package/dist/server/src/api/mcp/session-context-extractor.d.ts.map +1 -1
- package/dist/server/src/api/mcp/session-context-extractor.js +5 -14
- package/dist/server/src/api/web/hub-tools.d.ts +2 -2
- package/dist/server/src/api/web/hub-tools.d.ts.map +1 -1
- package/dist/server/src/api/web/hub-tools.js +3 -54
- package/dist/server/src/api/web/mcp-status.d.ts +1 -1
- package/dist/server/src/api/web/mcp-status.d.ts.map +1 -1
- package/dist/server/src/api/web/mcp-status.js +71 -30
- package/dist/server/src/api/web/resources.d.ts.map +1 -1
- package/dist/server/src/api/web/resources.js +28 -22
- package/dist/server/src/api/web/search.d.ts +2 -16
- package/dist/server/src/api/web/search.d.ts.map +1 -1
- package/dist/server/src/api/web/search.js +24 -45
- package/dist/server/src/api/web/servers.d.ts +3 -3
- package/dist/server/src/api/web/servers.d.ts.map +1 -1
- package/dist/server/src/api/web/servers.js +70 -25
- package/dist/server/src/api/ws/ws-handler.d.ts.map +1 -1
- package/dist/server/src/api/ws/ws-handler.js +4 -2
- package/dist/server/src/app.d.ts.map +1 -1
- package/dist/server/src/app.js +0 -2
- package/dist/server/src/cli/commands/list.js +2 -2
- package/dist/server/src/cli/commands/status.d.ts.map +1 -1
- package/dist/server/src/cli/commands/status.js +41 -30
- package/dist/server/src/cli/index.d.ts.map +1 -1
- package/dist/server/src/cli/index.js +2 -1
- package/dist/server/src/cli/server.d.ts +11 -2
- package/dist/server/src/cli/server.d.ts.map +1 -1
- package/dist/server/src/config/config-change-logger.d.ts +22 -0
- package/dist/server/src/config/config-change-logger.d.ts.map +1 -1
- package/dist/server/src/config/config-change-logger.js +135 -11
- package/dist/server/src/config/config-loader.d.ts +6 -5
- package/dist/server/src/config/config-loader.d.ts.map +1 -1
- package/dist/server/src/config/config-loader.js +54 -16
- package/dist/server/src/config/config-manager.d.ts +51 -43
- package/dist/server/src/config/config-manager.d.ts.map +1 -1
- package/dist/server/src/config/config-manager.js +84 -66
- package/dist/server/src/config/config-migrator.d.ts +82 -0
- package/dist/server/src/config/config-migrator.d.ts.map +1 -0
- package/dist/server/src/config/config-migrator.js +348 -0
- package/dist/server/src/config/config-saver.d.ts +2 -0
- package/dist/server/src/config/config-saver.d.ts.map +1 -1
- package/dist/server/src/config/config-saver.js +8 -2
- package/dist/server/src/config/config.schema.d.ts +10 -104
- package/dist/server/src/config/config.schema.d.ts.map +1 -1
- package/dist/server/src/config/config.schema.js +15 -99
- package/dist/server/src/config/path-validator.d.ts +27 -0
- package/dist/server/src/config/path-validator.d.ts.map +1 -0
- package/dist/server/src/config/path-validator.js +53 -0
- package/dist/server/src/config/server-config-manager.d.ts +37 -31
- package/dist/server/src/config/server-config-manager.d.ts.map +1 -1
- package/dist/server/src/config/server-config-manager.js +222 -66
- package/dist/server/src/config/type-converter.d.ts.map +1 -1
- package/dist/server/src/config/type-converter.js +3 -2
- package/dist/server/src/models/event.model.d.ts +17 -10
- package/dist/server/src/models/event.model.d.ts.map +1 -1
- package/dist/server/src/models/server.model.d.ts +17 -3
- package/dist/server/src/models/server.model.d.ts.map +1 -1
- package/dist/server/src/models/server.model.js +2 -1
- package/dist/server/src/models/system-tools.constants.d.ts +10 -27
- package/dist/server/src/models/system-tools.constants.d.ts.map +1 -1
- package/dist/server/src/models/system-tools.constants.js +4 -8
- package/dist/server/src/pid/manager.d.ts.map +1 -1
- package/dist/server/src/pid/manager.js +2 -1
- package/dist/server/src/server/dev-server.js +34 -20
- package/dist/server/src/server/runner.d.ts.map +1 -1
- package/dist/server/src/server/runner.js +41 -26
- package/dist/server/src/services/connection/connection-manager.d.ts +85 -103
- package/dist/server/src/services/connection/connection-manager.d.ts.map +1 -1
- package/dist/server/src/services/connection/connection-manager.js +286 -241
- package/dist/server/src/services/connection/tool-cache.d.ts +27 -25
- package/dist/server/src/services/connection/tool-cache.d.ts.map +1 -1
- package/dist/server/src/services/connection/tool-cache.js +50 -55
- package/dist/server/src/services/gateway/gateway.service.d.ts +2 -0
- package/dist/server/src/services/gateway/gateway.service.d.ts.map +1 -1
- package/dist/server/src/services/gateway/gateway.service.js +15 -19
- package/dist/server/src/services/gateway/global-transport.d.ts +10 -0
- package/dist/server/src/services/gateway/global-transport.d.ts.map +1 -0
- package/dist/server/src/services/gateway/global-transport.js +42 -0
- package/dist/server/src/services/gateway/request-handlers/call-tool-handler.d.ts.map +1 -1
- package/dist/server/src/services/gateway/request-handlers/call-tool-handler.js +67 -65
- package/dist/server/src/services/gateway/request-handlers/index.d.ts +1 -1
- package/dist/server/src/services/gateway/request-handlers/index.d.ts.map +1 -1
- package/dist/server/src/services/gateway/request-handlers/index.js +1 -1
- package/dist/server/src/services/gateway/request-handlers/initialize-handler.d.ts +1 -4
- package/dist/server/src/services/gateway/request-handlers/initialize-handler.d.ts.map +1 -1
- package/dist/server/src/services/gateway/request-handlers/initialize-handler.js +10 -81
- package/dist/server/src/services/gateway/request-handlers/initialize.constants.d.ts +35 -0
- package/dist/server/src/services/gateway/request-handlers/initialize.constants.d.ts.map +1 -0
- package/dist/server/src/services/gateway/request-handlers/initialize.constants.js +44 -0
- package/dist/server/src/services/gateway/request-handlers/resources-handler.d.ts.map +1 -1
- package/dist/server/src/services/gateway/request-handlers/resources-handler.js +5 -4
- package/dist/server/src/services/gateway/request-handlers/system-tools-handler.d.ts.map +1 -1
- package/dist/server/src/services/gateway/request-handlers/system-tools-handler.js +32 -77
- package/dist/server/src/services/gateway/request-handlers/tools-handler.d.ts.map +1 -1
- package/dist/server/src/services/gateway/request-handlers/tools-handler.js +4 -3
- package/dist/server/src/services/gateway/tool-list-generator.d.ts.map +1 -1
- package/dist/server/src/services/gateway/tool-list-generator.js +37 -16
- package/dist/server/src/services/gateway/types.d.ts +2 -1
- package/dist/server/src/services/gateway/types.d.ts.map +1 -1
- package/dist/server/src/services/hub-manager.service.d.ts +32 -238
- package/dist/server/src/services/hub-manager.service.d.ts.map +1 -1
- package/dist/server/src/services/hub-manager.service.js +89 -267
- package/dist/server/src/services/hub-tools/index.d.ts +1 -3
- package/dist/server/src/services/hub-tools/index.d.ts.map +1 -1
- package/dist/server/src/services/hub-tools/index.js +1 -2
- package/dist/server/src/services/hub-tools/instance-matcher.d.ts +62 -0
- package/dist/server/src/services/hub-tools/instance-matcher.d.ts.map +1 -0
- package/dist/server/src/services/hub-tools/instance-matcher.js +132 -0
- package/dist/server/src/services/hub-tools/instance-selector.d.ts +29 -0
- package/dist/server/src/services/hub-tools/instance-selector.d.ts.map +1 -0
- package/dist/server/src/services/hub-tools/instance-selector.js +103 -0
- package/dist/server/src/services/hub-tools/resource-generator.d.ts +24 -1
- package/dist/server/src/services/hub-tools/resource-generator.d.ts.map +1 -1
- package/dist/server/src/services/hub-tools/resource-generator.js +259 -39
- package/dist/server/src/services/hub-tools/server-selector.d.ts +26 -13
- package/dist/server/src/services/hub-tools/server-selector.d.ts.map +1 -1
- package/dist/server/src/services/hub-tools/server-selector.js +44 -37
- package/dist/server/src/services/hub-tools/system-tool-definitions.d.ts +1 -4
- package/dist/server/src/services/hub-tools/system-tool-definitions.d.ts.map +1 -1
- package/dist/server/src/services/hub-tools/system-tool-definitions.js +17 -80
- package/dist/server/src/services/hub-tools/tool-search.d.ts +7 -7
- package/dist/server/src/services/hub-tools/tool-search.d.ts.map +1 -1
- package/dist/server/src/services/hub-tools/tool-search.js +10 -4
- package/dist/server/src/services/hub-tools/types.d.ts +2 -2
- package/dist/server/src/services/hub-tools/types.d.ts.map +1 -1
- package/dist/server/src/services/hub-tools.service.d.ts +43 -72
- package/dist/server/src/services/hub-tools.service.d.ts.map +1 -1
- package/dist/server/src/services/hub-tools.service.js +185 -110
- package/dist/server/src/services/search/search-core.service.d.ts +5 -5
- package/dist/server/src/services/search/search-core.service.js +11 -11
- package/dist/server/src/services/session/session-manager.d.ts +12 -256
- package/dist/server/src/services/session/session-manager.d.ts.map +1 -1
- package/dist/server/src/services/session/session-manager.js +23 -585
- package/dist/server/src/services/session-tracker.service.d.ts +2 -10
- package/dist/server/src/services/session-tracker.service.d.ts.map +1 -1
- package/dist/server/src/services/session-tracker.service.js +2 -53
- package/dist/server/src/services/system-tool-handler.d.ts.map +1 -1
- package/dist/server/src/services/system-tool-handler.js +7 -17
- package/dist/server/src/utils/composite-key.d.ts +29 -0
- package/dist/server/src/utils/composite-key.d.ts.map +1 -0
- package/dist/server/src/utils/composite-key.js +39 -0
- package/dist/server/src/utils/error-handler.d.ts.map +1 -1
- package/dist/server/src/utils/error-handler.js +3 -2
- package/dist/server/src/utils/index.d.ts +2 -0
- package/dist/server/src/utils/index.d.ts.map +1 -1
- package/dist/server/src/utils/index.js +2 -0
- package/dist/server/src/utils/instance-id.d.ts +22 -0
- package/dist/server/src/utils/instance-id.d.ts.map +1 -0
- package/dist/server/src/utils/instance-id.js +59 -0
- package/dist/server/src/utils/json-utils.d.ts +4 -4
- package/dist/server/src/utils/json-utils.d.ts.map +1 -1
- package/dist/server/src/utils/json-utils.js +4 -4
- package/dist/server/src/utils/logger/dev-logger.d.ts +2 -1
- package/dist/server/src/utils/logger/dev-logger.d.ts.map +1 -1
- package/dist/server/src/utils/logger/log-formatter.d.ts.map +1 -1
- package/dist/server/src/utils/logger/log-formatter.js +82 -5
- package/dist/server/src/utils/logger/log-modules.d.ts +15 -9
- package/dist/server/src/utils/logger/log-modules.d.ts.map +1 -1
- package/dist/server/src/utils/logger/log-modules.js +8 -6
- package/dist/server/src/utils/parameter-validator.d.ts +10 -0
- package/dist/server/src/utils/parameter-validator.d.ts.map +1 -0
- package/dist/server/src/utils/parameter-validator.js +53 -0
- package/dist/server/src/utils/process-tree.d.ts +49 -0
- package/dist/server/src/utils/process-tree.d.ts.map +1 -0
- package/dist/server/src/utils/process-tree.js +285 -0
- package/dist/server/src/utils/request-context.d.ts +0 -18
- package/dist/server/src/utils/request-context.d.ts.map +1 -1
- package/dist/server/src/utils/request-context.js +0 -20
- package/dist/server/src/utils/sort-utils.d.ts +40 -0
- package/dist/server/src/utils/sort-utils.d.ts.map +1 -0
- package/dist/server/src/utils/sort-utils.js +131 -0
- package/dist/server/src/utils/transports/sse-transport.d.ts +16 -1
- package/dist/server/src/utils/transports/sse-transport.d.ts.map +1 -1
- package/dist/server/src/utils/transports/sse-transport.js +55 -9
- package/dist/server/src/utils/transports/stdio-transport.d.ts +24 -53
- package/dist/server/src/utils/transports/stdio-transport.d.ts.map +1 -1
- package/dist/server/src/utils/transports/stdio-transport.js +66 -247
- package/dist/server/src/utils/transports/streamable-http-transport.d.ts +24 -1
- package/dist/server/src/utils/transports/streamable-http-transport.d.ts.map +1 -1
- package/dist/server/src/utils/transports/streamable-http-transport.js +68 -8
- package/dist/server/src/utils/transports/transport-factory.d.ts +9 -4
- package/dist/server/src/utils/transports/transport-factory.d.ts.map +1 -1
- package/dist/server/src/utils/transports/transport-factory.js +31 -11
- package/dist/server/src/utils/transports/transport.interface.d.ts +6 -0
- package/dist/server/src/utils/transports/transport.interface.d.ts.map +1 -1
- package/dist/server/src/utils/version.d.ts +11 -0
- package/dist/server/src/utils/version.d.ts.map +1 -0
- package/dist/server/src/utils/version.js +57 -0
- package/dist/server/tests/contract/mcp-protocol/initialize.test.js +24 -24
- package/dist/server/tests/contract/mcp-protocol/tools-call.test.js +49 -45
- package/dist/server/tests/contract/mcp-protocol/tools-list.test.js +35 -36
- package/dist/server/tests/evaluation/evaluation.test.js +10 -9
- package/dist/server/tests/integration/api/gateway.test.js +2 -2
- package/dist/server/tests/integration/gateway/fault-tolerance.test.js +65 -25
- package/dist/server/tests/integration/gateway/mcp-connection.test.js +53 -61
- package/dist/server/tests/server.test.js +27 -16
- package/dist/server/tests/temp/temp-run-docling.d.ts +2 -0
- package/dist/server/tests/temp/temp-run-docling.d.ts.map +1 -0
- package/dist/server/tests/temp/temp-run-docling.js +53 -0
- package/dist/server/tests/types/test-helpers.d.ts +1 -2
- package/dist/server/tests/types/test-helpers.d.ts.map +1 -1
- package/dist/server/tests/unit/config/config-loader-automatic-migration.test.d.ts +2 -0
- package/dist/server/tests/unit/config/config-loader-automatic-migration.test.d.ts.map +1 -0
- package/dist/server/tests/unit/config/config-loader-automatic-migration.test.js +199 -0
- package/dist/server/tests/unit/config/config-migrator.test.d.ts +2 -0
- package/dist/server/tests/unit/config/config-migrator.test.d.ts.map +1 -0
- package/dist/server/tests/unit/config/config-migrator.test.js +316 -0
- package/dist/server/tests/unit/config/config-saver.test.d.ts +2 -0
- package/dist/server/tests/unit/config/config-saver.test.d.ts.map +1 -0
- package/dist/server/tests/unit/config/config-saver.test.js +200 -0
- package/dist/server/tests/unit/config/config.schema.test.d.ts +2 -0
- package/dist/server/tests/unit/config/config.schema.test.d.ts.map +1 -0
- package/dist/server/tests/unit/config/config.schema.test.js +347 -0
- package/dist/server/tests/unit/server/runner.test.js +86 -62
- package/dist/server/tests/unit/services/connection/connection-manager.test.d.ts +2 -0
- package/dist/server/tests/unit/services/connection/connection-manager.test.d.ts.map +1 -0
- package/dist/server/tests/unit/services/connection/connection-manager.test.js +112 -0
- package/dist/server/tests/unit/services/hub-manager-service.test.js +112 -46
- package/dist/server/tests/unit/services/hub-manager.test.js +25 -15
- package/dist/server/tests/unit/services/hub-tools/instance-selector.test.d.ts +2 -0
- package/dist/server/tests/unit/services/hub-tools/instance-selector.test.d.ts.map +1 -0
- package/dist/server/tests/unit/services/hub-tools/instance-selector.test.js +195 -0
- package/dist/server/tests/unit/services/hub-tools/server-selector.test.d.ts +2 -0
- package/dist/server/tests/unit/services/hub-tools/server-selector.test.d.ts.map +1 -0
- package/dist/server/tests/unit/services/hub-tools/server-selector.test.js +190 -0
- package/dist/server/tests/unit/services/hub-tools.service.test.js +560 -320
- package/dist/server/tests/unit/services/instance-matcher.test.d.ts +2 -0
- package/dist/server/tests/unit/services/instance-matcher.test.d.ts.map +1 -0
- package/dist/server/tests/unit/services/instance-matcher.test.js +256 -0
- package/dist/server/tests/unit/services/session-manager.test.js +26 -436
- package/dist/server/tests/unit/utils/config.test.js +88 -186
- package/dist/server/tests/unit/utils/json-utils.test.js +18 -18
- package/dist/server/tests/unit/utils/logger-formatter.test.d.ts +2 -0
- package/dist/server/tests/unit/utils/logger-formatter.test.d.ts.map +1 -0
- package/dist/server/tests/unit/utils/logger-formatter.test.js +66 -0
- package/dist/server/tests/unit/utils/parameter-validator.test.d.ts +2 -0
- package/dist/server/tests/unit/utils/parameter-validator.test.d.ts.map +1 -0
- package/dist/server/tests/unit/utils/parameter-validator.test.js +63 -0
- package/dist/server/tests/unit/utils/process-tree.test.d.ts +2 -0
- package/dist/server/tests/unit/utils/process-tree.test.d.ts.map +1 -0
- package/dist/server/tests/unit/utils/process-tree.test.js +129 -0
- package/dist/server/tests/unit/utils/request-context.test.js +5 -24
- package/dist/server/tests/unit/utils/sort-utils.test.d.ts +2 -0
- package/dist/server/tests/unit/utils/sort-utils.test.d.ts.map +1 -0
- package/dist/server/tests/unit/utils/sort-utils.test.js +220 -0
- package/dist/server/tests/unit/utils/transport-factory.test.d.ts +2 -0
- package/dist/server/tests/unit/utils/transport-factory.test.d.ts.map +1 -0
- package/dist/server/tests/unit/utils/transport-factory.test.js +55 -0
- package/package.json +1 -1
- package/dist/client/assets/ResourceDetailView-Bf-1ffbk.js +0 -1
- package/dist/client/assets/ResourcesView-CjMklkyv.css +0 -1
- package/dist/client/assets/ResourcesView-g5x4xCPh.js +0 -1
- package/dist/client/assets/ServerDashboard-Chpne8Q0.css +0 -1
- package/dist/client/assets/ServerDashboard-G8Wmp4hF.js +0 -2
- package/dist/client/assets/ServerListView-dV2XrPjo.js +0 -32
- package/dist/client/assets/ServerStatusTags.vue_vue_type_script_setup_true_lang-BHiTFM7-.js +0 -1
- package/dist/client/assets/SessionsView-Ckd38lj1.js +0 -1
- package/dist/client/assets/SettingsView-BJUdepEQ.js +0 -1
- package/dist/client/assets/ToolCallDialog-C_bTCpHC.js +0 -1
- package/dist/client/assets/ToolsView-0c2eputu.js +0 -1
- package/dist/client/assets/el-form-item-BVMLpmVC.css +0 -1
- package/dist/client/assets/el-form-item-ClFnj49k.js +0 -12
- package/dist/client/assets/el-input-CDnuSKVZ.js +0 -1
- package/dist/client/assets/el-input-CmuHb8HS.css +0 -1
- package/dist/client/assets/el-overlay-B2ZKM6Up.css +0 -1
- package/dist/client/assets/el-overlay-CzMkXyYy.js +0 -1
- package/dist/client/assets/el-select-DvjGddk_.js +0 -1
- package/dist/client/assets/el-tab-pane-C_DQMcwe.js +0 -1
- package/dist/client/assets/el-table-column-CASRIbZM.js +0 -1
- package/dist/client/assets/el-table-column-T_mV9jNw.css +0 -1
- package/dist/client/assets/el-tag-DjxZVOpb.css +0 -1
- package/dist/client/assets/el-tag-npbwux4f.js +0 -1
- package/dist/client/assets/index-CCnAxNF8.js +0 -2
- package/dist/client/assets/index-d1DZeSfz.js +0 -1
- package/dist/client/assets/vnode-CHomNjgN.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/services/gateway/request-handlers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/services/gateway/request-handlers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,cAAc,2BAA2B,CAAC"}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Gateway request handlers index.
|
|
3
3
|
*/
|
|
4
4
|
export { registerInitializeHandlers } from './initialize-handler.js';
|
|
5
|
-
export { registerToolsHandlers } from './tools-handler.js';
|
|
6
5
|
export { registerResourcesHandlers } from './resources-handler.js';
|
|
7
6
|
export { registerSystemToolsHandlers } from './system-tools-handler.js';
|
|
8
7
|
export { registerCallToolHandler } from './call-tool-handler.js';
|
|
8
|
+
export * from './initialize.constants.js';
|
|
@@ -1,7 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
* Initialize and ping request handlers for Gateway service.
|
|
3
|
-
*/
|
|
4
|
-
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
1
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
2
|
/**
|
|
6
3
|
* Register initialize and ping handlers on the MCP server.
|
|
7
4
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"initialize-handler.d.ts","sourceRoot":"","sources":["../../../../../../src/services/gateway/request-handlers/initialize-handler.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"initialize-handler.d.ts","sourceRoot":"","sources":["../../../../../../src/services/gateway/request-handlers/initialize-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAWpE;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA4ClE"}
|
|
@@ -1,76 +1,28 @@
|
|
|
1
|
-
|
|
2
|
-
* Initialize and ping request handlers for Gateway service.
|
|
3
|
-
*/
|
|
4
|
-
import { z } from 'zod';
|
|
5
|
-
import { logger, LOG_MODULES } from '../../../utils/index.js';
|
|
6
|
-
import { getSessionContext } from '../../../utils/request-context.js';
|
|
7
|
-
import { sessionTrackerService } from '../../session-tracker.service.js';
|
|
1
|
+
import { logger, LOG_MODULES } from '../../../utils/logger/index.js';
|
|
8
2
|
import { MCP_HUB_LITE_SERVER } from '../../../models/system-tools.constants.js';
|
|
3
|
+
import { getAppVersion, getProtocolVersion } from '../../../utils/version.js';
|
|
4
|
+
import { InitializedNotificationSchema, InitializeRequestSchema, PingRequestSchema } from './initialize.constants.js';
|
|
9
5
|
/**
|
|
10
6
|
* Register initialize and ping handlers on the MCP server.
|
|
11
7
|
*
|
|
12
8
|
* @param server - MCP server instance to register handlers on
|
|
13
9
|
*/
|
|
14
10
|
export function registerInitializeHandlers(server) {
|
|
15
|
-
// MCP standard initialize handler
|
|
16
|
-
const InitializeRequestSchema = z.object({
|
|
17
|
-
method: z.literal('initialize'),
|
|
18
|
-
params: z
|
|
19
|
-
.object({
|
|
20
|
-
clientInfo: z
|
|
21
|
-
.object({
|
|
22
|
-
name: z.string(),
|
|
23
|
-
version: z.string(),
|
|
24
|
-
mcpVersion: z.string().optional()
|
|
25
|
-
})
|
|
26
|
-
.optional(),
|
|
27
|
-
capabilities: z
|
|
28
|
-
.object({
|
|
29
|
-
tools: z
|
|
30
|
-
.object({
|
|
31
|
-
list: z.boolean().optional(),
|
|
32
|
-
execute: z.boolean().optional()
|
|
33
|
-
})
|
|
34
|
-
.optional(),
|
|
35
|
-
roots: z
|
|
36
|
-
.object({
|
|
37
|
-
list: z.boolean().optional()
|
|
38
|
-
})
|
|
39
|
-
.optional(),
|
|
40
|
-
experimental: z.record(z.string(), z.any()).optional()
|
|
41
|
-
})
|
|
42
|
-
.optional(),
|
|
43
|
-
protocolVersion: z.string().optional()
|
|
44
|
-
})
|
|
45
|
-
.optional(),
|
|
46
|
-
id: z.union([z.string(), z.number()]),
|
|
47
|
-
jsonrpc: z.literal('2.0')
|
|
48
|
-
});
|
|
49
11
|
server.server.setRequestHandler(InitializeRequestSchema, async (request) => {
|
|
50
|
-
|
|
51
|
-
const context = getSessionContext();
|
|
52
|
-
if (context && request.params?.clientInfo) {
|
|
12
|
+
if (request.params?.clientInfo) {
|
|
53
13
|
const { name, version } = request.params.clientInfo;
|
|
14
|
+
const protocolVersion = request.params?.protocolVersion || getProtocolVersion();
|
|
54
15
|
const clientCapabilities = request.params?.capabilities;
|
|
55
|
-
logger.
|
|
16
|
+
logger.debug(`Initialized client: Name=${name}, Version=${version}, ProtocolVersion=${protocolVersion}`, LOG_MODULES.GATEWAY);
|
|
56
17
|
if (clientCapabilities?.roots) {
|
|
57
18
|
logger.debug(`Client ${name} supports roots capability`, LOG_MODULES.GATEWAY);
|
|
58
19
|
}
|
|
59
|
-
// Update session info in tracker with capabilities
|
|
60
|
-
sessionTrackerService.updateSession({
|
|
61
|
-
...context,
|
|
62
|
-
clientName: name,
|
|
63
|
-
clientVersion: version,
|
|
64
|
-
protocolVersion: request.params?.protocolVersion,
|
|
65
|
-
capabilities: clientCapabilities
|
|
66
|
-
});
|
|
67
20
|
}
|
|
68
21
|
return {
|
|
69
|
-
protocolVersion:
|
|
22
|
+
protocolVersion: getProtocolVersion(),
|
|
70
23
|
serverInfo: {
|
|
71
24
|
name: MCP_HUB_LITE_SERVER,
|
|
72
|
-
version:
|
|
73
|
-
mcpVersion: '2024-11-05'
|
|
25
|
+
version: getAppVersion()
|
|
74
26
|
},
|
|
75
27
|
capabilities: {
|
|
76
28
|
tools: {
|
|
@@ -85,33 +37,10 @@ export function registerInitializeHandlers(server) {
|
|
|
85
37
|
}
|
|
86
38
|
};
|
|
87
39
|
});
|
|
88
|
-
// MCP standard ping handler
|
|
89
|
-
const PingRequestSchema = z.object({
|
|
90
|
-
method: z.literal('ping'),
|
|
91
|
-
params: z.object({}).optional(),
|
|
92
|
-
id: z.union([z.string(), z.number()]),
|
|
93
|
-
jsonrpc: z.literal('2.0')
|
|
94
|
-
});
|
|
95
40
|
server.server.setRequestHandler(PingRequestSchema, async () => {
|
|
96
|
-
return { pong: true };
|
|
97
|
-
});
|
|
98
|
-
// MCP initialized notification handler
|
|
99
|
-
const InitializedNotificationSchema = z.object({
|
|
100
|
-
method: z.literal('notifications/initialized'),
|
|
101
|
-
params: z.any().optional(),
|
|
102
|
-
jsonrpc: z.literal('2.0')
|
|
41
|
+
return { pong: true };
|
|
103
42
|
});
|
|
104
43
|
server.server.setNotificationHandler(InitializedNotificationSchema, async () => {
|
|
105
|
-
|
|
106
|
-
if (!context) {
|
|
107
|
-
logger.warn('Received initialized notification but no session context available', LOG_MODULES.GATEWAY);
|
|
108
|
-
return;
|
|
109
|
-
}
|
|
110
|
-
const sessionInfo = sessionTrackerService.getSession(context.sessionId);
|
|
111
|
-
if (!sessionInfo) {
|
|
112
|
-
logger.warn(`Received initialized notification but no session info for session ${context.sessionId}`, LOG_MODULES.GATEWAY);
|
|
113
|
-
return;
|
|
114
|
-
}
|
|
115
|
-
logger.debug(`Received initialized notification from client ${sessionInfo.clientName || 'unknown'} (${context.sessionId})`, LOG_MODULES.GATEWAY);
|
|
44
|
+
logger.debug('Received initialized notification from client', LOG_MODULES.GATEWAY);
|
|
116
45
|
});
|
|
117
46
|
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export declare const InitializeRequestSchema: z.ZodObject<{
|
|
3
|
+
method: z.ZodLiteral<"initialize">;
|
|
4
|
+
params: z.ZodOptional<z.ZodObject<{
|
|
5
|
+
clientInfo: z.ZodOptional<z.ZodObject<{
|
|
6
|
+
name: z.ZodString;
|
|
7
|
+
version: z.ZodString;
|
|
8
|
+
}, z.core.$strip>>;
|
|
9
|
+
capabilities: z.ZodOptional<z.ZodObject<{
|
|
10
|
+
tools: z.ZodOptional<z.ZodObject<{
|
|
11
|
+
list: z.ZodOptional<z.ZodBoolean>;
|
|
12
|
+
execute: z.ZodOptional<z.ZodBoolean>;
|
|
13
|
+
}, z.core.$strip>>;
|
|
14
|
+
roots: z.ZodOptional<z.ZodObject<{
|
|
15
|
+
list: z.ZodOptional<z.ZodBoolean>;
|
|
16
|
+
}, z.core.$strip>>;
|
|
17
|
+
experimental: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodAny>>;
|
|
18
|
+
}, z.core.$strip>>;
|
|
19
|
+
protocolVersion: z.ZodOptional<z.ZodString>;
|
|
20
|
+
}, z.core.$strip>>;
|
|
21
|
+
id: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
|
|
22
|
+
jsonrpc: z.ZodLiteral<"2.0">;
|
|
23
|
+
}, z.core.$strip>;
|
|
24
|
+
export declare const PingRequestSchema: z.ZodObject<{
|
|
25
|
+
method: z.ZodLiteral<"ping">;
|
|
26
|
+
params: z.ZodOptional<z.ZodObject<{}, z.core.$strip>>;
|
|
27
|
+
id: z.ZodUnion<readonly [z.ZodString, z.ZodNumber]>;
|
|
28
|
+
jsonrpc: z.ZodLiteral<"2.0">;
|
|
29
|
+
}, z.core.$strip>;
|
|
30
|
+
export declare const InitializedNotificationSchema: z.ZodObject<{
|
|
31
|
+
method: z.ZodLiteral<"notifications/initialized">;
|
|
32
|
+
params: z.ZodOptional<z.ZodAny>;
|
|
33
|
+
jsonrpc: z.ZodLiteral<"2.0">;
|
|
34
|
+
}, z.core.$strip>;
|
|
35
|
+
//# sourceMappingURL=initialize.constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initialize.constants.d.ts","sourceRoot":"","sources":["../../../../../../src/services/gateway/request-handlers/initialize.constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;iBA+BlC,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;iBAK5B,CAAC;AAEH,eAAO,MAAM,6BAA6B;;;;iBAIxC,CAAC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
export const InitializeRequestSchema = z.object({
|
|
3
|
+
method: z.literal('initialize'),
|
|
4
|
+
params: z
|
|
5
|
+
.object({
|
|
6
|
+
clientInfo: z
|
|
7
|
+
.object({
|
|
8
|
+
name: z.string(),
|
|
9
|
+
version: z.string()
|
|
10
|
+
})
|
|
11
|
+
.optional(),
|
|
12
|
+
capabilities: z
|
|
13
|
+
.object({
|
|
14
|
+
tools: z
|
|
15
|
+
.object({
|
|
16
|
+
list: z.boolean().optional(),
|
|
17
|
+
execute: z.boolean().optional()
|
|
18
|
+
})
|
|
19
|
+
.optional(),
|
|
20
|
+
roots: z
|
|
21
|
+
.object({
|
|
22
|
+
list: z.boolean().optional()
|
|
23
|
+
})
|
|
24
|
+
.optional(),
|
|
25
|
+
experimental: z.record(z.string(), z.any()).optional()
|
|
26
|
+
})
|
|
27
|
+
.optional(),
|
|
28
|
+
protocolVersion: z.string().optional()
|
|
29
|
+
})
|
|
30
|
+
.optional(),
|
|
31
|
+
id: z.union([z.string(), z.number()]),
|
|
32
|
+
jsonrpc: z.literal('2.0')
|
|
33
|
+
});
|
|
34
|
+
export const PingRequestSchema = z.object({
|
|
35
|
+
method: z.literal('ping'),
|
|
36
|
+
params: z.object({}).optional(),
|
|
37
|
+
id: z.union([z.string(), z.number()]),
|
|
38
|
+
jsonrpc: z.literal('2.0')
|
|
39
|
+
});
|
|
40
|
+
export const InitializedNotificationSchema = z.object({
|
|
41
|
+
method: z.literal('notifications/initialized'),
|
|
42
|
+
params: z.any().optional(),
|
|
43
|
+
jsonrpc: z.literal('2.0')
|
|
44
|
+
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resources-handler.d.ts","sourceRoot":"","sources":["../../../../../../src/services/gateway/request-handlers/resources-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"resources-handler.d.ts","sourceRoot":"","sources":["../../../../../../src/services/gateway/request-handlers/resources-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwCjE"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { ListResourcesRequestSchema, ReadResourceRequestSchema, McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
5
5
|
import { logger } from '../../../utils/index.js';
|
|
6
|
+
import { LOG_MODULES } from '../../../utils/logger/log-modules.js';
|
|
6
7
|
import { stringifyForLogging } from '../../../utils/json-utils.js';
|
|
7
8
|
import { hubToolsService } from '../../hub-tools.service.js';
|
|
8
9
|
/**
|
|
@@ -18,11 +19,11 @@ export function registerResourcesHandlers(server) {
|
|
|
18
19
|
}
|
|
19
20
|
catch (error) {
|
|
20
21
|
if (error instanceof Error) {
|
|
21
|
-
logger.error(`List resources error:`, error);
|
|
22
|
+
logger.error(`List resources error:`, error, LOG_MODULES.RESOURCES_HANDLER);
|
|
22
23
|
throw new McpError(-32802, error.message);
|
|
23
24
|
}
|
|
24
25
|
else {
|
|
25
|
-
logger.error(`List resources error:`, error);
|
|
26
|
+
logger.error(`List resources error:`, error, LOG_MODULES.RESOURCES_HANDLER);
|
|
26
27
|
throw new McpError(-32802, String(error));
|
|
27
28
|
}
|
|
28
29
|
}
|
|
@@ -44,11 +45,11 @@ export function registerResourcesHandlers(server) {
|
|
|
44
45
|
}
|
|
45
46
|
catch (error) {
|
|
46
47
|
if (error instanceof Error) {
|
|
47
|
-
logger.error(`Read resource error:`, error);
|
|
48
|
+
logger.error(`Read resource error:`, error, LOG_MODULES.RESOURCES_HANDLER);
|
|
48
49
|
throw new McpError(-32802, error.message);
|
|
49
50
|
}
|
|
50
51
|
else {
|
|
51
|
-
logger.error(`Read resource error:`, error);
|
|
52
|
+
logger.error(`Read resource error:`, error, LOG_MODULES.RESOURCES_HANDLER);
|
|
52
53
|
throw new McpError(-32802, String(error));
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"system-tools-handler.d.ts","sourceRoot":"","sources":["../../../../../../src/services/gateway/request-handlers/system-tools-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"system-tools-handler.d.ts","sourceRoot":"","sources":["../../../../../../src/services/gateway/request-handlers/system-tools-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAYzE;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAyLnE"}
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
6
6
|
import { logger } from '../../../utils/index.js';
|
|
7
|
-
import {
|
|
7
|
+
import { LOG_MODULES } from '../../../utils/logger/log-modules.js';
|
|
8
8
|
import { hubToolsService } from '../../hub-tools.service.js';
|
|
9
|
-
import { LIST_SERVERS_TOOL,
|
|
9
|
+
import { LIST_SERVERS_TOOL, LIST_TOOLS_IN_SERVER_TOOL, GET_TOOL_TOOL, CALL_TOOL_TOOL, UPDATE_SERVER_DESCRIPTION_TOOL } from '../../../models/system-tools.constants.js';
|
|
10
10
|
/**
|
|
11
11
|
* Register system tools handlers on the MCP server.
|
|
12
12
|
*
|
|
@@ -24,63 +24,11 @@ export function registerSystemToolsHandlers(server) {
|
|
|
24
24
|
const servers = await hubToolsService.listServers();
|
|
25
25
|
return { servers };
|
|
26
26
|
});
|
|
27
|
-
// Find servers
|
|
28
|
-
const FindServersRequestSchema = z.object({
|
|
29
|
-
method: z.literal(FIND_SERVERS_TOOL),
|
|
30
|
-
params: z.object({
|
|
31
|
-
pattern: z.string(),
|
|
32
|
-
searchIn: z.enum(['name', 'description', 'both']).optional().default('both'),
|
|
33
|
-
caseSensitive: z.boolean().optional().default(false)
|
|
34
|
-
}),
|
|
35
|
-
id: z.union([z.string(), z.number()]),
|
|
36
|
-
jsonrpc: z.literal('2.0')
|
|
37
|
-
});
|
|
38
|
-
server.server.setRequestHandler(FindServersRequestSchema, async (request) => {
|
|
39
|
-
const servers = await hubToolsService.findServers(request.params);
|
|
40
|
-
return { servers };
|
|
41
|
-
});
|
|
42
27
|
// List all tools in a specific server
|
|
43
|
-
const
|
|
44
|
-
method: z.literal(
|
|
45
|
-
params: z.object({
|
|
46
|
-
serverName: z.string(),
|
|
47
|
-
requestOptions: z
|
|
48
|
-
.object({
|
|
49
|
-
sessionId: z
|
|
50
|
-
.union([z.string(), z.null()])
|
|
51
|
-
.optional()
|
|
52
|
-
.transform((val) => val ?? undefined),
|
|
53
|
-
tags: z.record(z.string(), z.string()).optional()
|
|
54
|
-
})
|
|
55
|
-
.optional()
|
|
56
|
-
}),
|
|
57
|
-
id: z.union([z.string(), z.number()]),
|
|
58
|
-
jsonrpc: z.literal('2.0')
|
|
59
|
-
});
|
|
60
|
-
server.server.setRequestHandler(ListAllToolsInServerRequestSchema, async (request) => {
|
|
61
|
-
try {
|
|
62
|
-
const result = await hubToolsService.listAllToolsInServer(request.params);
|
|
63
|
-
return result;
|
|
64
|
-
}
|
|
65
|
-
catch (error) {
|
|
66
|
-
if (error instanceof Error) {
|
|
67
|
-
logger.error(`List tools in server error:`, error);
|
|
68
|
-
throw new McpError(-32802, error.message);
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
logger.error(`List tools in server error:`, error);
|
|
72
|
-
throw new McpError(-32802, String(error));
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
});
|
|
76
|
-
// Find tools in a specific server
|
|
77
|
-
const FindToolsInServerRequestSchema = z.object({
|
|
78
|
-
method: z.literal(FIND_TOOLS_IN_SERVER_TOOL),
|
|
28
|
+
const ListToolsInServerRequestSchema = z.object({
|
|
29
|
+
method: z.literal(LIST_TOOLS_IN_SERVER_TOOL),
|
|
79
30
|
params: z.object({
|
|
80
31
|
serverName: z.string(),
|
|
81
|
-
pattern: z.string(),
|
|
82
|
-
searchIn: z.enum(['name', 'description', 'both']).optional().default('both'),
|
|
83
|
-
caseSensitive: z.boolean().optional().default(false),
|
|
84
32
|
requestOptions: z
|
|
85
33
|
.object({
|
|
86
34
|
sessionId: z
|
|
@@ -94,18 +42,18 @@ export function registerSystemToolsHandlers(server) {
|
|
|
94
42
|
id: z.union([z.string(), z.number()]),
|
|
95
43
|
jsonrpc: z.literal('2.0')
|
|
96
44
|
});
|
|
97
|
-
server.server.setRequestHandler(
|
|
45
|
+
server.server.setRequestHandler(ListToolsInServerRequestSchema, async (request) => {
|
|
98
46
|
try {
|
|
99
|
-
const result = await hubToolsService.
|
|
47
|
+
const result = await hubToolsService.listToolsInServer(request.params);
|
|
100
48
|
return result;
|
|
101
49
|
}
|
|
102
50
|
catch (error) {
|
|
103
51
|
if (error instanceof Error) {
|
|
104
|
-
logger.error(`
|
|
52
|
+
logger.error(`List tools in server error:`, error, LOG_MODULES.SYSTEM_TOOLS_HANDLER);
|
|
105
53
|
throw new McpError(-32802, error.message);
|
|
106
54
|
}
|
|
107
55
|
else {
|
|
108
|
-
logger.error(`
|
|
56
|
+
logger.error(`List tools in server error:`, error, LOG_MODULES.SYSTEM_TOOLS_HANDLER);
|
|
109
57
|
throw new McpError(-32802, String(error));
|
|
110
58
|
}
|
|
111
59
|
}
|
|
@@ -138,7 +86,7 @@ export function registerSystemToolsHandlers(server) {
|
|
|
138
86
|
return { tool };
|
|
139
87
|
}
|
|
140
88
|
catch (error) {
|
|
141
|
-
logger.error(`Get tool error:`, error);
|
|
89
|
+
logger.error(`Get tool error:`, error, LOG_MODULES.SYSTEM_TOOLS_HANDLER);
|
|
142
90
|
if (error instanceof McpError) {
|
|
143
91
|
throw error;
|
|
144
92
|
}
|
|
@@ -173,12 +121,6 @@ export function registerSystemToolsHandlers(server) {
|
|
|
173
121
|
server.server.setRequestHandler(CallToolDirectRequestSchema, async (request) => {
|
|
174
122
|
try {
|
|
175
123
|
const params = { ...request.params };
|
|
176
|
-
// Inject CWD if available and not present in args
|
|
177
|
-
const cwd = getSessionCwd();
|
|
178
|
-
if (cwd && !params.toolArgs.cwd) {
|
|
179
|
-
params.toolArgs.cwd = cwd;
|
|
180
|
-
logger.debug(`Injected CWD into direct tool call: ${cwd}`);
|
|
181
|
-
}
|
|
182
124
|
const result = await hubToolsService.callTool(params);
|
|
183
125
|
// Wrap the result in a valid CallToolResult structure
|
|
184
126
|
if (typeof result === 'object' && result !== null) {
|
|
@@ -199,7 +141,7 @@ export function registerSystemToolsHandlers(server) {
|
|
|
199
141
|
}
|
|
200
142
|
}
|
|
201
143
|
catch (error) {
|
|
202
|
-
logger.error(`Call tool error:`, error);
|
|
144
|
+
logger.error(`Call tool error:`, error, LOG_MODULES.SYSTEM_TOOLS_HANDLER);
|
|
203
145
|
if (error instanceof McpError) {
|
|
204
146
|
throw error;
|
|
205
147
|
}
|
|
@@ -222,19 +164,32 @@ export function registerSystemToolsHandlers(server) {
|
|
|
222
164
|
const allTools = await hubToolsService.listAllTools();
|
|
223
165
|
return allTools;
|
|
224
166
|
});
|
|
225
|
-
//
|
|
226
|
-
const
|
|
227
|
-
method: z.literal(
|
|
167
|
+
// Update server description
|
|
168
|
+
const UpdateServerDescriptionRequestSchema = z.object({
|
|
169
|
+
method: z.literal(UPDATE_SERVER_DESCRIPTION_TOOL),
|
|
228
170
|
params: z.object({
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
caseSensitive: z.boolean().optional().default(false)
|
|
171
|
+
serverName: z.string(),
|
|
172
|
+
description: z.string()
|
|
232
173
|
}),
|
|
233
174
|
id: z.union([z.string(), z.number()]),
|
|
234
175
|
jsonrpc: z.literal('2.0')
|
|
235
176
|
});
|
|
236
|
-
server.server.setRequestHandler(
|
|
237
|
-
|
|
238
|
-
|
|
177
|
+
server.server.setRequestHandler(UpdateServerDescriptionRequestSchema, async (request) => {
|
|
178
|
+
try {
|
|
179
|
+
const result = await hubToolsService.updateServerDescription(request.params);
|
|
180
|
+
return result;
|
|
181
|
+
}
|
|
182
|
+
catch (error) {
|
|
183
|
+
logger.error(`Update server description error:`, error, LOG_MODULES.SYSTEM_TOOLS_HANDLER);
|
|
184
|
+
if (error instanceof McpError) {
|
|
185
|
+
throw error;
|
|
186
|
+
}
|
|
187
|
+
else if (error instanceof Error) {
|
|
188
|
+
throw new McpError(-32802, error.message);
|
|
189
|
+
}
|
|
190
|
+
else {
|
|
191
|
+
throw new McpError(-32802, String(error));
|
|
192
|
+
}
|
|
193
|
+
}
|
|
239
194
|
});
|
|
240
195
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tools-handler.d.ts","sourceRoot":"","sources":["../../../../../../src/services/gateway/request-handlers/tools-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;
|
|
1
|
+
{"version":3,"file":"tools-handler.d.ts","sourceRoot":"","sources":["../../../../../../src/services/gateway/request-handlers/tools-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAOzE;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqE7D"}
|
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
import { z } from 'zod';
|
|
5
5
|
import { McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
6
6
|
import { logger } from '../../../utils/index.js';
|
|
7
|
+
import { LOG_MODULES } from '../../../utils/logger/log-modules.js';
|
|
7
8
|
import { searchCoreService } from '../../search/search-core.service.js';
|
|
8
9
|
import { hubManager } from '../../hub-manager.service.js';
|
|
9
10
|
/**
|
|
@@ -42,7 +43,7 @@ export function registerToolsHandlers(server) {
|
|
|
42
43
|
filters: {}
|
|
43
44
|
};
|
|
44
45
|
if (filters.serverName) {
|
|
45
|
-
const serverInstances = hubManager.
|
|
46
|
+
const serverInstances = hubManager.getServerInstancesByName(filters.serverName);
|
|
46
47
|
if (serverInstances.length > 0) {
|
|
47
48
|
// Use the first instance's ID as filter condition
|
|
48
49
|
searchOptions.filters.serverId = serverInstances[0].id;
|
|
@@ -67,11 +68,11 @@ export function registerToolsHandlers(server) {
|
|
|
67
68
|
}
|
|
68
69
|
catch (error) {
|
|
69
70
|
if (error instanceof Error) {
|
|
70
|
-
logger.error(`Search tools error:`, error);
|
|
71
|
+
logger.error(`Search tools error:`, error, LOG_MODULES.TOOLS_HANDLER);
|
|
71
72
|
throw new McpError(-32802, `Search failed: ${error.message}`);
|
|
72
73
|
}
|
|
73
74
|
else {
|
|
74
|
-
logger.error(`Search tools error:`, error);
|
|
75
|
+
logger.error(`Search tools error:`, error, LOG_MODULES.TOOLS_HANDLER);
|
|
75
76
|
throw new McpError(-32802, `Search failed: ${String(error)}`);
|
|
76
77
|
}
|
|
77
78
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tool-list-generator.d.ts","sourceRoot":"","sources":["../../../../../src/services/gateway/tool-list-generator.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"tool-list-generator.d.ts","sourceRoot":"","sources":["../../../../../src/services/gateway/tool-list-generator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAQH,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE5D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC,CAkI/F"}
|
|
@@ -2,9 +2,11 @@
|
|
|
2
2
|
* Gateway tool list generator with collision resolution.
|
|
3
3
|
*/
|
|
4
4
|
import { logger } from '../../utils/index.js';
|
|
5
|
+
import { LOG_MODULES } from '../../utils/logger/log-modules.js';
|
|
5
6
|
import { mcpConnectionManager } from '../mcp-connection-manager.js';
|
|
6
7
|
import { hubManager } from '../hub-manager.service.js';
|
|
7
8
|
import { hubToolsService } from '../hub-tools.service.js';
|
|
9
|
+
import { parseCompositeKey } from '../../utils/composite-key.js';
|
|
8
10
|
/**
|
|
9
11
|
* Generates a unified list of gateway tools with proper naming and collision resolution.
|
|
10
12
|
*
|
|
@@ -39,13 +41,21 @@ export function generateGatewayToolsList(toolMap) {
|
|
|
39
41
|
}
|
|
40
42
|
// First pass: Count tool name frequencies to determine uniqueness
|
|
41
43
|
const toolNameCounts = new Map();
|
|
42
|
-
// Iterate through toolCache to get all tools
|
|
43
|
-
for (const [
|
|
44
|
+
// Iterate through toolCache to get all tools - entries are keyed by compositeKey (serverName-serverIndex)
|
|
45
|
+
for (const [compositeKey, tools] of mcpConnectionManager.getToolCacheEntries()) {
|
|
44
46
|
for (const tool of tools) {
|
|
45
|
-
|
|
47
|
+
// Parse composite key to get serverName
|
|
48
|
+
const parsed = parseCompositeKey(compositeKey);
|
|
49
|
+
const serverName = parsed ? parsed.serverName : compositeKey;
|
|
50
|
+
const serverConfig = hubManager.getServerByName(serverName);
|
|
46
51
|
if (serverConfig) {
|
|
47
|
-
if
|
|
48
|
-
|
|
52
|
+
// Only include tools if server has aggregatedTools configured AND tool is in aggregatedTools
|
|
53
|
+
const aggregatedTools = serverConfig.template?.aggregatedTools;
|
|
54
|
+
const hasAggregatedTools = aggregatedTools && aggregatedTools.length > 0;
|
|
55
|
+
if (!hasAggregatedTools) {
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
if (!aggregatedTools.includes(tool.name)) {
|
|
49
59
|
continue;
|
|
50
60
|
}
|
|
51
61
|
}
|
|
@@ -53,32 +63,42 @@ export function generateGatewayToolsList(toolMap) {
|
|
|
53
63
|
}
|
|
54
64
|
}
|
|
55
65
|
// Second pass: Generate gateway tools with proper naming
|
|
56
|
-
for (const [
|
|
57
|
-
|
|
66
|
+
for (const [compositeKey, tools] of mcpConnectionManager.getToolCacheEntries()) {
|
|
67
|
+
// Parse composite key to get serverName
|
|
68
|
+
const parsed = parseCompositeKey(compositeKey);
|
|
69
|
+
const serverName = parsed ? parsed.serverName : compositeKey;
|
|
70
|
+
const serverIndex = parsed ? parsed.serverIndex : 0;
|
|
71
|
+
const serverConfig = hubManager.getServerByName(serverName);
|
|
58
72
|
// Skip if server configuration not found
|
|
59
73
|
if (!serverConfig) {
|
|
60
|
-
logger.warn(`Server configuration not found for
|
|
74
|
+
logger.warn(`Server configuration not found for serverName: ${serverName}, skipping tools`, LOG_MODULES.TOOL_LIST_GENERATOR);
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
// Only include tools if server has aggregatedTools configured
|
|
78
|
+
const aggregatedTools = serverConfig.template?.aggregatedTools;
|
|
79
|
+
const hasAggregatedTools = aggregatedTools && aggregatedTools.length > 0;
|
|
80
|
+
if (!hasAggregatedTools) {
|
|
61
81
|
continue;
|
|
62
82
|
}
|
|
83
|
+
// Get the instance ID for hash suffix (use compositeKey which contains serverName-serverIndex format)
|
|
84
|
+
const hashSuffix = compositeKey;
|
|
63
85
|
for (const tool of tools) {
|
|
64
|
-
if (
|
|
65
|
-
!serverConfig.config.allowedTools.includes(tool.name)) {
|
|
86
|
+
if (!aggregatedTools.includes(tool.name)) {
|
|
66
87
|
continue;
|
|
67
88
|
}
|
|
68
|
-
const serverName = serverConfig.name;
|
|
69
89
|
let gatewayToolName = tool.name;
|
|
70
90
|
const isUnique = toolNameCounts.get(tool.name) === 1;
|
|
71
91
|
const isSystemConflict = usedNames.has(tool.name);
|
|
72
92
|
// If tool name is not unique or conflicts with system tool, append server hash
|
|
73
93
|
if (!isUnique || isSystemConflict) {
|
|
74
|
-
//
|
|
75
|
-
const hash =
|
|
94
|
+
// Use hash suffix from compositeKey for uniqueness
|
|
95
|
+
const hash = hashSuffix.substring(0, 4);
|
|
76
96
|
gatewayToolName = `${tool.name}_${hash}`;
|
|
77
97
|
}
|
|
78
98
|
// Ensure name doesn't exceed 60 chars
|
|
79
99
|
if (gatewayToolName.length > 60) {
|
|
80
|
-
// Use
|
|
81
|
-
const hash =
|
|
100
|
+
// Use hash suffix from compositeKey
|
|
101
|
+
const hash = hashSuffix.substring(0, 4);
|
|
82
102
|
// Reserve space for hash and separator
|
|
83
103
|
const maxToolNameLen = 60 - hash.length - 1;
|
|
84
104
|
const truncatedToolName = tool.name.substring(0, maxToolNameLen);
|
|
@@ -101,7 +121,8 @@ export function generateGatewayToolsList(toolMap) {
|
|
|
101
121
|
gatewayToolName = finalName;
|
|
102
122
|
usedNames.add(gatewayToolName);
|
|
103
123
|
toolMap.set(gatewayToolName, {
|
|
104
|
-
|
|
124
|
+
serverName,
|
|
125
|
+
serverIndex,
|
|
105
126
|
realToolName: tool.name
|
|
106
127
|
});
|
|
107
128
|
gatewayTools.push({
|
|
@@ -6,7 +6,8 @@ import type { JsonSchema } from '../../../shared/models/tool.model.js';
|
|
|
6
6
|
* Tool map entry for routing gateway tool calls to actual servers.
|
|
7
7
|
*/
|
|
8
8
|
export interface ToolMapEntry {
|
|
9
|
-
|
|
9
|
+
serverName: string;
|
|
10
|
+
serverIndex: number;
|
|
10
11
|
realToolName: string;
|
|
11
12
|
}
|
|
12
13
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/services/gateway/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/services/gateway/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,8BAA8B,CAAC;AAE/D;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,UAAU,CAAC;IACzB,WAAW,CAAC,EAAE;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,eAAe,CAAC,EAAE,OAAO,CAAC;QAC1B,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,CAAC;CACH"}
|