@loop_ouroboros/mcp-hub-lite 1.0.2 → 1.1.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/CHANGELOG.md +32 -0
- package/dist/client/assets/{HomeView-7rMg9C6t.js → HomeView-BBwvy1oj.js} +1 -1
- package/dist/client/assets/ResourceDetailView-CZ2aB73w.js +1 -0
- package/dist/client/assets/ResourceDetailView-DUJZbegl.css +1 -0
- package/dist/client/assets/ResourcesView-CN1NlhWs.js +1 -0
- package/dist/client/assets/ResourcesView-Cc8RHtia.css +1 -0
- package/dist/client/assets/ServerDashboard-BfLeFDGw.css +1 -0
- package/dist/client/assets/ServerDashboard-k652Vw4Z.js +1 -0
- package/dist/client/assets/ServerDetail-BLQ-a4cO.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-BHrsFD5i.js +36 -0
- package/dist/client/assets/ServerStatusTags.vue_vue_type_script_setup_true_lang-BHhwEuGe.js +1 -0
- package/dist/client/assets/SettingsView-CUOFNXrz.js +1 -0
- package/dist/client/assets/SettingsView-GkBOKL0V.css +1 -0
- package/dist/client/assets/ToolCallDialog-BfPjLxfV.js +1 -0
- package/dist/client/assets/ToolsView-BxgXvPC3.css +1 -0
- package/dist/client/assets/ToolsView-CyuhYAE2.js +1 -0
- package/dist/client/assets/{_baseClone-5q1b0P3O.js → _baseClone-DO5qfalW.js} +1 -1
- package/dist/client/assets/el-form-item-B4LbJ6OO.css +1 -0
- package/dist/client/assets/el-form-item-CcGsD2K_.js +12 -0
- package/dist/client/assets/el-input-BH4BZKnG.css +1 -0
- package/dist/client/assets/el-input-tYgeiaCT.js +1 -0
- package/dist/client/assets/{el-loading-H85n3BUC.js → el-loading-Dwl9E_Vr.js} +1 -1
- package/dist/client/assets/{el-select-C0U_l4IZ.css → el-overlay-CBvdpA69.css} +1 -1
- package/dist/client/assets/el-overlay-kqX_BABo.js +1 -0
- package/dist/client/assets/{ResourceDetailView-BdOaL_-o.css → el-radio-group-B0bauIRR.css} +1 -1
- package/dist/client/assets/el-radio-group-D8aWBVOT.js +1 -0
- package/dist/client/assets/el-skeleton-item-BLY1jEuR.css +1 -0
- package/dist/client/assets/el-skeleton-item-BRwIFspE.js +1 -0
- package/dist/client/assets/el-switch-BBrS-_6y.css +1 -0
- package/dist/client/assets/el-switch-BF8c-xeU.js +1 -0
- package/dist/client/assets/el-tab-pane-C4Ep94cd.js +1 -0
- package/dist/client/assets/el-table-column-BdvRS9Y2.css +1 -0
- package/dist/client/assets/el-table-column-Cog6uCh-.js +1 -0
- package/dist/client/assets/index-ByNBhPAR.js +1 -0
- package/dist/client/assets/index-CTB6oe-9.js +2 -0
- package/dist/client/assets/{index-BsDWtoIl.css → index-DpH6ZSbs.css} +1 -1
- package/dist/client/assets/omit-CUnDT6sS.js +1 -0
- package/dist/client/assets/{raf-DY5mgbuB.js → raf-CmzeRPMd.js} +1 -1
- package/dist/client/assets/{vue-vendor-6ny5zj9i.js → vue-vendor-CbgVSHIh.js} +3 -3
- 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/debug-response-wrapper.js +2 -2
- 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 +32 -49
- 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/server.d.ts +57 -0
- package/dist/server/src/cli/commands/server.d.ts.map +1 -0
- package/dist/server/src/cli/commands/server.js +169 -0
- 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 +53 -23
- package/dist/server/src/services/gateway/global-transport.d.ts +19 -0
- package/dist/server/src/services/gateway/global-transport.d.ts.map +1 -0
- package/dist/server/src/services/gateway/global-transport.js +66 -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 +20 -80
- 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/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/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/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/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/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 +3 -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/ToolsView-E3Ps9c7i.css +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/omit-DPsOVNIJ.js +0 -1
- package/dist/client/assets/vnode-CHomNjgN.js +0 -1
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
import { CallToolRequestSchema, ListToolsRequestSchema, McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
5
5
|
import { logger, LOG_MODULES } from '../../../utils/index.js';
|
|
6
6
|
import { stringifyForLogging } from '../../../utils/json-utils.js';
|
|
7
|
-
import { getSessionCwd } from '../../../utils/request-context.js';
|
|
8
7
|
import { mcpConnectionManager } from '../../mcp-connection-manager.js';
|
|
9
8
|
import { SystemToolHandler } from '../../system-tool-handler.js';
|
|
10
9
|
import { ErrorHandler } from '../../../utils/error-handler.js';
|
|
@@ -12,6 +11,64 @@ import { ToolArgsParser } from '../../../utils/tool-args-parser.js';
|
|
|
12
11
|
import { SYSTEM_TOOL_NAMES, MCP_HUB_LITE_SERVER } from '../../../models/system-tools.constants.js';
|
|
13
12
|
import { formatToolArgs, formatToolResponse } from '../log-formatter.js';
|
|
14
13
|
import { generateGatewayToolsList } from '../tool-list-generator.js';
|
|
14
|
+
/**
|
|
15
|
+
* Type guard to check if a result is a valid CallToolResult.
|
|
16
|
+
*
|
|
17
|
+
* @param result - The result to check
|
|
18
|
+
* @returns True if result has the expected CallToolResult structure
|
|
19
|
+
*/
|
|
20
|
+
function isCallToolResult(result) {
|
|
21
|
+
return (!!result && typeof result === 'object' && 'content' in result && Array.isArray(result.content));
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Executes a system tool call via the SystemToolHandler.
|
|
25
|
+
*
|
|
26
|
+
* @param toolName - Name of the system tool to call
|
|
27
|
+
* @param toolArgs - Arguments to pass to the tool
|
|
28
|
+
* @returns CallToolResult with the tool execution result
|
|
29
|
+
*/
|
|
30
|
+
async function executeSystemToolCall(toolName, toolArgs) {
|
|
31
|
+
try {
|
|
32
|
+
const result = await SystemToolHandler.handleSystemToolCall(toolName, toolArgs);
|
|
33
|
+
if (isCallToolResult(result)) {
|
|
34
|
+
return result;
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
content: [
|
|
38
|
+
{
|
|
39
|
+
type: 'text',
|
|
40
|
+
text: stringifyForLogging(result)
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
ErrorHandler.handleSystemToolError(toolName, error);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Parses a tool name to check if it refers to a system tool.
|
|
51
|
+
* Handles both direct system tool names (e.g., "list_servers") and
|
|
52
|
+
* prefixed names (e.g., "mcp__mcp-hub-lite__list_servers").
|
|
53
|
+
*
|
|
54
|
+
* @param toolName - The tool name to parse
|
|
55
|
+
* @returns The system tool name if it's a system tool, null otherwise
|
|
56
|
+
*/
|
|
57
|
+
function getSystemToolName(toolName) {
|
|
58
|
+
const parsedTool = ToolArgsParser.parsePrefixedToolName(toolName);
|
|
59
|
+
if (parsedTool) {
|
|
60
|
+
logger.debug(`Parsed prefixed tool name: "${toolName}" → server="${parsedTool.serverName}", tool="${parsedTool.toolName}"`, LOG_MODULES.GATEWAY);
|
|
61
|
+
if (parsedTool.serverName === MCP_HUB_LITE_SERVER &&
|
|
62
|
+
SYSTEM_TOOL_NAMES.includes(parsedTool.toolName)) {
|
|
63
|
+
logger.info(`System tool called via prefixed name: ${parsedTool.toolName}`, LOG_MODULES.GATEWAY);
|
|
64
|
+
return parsedTool.toolName;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
if (SYSTEM_TOOL_NAMES.includes(toolName)) {
|
|
68
|
+
return toolName;
|
|
69
|
+
}
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
15
72
|
/**
|
|
16
73
|
* Register call tool handler on the MCP server.
|
|
17
74
|
*
|
|
@@ -30,82 +87,27 @@ export function registerCallToolHandler(server, toolMap) {
|
|
|
30
87
|
server.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
31
88
|
const toolName = request.params.name;
|
|
32
89
|
const toolArgs = request.params.arguments || {};
|
|
33
|
-
|
|
34
|
-
// This handles Claude Code style tool names with server prefix
|
|
35
|
-
const parsedTool = ToolArgsParser.parsePrefixedToolName(toolName);
|
|
36
|
-
if (parsedTool) {
|
|
37
|
-
logger.debug(`Parsed prefixed tool name: "${toolName}" → server="${parsedTool.serverName}", tool="${parsedTool.toolName}"`, LOG_MODULES.GATEWAY);
|
|
38
|
-
// Check if it's a system tool call
|
|
39
|
-
if (parsedTool.serverName === MCP_HUB_LITE_SERVER &&
|
|
40
|
-
SYSTEM_TOOL_NAMES.includes(parsedTool.toolName)) {
|
|
41
|
-
logger.info(`System tool called via prefixed name: ${parsedTool.toolName}`, LOG_MODULES.GATEWAY);
|
|
42
|
-
try {
|
|
43
|
-
const result = await SystemToolHandler.handleSystemToolCall(parsedTool.toolName, toolArgs);
|
|
44
|
-
if (result &&
|
|
45
|
-
typeof result === 'object' &&
|
|
46
|
-
'content' in result &&
|
|
47
|
-
Array.isArray(result.content)) {
|
|
48
|
-
return result;
|
|
49
|
-
}
|
|
50
|
-
return {
|
|
51
|
-
content: [
|
|
52
|
-
{
|
|
53
|
-
type: 'text',
|
|
54
|
-
text: stringifyForLogging(result)
|
|
55
|
-
}
|
|
56
|
-
]
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
catch (error) {
|
|
60
|
-
ErrorHandler.handleSystemToolError(parsedTool.toolName, error);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
90
|
+
const systemToolName = getSystemToolName(toolName);
|
|
64
91
|
// Log incoming tool request with full context
|
|
65
92
|
logger.info(`Tool call REQUEST received: toolName=${toolName}, args=${formatToolArgs(toolArgs)}`, LOG_MODULES.GATEWAY);
|
|
66
93
|
logger.debug(`Tool context: toolMap size=${toolMap.size}, available tools=${Array.from(toolMap.keys()).slice(0, 10).join(', ')}${toolMap.size > 10 ? '...' : ''}`, LOG_MODULES.GATEWAY);
|
|
67
94
|
// Handle system tools
|
|
68
|
-
if (
|
|
69
|
-
logger.debug(`System tool called: ${
|
|
70
|
-
|
|
71
|
-
const result = await SystemToolHandler.handleSystemToolCall(toolName, toolArgs);
|
|
72
|
-
if (result &&
|
|
73
|
-
typeof result === 'object' &&
|
|
74
|
-
'content' in result &&
|
|
75
|
-
Array.isArray(result.content)) {
|
|
76
|
-
return result;
|
|
77
|
-
}
|
|
78
|
-
return {
|
|
79
|
-
content: [
|
|
80
|
-
{
|
|
81
|
-
type: 'text',
|
|
82
|
-
text: stringifyForLogging(result)
|
|
83
|
-
}
|
|
84
|
-
]
|
|
85
|
-
};
|
|
86
|
-
}
|
|
87
|
-
catch (error) {
|
|
88
|
-
ErrorHandler.handleSystemToolError(toolName, error);
|
|
89
|
-
}
|
|
95
|
+
if (systemToolName) {
|
|
96
|
+
logger.debug(`System tool called: ${systemToolName}, args=${formatToolArgs(toolArgs)}`, LOG_MODULES.GATEWAY);
|
|
97
|
+
return await executeSystemToolCall(systemToolName, toolArgs);
|
|
90
98
|
}
|
|
91
99
|
const target = toolMap.get(toolName);
|
|
92
|
-
logger.debug(`Tool lookup SUCCESS: toolName=${toolName} ->
|
|
100
|
+
logger.debug(`Tool lookup SUCCESS: toolName=${toolName} -> serverName=${target?.serverName}, serverIndex=${target?.serverIndex}, realToolName=${target?.realToolName}`, LOG_MODULES.GATEWAY);
|
|
93
101
|
if (!target) {
|
|
94
102
|
logger.error(`Tool NOT FOUND: toolName=${toolName}, available tools=${Array.from(toolMap.keys()).join(', ')}`, LOG_MODULES.GATEWAY);
|
|
95
103
|
throw new McpError(-32801, `Tool ${toolName} not found`);
|
|
96
104
|
}
|
|
97
105
|
const startTime = Date.now();
|
|
98
106
|
try {
|
|
99
|
-
|
|
100
|
-
const
|
|
101
|
-
if (cwd && !toolArgs.cwd) {
|
|
102
|
-
toolArgs.cwd = cwd;
|
|
103
|
-
logger.debug(`Injected CWD into tool call ${toolName}: ${cwd}`, LOG_MODULES.dynamic(toolName));
|
|
104
|
-
}
|
|
105
|
-
logger.debug(`Tool call EXECUTING: serverId=${target.serverId}, realToolName=${target.realToolName}, args=${formatToolArgs(toolArgs)}`, LOG_MODULES.GATEWAY);
|
|
106
|
-
const result = await mcpConnectionManager.callTool(target.serverId, target.realToolName, toolArgs);
|
|
107
|
+
logger.debug(`Tool call EXECUTING: serverName=${target.serverName}, serverIndex=${target.serverIndex}, realToolName=${target.realToolName}, args=${formatToolArgs(toolArgs)}`, LOG_MODULES.GATEWAY);
|
|
108
|
+
const result = await mcpConnectionManager.callTool(target.serverName, target.serverIndex, target.realToolName, toolArgs);
|
|
107
109
|
const duration = Date.now() - startTime;
|
|
108
|
-
logger.info(`Tool call SUCCESS:
|
|
110
|
+
logger.info(`Tool call SUCCESS: serverName=${target.serverName}, serverIndex=${target.serverIndex}, realToolName=${target.realToolName}, duration=${duration}ms, response=${formatToolResponse(result)}`, LOG_MODULES.GATEWAY);
|
|
109
111
|
// Wrap the result in a valid CallToolResult structure
|
|
110
112
|
if (typeof result === 'object' && result !== null) {
|
|
111
113
|
return {
|
|
@@ -125,7 +127,7 @@ export function registerCallToolHandler(server, toolMap) {
|
|
|
125
127
|
}
|
|
126
128
|
}
|
|
127
129
|
catch (error) {
|
|
128
|
-
ErrorHandler.handleToolCallError(target.
|
|
130
|
+
ErrorHandler.handleToolCallError(`${target.serverName}-${target.serverIndex}`, target.realToolName, error);
|
|
129
131
|
}
|
|
130
132
|
});
|
|
131
133
|
}
|
|
@@ -2,8 +2,8 @@
|
|
|
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';
|
|
9
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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,CA+DlE"}
|
|
@@ -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,21 @@ 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
|
-
server.server.setNotificationHandler(InitializedNotificationSchema, async () => {
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
43
|
+
server.server.setNotificationHandler(InitializedNotificationSchema, async (notification) => {
|
|
44
|
+
logger.debug('Received initialized notification from client', LOG_MODULES.GATEWAY);
|
|
45
|
+
logger.debug(`Initialized notification details: ${JSON.stringify(notification)}`, LOG_MODULES.GATEWAY);
|
|
46
|
+
try {
|
|
47
|
+
// Process the notification
|
|
48
|
+
logger.debug('Successfully processed initialized notification', LOG_MODULES.GATEWAY);
|
|
109
49
|
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
logger.
|
|
113
|
-
|
|
50
|
+
catch (error) {
|
|
51
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
52
|
+
logger.error(`Error processing initialized notification: ${errorMessage}`, LOG_MODULES.GATEWAY);
|
|
53
|
+
logger.error(`Notification that caused error: ${JSON.stringify(notification)}`, LOG_MODULES.GATEWAY);
|
|
54
|
+
throw error; // Re-throw to see if this is the source of the problem
|
|
114
55
|
}
|
|
115
|
-
logger.debug(`Received initialized notification from client ${sessionInfo.clientName || 'unknown'} (${context.sessionId})`, LOG_MODULES.GATEWAY);
|
|
116
56
|
});
|
|
117
57
|
}
|
|
@@ -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":"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"}
|