@loop_ouroboros/mcp-hub-lite 1.0.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 +228 -0
- package/LICENSE +21 -0
- package/README.md +354 -0
- package/dist/client/assets/HomeView-f901HeKw.js +1 -0
- package/dist/client/assets/ResourceDetailView-BdOaL_-o.css +1 -0
- package/dist/client/assets/ResourceDetailView-Bz66ZjfY.js +1 -0
- package/dist/client/assets/ResourcesView-CjMklkyv.css +1 -0
- package/dist/client/assets/ResourcesView-lI_fItfA.js +1 -0
- package/dist/client/assets/ServerDashboard-7_8Og9JJ.css +1 -0
- package/dist/client/assets/ServerDashboard-Bgx8WVkx.js +2 -0
- package/dist/client/assets/ServerListView-Bws09jNR.css +1 -0
- package/dist/client/assets/ServerListView-CP6Ffkfx.js +30 -0
- package/dist/client/assets/ServerStatusTags.vue_vue_type_script_setup_true_lang-BHiTFM7-.js +1 -0
- package/dist/client/assets/SessionsView-D68qKR4D.js +1 -0
- package/dist/client/assets/SettingsView-BPYfO9BE.js +1 -0
- package/dist/client/assets/ToolCallDialog-Br8FNebN.js +1 -0
- package/dist/client/assets/ToolCallDialog-C7eh7jHE.css +1 -0
- package/dist/client/assets/ToolsView-B6hUiR43.js +1 -0
- package/dist/client/assets/ToolsView-BLnU8cV6.css +1 -0
- package/dist/client/assets/_baseClone-DCmK847M.js +1 -0
- package/dist/client/assets/_plugin-vue_export-helper-DlAUqK2U.js +1 -0
- package/dist/client/assets/el-form-item-BVMLpmVC.css +1 -0
- package/dist/client/assets/el-form-item-DM0q2hmO.js +12 -0
- package/dist/client/assets/el-input-BtI9NECe.js +1 -0
- package/dist/client/assets/el-input-CmuHb8HS.css +1 -0
- package/dist/client/assets/el-loading-CChNmKeI.js +1 -0
- package/dist/client/assets/el-loading-bpKhqqQq.css +1 -0
- package/dist/client/assets/el-overlay-B2ZKM6Up.css +1 -0
- package/dist/client/assets/el-overlay-lZZbPmsX.js +1 -0
- package/dist/client/assets/el-select-BXztu2b5.js +1 -0
- package/dist/client/assets/el-select-C0U_l4IZ.css +1 -0
- package/dist/client/assets/el-tab-pane-CnNoQHsR.css +1 -0
- package/dist/client/assets/el-tab-pane-Dy9ruaEX.js +1 -0
- package/dist/client/assets/el-table-column-98UyVgBH.js +1 -0
- package/dist/client/assets/el-table-column-T_mV9jNw.css +1 -0
- package/dist/client/assets/el-tag-B5lLT51E.js +1 -0
- package/dist/client/assets/el-tag-DjxZVOpb.css +1 -0
- package/dist/client/assets/event-BB_Ol6Sd.js +1 -0
- package/dist/client/assets/index-BgKcmWJr.js +1 -0
- package/dist/client/assets/index-BsDWtoIl.css +1 -0
- package/dist/client/assets/index-BzQXG7no.js +1 -0
- package/dist/client/assets/index-CSTs2jYk.js +2 -0
- package/dist/client/assets/omit-Bx5HJNV_.js +1 -0
- package/dist/client/assets/raf-B9VDMtMF.js +1 -0
- package/dist/client/assets/typescript-Bp3YSIOJ.js +1 -0
- package/dist/client/assets/vnode-B8aJx8u4.js +1 -0
- package/dist/client/assets/vue-vendor-6ny5zj9i.js +3 -0
- package/dist/client/index.html +15 -0
- package/dist/server/shared/index.d.ts +3 -0
- package/dist/server/shared/index.d.ts.map +1 -0
- package/dist/server/shared/index.js +2 -0
- package/dist/server/shared/models/index.d.ts +4 -0
- package/dist/server/shared/models/index.d.ts.map +1 -0
- package/dist/server/shared/models/index.js +3 -0
- package/dist/server/shared/models/resource.model.d.ts +8 -0
- package/dist/server/shared/models/resource.model.d.ts.map +1 -0
- package/dist/server/shared/models/resource.model.js +1 -0
- package/dist/server/shared/models/server.model.d.ts +57 -0
- package/dist/server/shared/models/server.model.d.ts.map +1 -0
- package/dist/server/shared/models/server.model.js +1 -0
- package/dist/server/shared/models/session.model.d.ts +73 -0
- package/dist/server/shared/models/session.model.d.ts.map +1 -0
- package/dist/server/shared/models/session.model.js +70 -0
- package/dist/server/shared/models/tool.model.d.ts +22 -0
- package/dist/server/shared/models/tool.model.d.ts.map +1 -0
- package/dist/server/shared/models/tool.model.js +1 -0
- package/dist/server/shared/types/client.types.d.ts +35 -0
- package/dist/server/shared/types/client.types.d.ts.map +1 -0
- package/dist/server/shared/types/client.types.js +5 -0
- package/dist/server/shared/types/common.types.d.ts +5 -0
- package/dist/server/shared/types/common.types.d.ts.map +1 -0
- package/dist/server/shared/types/common.types.js +2 -0
- package/dist/server/shared/types/index.d.ts +4 -0
- package/dist/server/shared/types/index.d.ts.map +1 -0
- package/dist/server/shared/types/index.js +3 -0
- package/dist/server/shared/types/session.types.d.ts +15 -0
- package/dist/server/shared/types/session.types.d.ts.map +1 -0
- package/dist/server/shared/types/session.types.js +5 -0
- package/dist/server/shared/types/websocket.types.d.ts +177 -0
- package/dist/server/shared/types/websocket.types.d.ts.map +1 -0
- package/dist/server/shared/types/websocket.types.js +25 -0
- package/dist/server/src/api/mcp/debug-response-wrapper.d.ts +13 -0
- package/dist/server/src/api/mcp/debug-response-wrapper.d.ts.map +1 -0
- package/dist/server/src/api/mcp/debug-response-wrapper.js +271 -0
- package/dist/server/src/api/mcp/gateway.d.ts +14 -0
- package/dist/server/src/api/mcp/gateway.d.ts.map +1 -0
- package/dist/server/src/api/mcp/gateway.js +116 -0
- package/dist/server/src/api/mcp/session-context-extractor.d.ts +47 -0
- package/dist/server/src/api/mcp/session-context-extractor.d.ts.map +1 -0
- package/dist/server/src/api/mcp/session-context-extractor.js +127 -0
- package/dist/server/src/api/mcp/sse-stream-manager.d.ts +13 -0
- package/dist/server/src/api/mcp/sse-stream-manager.d.ts.map +1 -0
- package/dist/server/src/api/mcp/sse-stream-manager.js +40 -0
- package/dist/server/src/api/web/clients.d.ts +30 -0
- package/dist/server/src/api/web/clients.d.ts.map +1 -0
- package/dist/server/src/api/web/clients.js +41 -0
- package/dist/server/src/api/web/config.d.ts +21 -0
- package/dist/server/src/api/web/config.d.ts.map +1 -0
- package/dist/server/src/api/web/config.js +119 -0
- package/dist/server/src/api/web/health.d.ts +21 -0
- package/dist/server/src/api/web/health.d.ts.map +1 -0
- package/dist/server/src/api/web/health.js +24 -0
- package/dist/server/src/api/web/hub-tools.d.ts +30 -0
- package/dist/server/src/api/web/hub-tools.d.ts.map +1 -0
- package/dist/server/src/api/web/hub-tools.js +202 -0
- package/dist/server/src/api/web/logs.d.ts +30 -0
- package/dist/server/src/api/web/logs.d.ts.map +1 -0
- package/dist/server/src/api/web/logs.js +141 -0
- package/dist/server/src/api/web/mcp-status.d.ts +29 -0
- package/dist/server/src/api/web/mcp-status.d.ts.map +1 -0
- package/dist/server/src/api/web/mcp-status.js +126 -0
- package/dist/server/src/api/web/resources.d.ts +28 -0
- package/dist/server/src/api/web/resources.d.ts.map +1 -0
- package/dist/server/src/api/web/resources.js +93 -0
- package/dist/server/src/api/web/search.d.ts +26 -0
- package/dist/server/src/api/web/search.d.ts.map +1 -0
- package/dist/server/src/api/web/search.js +62 -0
- package/dist/server/src/api/web/servers.d.ts +33 -0
- package/dist/server/src/api/web/servers.d.ts.map +1 -0
- package/dist/server/src/api/web/servers.js +235 -0
- package/dist/server/src/api/web/sessions.d.ts +29 -0
- package/dist/server/src/api/web/sessions.d.ts.map +1 -0
- package/dist/server/src/api/web/sessions.js +104 -0
- package/dist/server/src/api/ws/events.d.ts +29 -0
- package/dist/server/src/api/ws/events.d.ts.map +1 -0
- package/dist/server/src/api/ws/events.js +44 -0
- package/dist/server/src/api/ws/ws-handler.d.ts +83 -0
- package/dist/server/src/api/ws/ws-handler.d.ts.map +1 -0
- package/dist/server/src/api/ws/ws-handler.js +217 -0
- package/dist/server/src/app.d.ts +24 -0
- package/dist/server/src/app.d.ts.map +1 -0
- package/dist/server/src/app.js +108 -0
- package/dist/server/src/cli/commands/list.d.ts +71 -0
- package/dist/server/src/cli/commands/list.d.ts.map +1 -0
- package/dist/server/src/cli/commands/list.js +97 -0
- package/dist/server/src/cli/commands/restart.d.ts +42 -0
- package/dist/server/src/cli/commands/restart.d.ts.map +1 -0
- package/dist/server/src/cli/commands/restart.js +61 -0
- package/dist/server/src/cli/commands/start.d.ts +43 -0
- package/dist/server/src/cli/commands/start.d.ts.map +1 -0
- package/dist/server/src/cli/commands/start.js +160 -0
- package/dist/server/src/cli/commands/status.d.ts +39 -0
- package/dist/server/src/cli/commands/status.d.ts.map +1 -0
- package/dist/server/src/cli/commands/status.js +164 -0
- package/dist/server/src/cli/commands/stop.d.ts +34 -0
- package/dist/server/src/cli/commands/stop.d.ts.map +1 -0
- package/dist/server/src/cli/commands/stop.js +47 -0
- package/dist/server/src/cli/commands/ui.d.ts +44 -0
- package/dist/server/src/cli/commands/ui.d.ts.map +1 -0
- package/dist/server/src/cli/commands/ui.js +95 -0
- package/dist/server/src/cli/index.d.ts +62 -0
- package/dist/server/src/cli/index.d.ts.map +1 -0
- package/dist/server/src/cli/index.js +88 -0
- package/dist/server/src/cli/parse-args.d.ts +108 -0
- package/dist/server/src/cli/parse-args.d.ts.map +1 -0
- package/dist/server/src/cli/parse-args.js +131 -0
- package/dist/server/src/cli/server.d.ts +171 -0
- package/dist/server/src/cli/server.d.ts.map +1 -0
- package/dist/server/src/cli/server.js +246 -0
- package/dist/server/src/config/config-change-logger.d.ts +16 -0
- package/dist/server/src/config/config-change-logger.d.ts.map +1 -0
- package/dist/server/src/config/config-change-logger.js +43 -0
- package/dist/server/src/config/config-loader.d.ts +22 -0
- package/dist/server/src/config/config-loader.d.ts.map +1 -0
- package/dist/server/src/config/config-loader.js +66 -0
- package/dist/server/src/config/config-manager.d.ts +158 -0
- package/dist/server/src/config/config-manager.d.ts.map +1 -0
- package/dist/server/src/config/config-manager.js +246 -0
- package/dist/server/src/config/config-saver.d.ts +16 -0
- package/dist/server/src/config/config-saver.d.ts.map +1 -0
- package/dist/server/src/config/config-saver.js +28 -0
- package/dist/server/src/config/config.schema.d.ts +108 -0
- package/dist/server/src/config/config.schema.d.ts.map +1 -0
- package/dist/server/src/config/config.schema.js +103 -0
- package/dist/server/src/config/server-config-manager.d.ts +74 -0
- package/dist/server/src/config/server-config-manager.d.ts.map +1 -0
- package/dist/server/src/config/server-config-manager.js +157 -0
- package/dist/server/src/config/type-converter.d.ts +13 -0
- package/dist/server/src/config/type-converter.d.ts.map +1 -0
- package/dist/server/src/config/type-converter.js +37 -0
- package/dist/server/src/index.d.ts +3 -0
- package/dist/server/src/index.d.ts.map +1 -0
- package/dist/server/src/index.js +352 -0
- package/dist/server/src/models/event.model.d.ts +106 -0
- package/dist/server/src/models/event.model.d.ts.map +1 -0
- package/dist/server/src/models/event.model.js +5 -0
- package/dist/server/src/models/server.model.d.ts +19 -0
- package/dist/server/src/models/server.model.d.ts.map +1 -0
- package/dist/server/src/models/server.model.js +1 -0
- package/dist/server/src/models/system-tools.constants.d.ts +73 -0
- package/dist/server/src/models/system-tools.constants.d.ts.map +1 -0
- package/dist/server/src/models/system-tools.constants.js +31 -0
- package/dist/server/src/models/types.d.ts +84 -0
- package/dist/server/src/models/types.d.ts.map +1 -0
- package/dist/server/src/models/types.js +67 -0
- package/dist/server/src/pid/file.d.ts +26 -0
- package/dist/server/src/pid/file.d.ts.map +1 -0
- package/dist/server/src/pid/file.js +68 -0
- package/dist/server/src/pid/manager.d.ts +98 -0
- package/dist/server/src/pid/manager.d.ts.map +1 -0
- package/dist/server/src/pid/manager.js +158 -0
- package/dist/server/src/pid/types.d.ts +13 -0
- package/dist/server/src/pid/types.d.ts.map +1 -0
- package/dist/server/src/pid/types.js +4 -0
- package/dist/server/src/server/dev-server.d.ts +2 -0
- package/dist/server/src/server/dev-server.d.ts.map +1 -0
- package/dist/server/src/server/dev-server.js +171 -0
- package/dist/server/src/server/runner.d.ts +57 -0
- package/dist/server/src/server/runner.d.ts.map +1 -0
- package/dist/server/src/server/runner.js +163 -0
- package/dist/server/src/services/client-tracker.service.d.ts +132 -0
- package/dist/server/src/services/client-tracker.service.d.ts.map +1 -0
- package/dist/server/src/services/client-tracker.service.js +203 -0
- package/dist/server/src/services/connection/connection-manager.d.ts +478 -0
- package/dist/server/src/services/connection/connection-manager.d.ts.map +1 -0
- package/dist/server/src/services/connection/connection-manager.js +929 -0
- package/dist/server/src/services/connection/index.d.ts +6 -0
- package/dist/server/src/services/connection/index.d.ts.map +1 -0
- package/dist/server/src/services/connection/index.js +4 -0
- package/dist/server/src/services/connection/tool-cache.d.ts +122 -0
- package/dist/server/src/services/connection/tool-cache.d.ts.map +1 -0
- package/dist/server/src/services/connection/tool-cache.js +202 -0
- package/dist/server/src/services/connection/types.d.ts +30 -0
- package/dist/server/src/services/connection/types.d.ts.map +1 -0
- package/dist/server/src/services/connection/types.js +1 -0
- package/dist/server/src/services/event-bus.service.d.ts +169 -0
- package/dist/server/src/services/event-bus.service.d.ts.map +1 -0
- package/dist/server/src/services/event-bus.service.js +200 -0
- package/dist/server/src/services/gateway/gateway.service.d.ts +61 -0
- package/dist/server/src/services/gateway/gateway.service.d.ts.map +1 -0
- package/dist/server/src/services/gateway/gateway.service.js +107 -0
- package/dist/server/src/services/gateway/index.d.ts +8 -0
- package/dist/server/src/services/gateway/index.d.ts.map +1 -0
- package/dist/server/src/services/gateway/index.js +6 -0
- package/dist/server/src/services/gateway/log-formatter.d.ts +26 -0
- package/dist/server/src/services/gateway/log-formatter.d.ts.map +1 -0
- package/dist/server/src/services/gateway/log-formatter.js +66 -0
- package/dist/server/src/services/gateway/request-handlers/call-tool-handler.d.ts +13 -0
- package/dist/server/src/services/gateway/request-handlers/call-tool-handler.d.ts.map +1 -0
- package/dist/server/src/services/gateway/request-handlers/call-tool-handler.js +131 -0
- package/dist/server/src/services/gateway/request-handlers/index.d.ts +9 -0
- package/dist/server/src/services/gateway/request-handlers/index.d.ts.map +1 -0
- package/dist/server/src/services/gateway/request-handlers/index.js +8 -0
- package/dist/server/src/services/gateway/request-handlers/initialize-handler.d.ts +11 -0
- package/dist/server/src/services/gateway/request-handlers/initialize-handler.d.ts.map +1 -0
- package/dist/server/src/services/gateway/request-handlers/initialize-handler.js +85 -0
- package/dist/server/src/services/gateway/request-handlers/resources-handler.d.ts +11 -0
- package/dist/server/src/services/gateway/request-handlers/resources-handler.d.ts.map +1 -0
- package/dist/server/src/services/gateway/request-handlers/resources-handler.js +56 -0
- package/dist/server/src/services/gateway/request-handlers/system-tools-handler.d.ts +11 -0
- package/dist/server/src/services/gateway/request-handlers/system-tools-handler.d.ts.map +1 -0
- package/dist/server/src/services/gateway/request-handlers/system-tools-handler.js +228 -0
- package/dist/server/src/services/gateway/request-handlers/tools-handler.d.ts +11 -0
- package/dist/server/src/services/gateway/request-handlers/tools-handler.d.ts.map +1 -0
- package/dist/server/src/services/gateway/request-handlers/tools-handler.js +79 -0
- package/dist/server/src/services/gateway/tool-list-generator.d.ts +23 -0
- package/dist/server/src/services/gateway/tool-list-generator.d.ts.map +1 -0
- package/dist/server/src/services/gateway/tool-list-generator.js +115 -0
- package/dist/server/src/services/gateway/types.d.ts +27 -0
- package/dist/server/src/services/gateway/types.d.ts.map +1 -0
- package/dist/server/src/services/gateway/types.js +4 -0
- package/dist/server/src/services/gateway.service.d.ts +7 -0
- package/dist/server/src/services/gateway.service.d.ts.map +1 -0
- package/dist/server/src/services/gateway.service.js +6 -0
- package/dist/server/src/services/hub-manager.service.d.ts +299 -0
- package/dist/server/src/services/hub-manager.service.d.ts.map +1 -0
- package/dist/server/src/services/hub-manager.service.js +413 -0
- package/dist/server/src/services/hub-tools/index.d.ts +10 -0
- package/dist/server/src/services/hub-tools/index.d.ts.map +1 -0
- package/dist/server/src/services/hub-tools/index.js +6 -0
- package/dist/server/src/services/hub-tools/resource-generator.d.ts +63 -0
- package/dist/server/src/services/hub-tools/resource-generator.d.ts.map +1 -0
- package/dist/server/src/services/hub-tools/resource-generator.js +141 -0
- package/dist/server/src/services/hub-tools/server-selector.d.ts +63 -0
- package/dist/server/src/services/hub-tools/server-selector.d.ts.map +1 -0
- package/dist/server/src/services/hub-tools/server-selector.js +108 -0
- package/dist/server/src/services/hub-tools/system-tool-definitions.d.ts +47 -0
- package/dist/server/src/services/hub-tools/system-tool-definitions.d.ts.map +1 -0
- package/dist/server/src/services/hub-tools/system-tool-definitions.js +225 -0
- package/dist/server/src/services/hub-tools/tool-search.d.ts +85 -0
- package/dist/server/src/services/hub-tools/tool-search.d.ts.map +1 -0
- package/dist/server/src/services/hub-tools/tool-search.js +115 -0
- package/dist/server/src/services/hub-tools/types.d.ts +42 -0
- package/dist/server/src/services/hub-tools/types.d.ts.map +1 -0
- package/dist/server/src/services/hub-tools/types.js +1 -0
- package/dist/server/src/services/hub-tools.service.d.ts +235 -0
- package/dist/server/src/services/hub-tools.service.d.ts.map +1 -0
- package/dist/server/src/services/hub-tools.service.js +457 -0
- package/dist/server/src/services/log-storage.service.d.ts +177 -0
- package/dist/server/src/services/log-storage.service.d.ts.map +1 -0
- package/dist/server/src/services/log-storage.service.js +243 -0
- package/dist/server/src/services/mcp-connection-manager.d.ts +7 -0
- package/dist/server/src/services/mcp-connection-manager.d.ts.map +1 -0
- package/dist/server/src/services/mcp-connection-manager.js +6 -0
- package/dist/server/src/services/mcp-session-manager.d.ts +6 -0
- package/dist/server/src/services/mcp-session-manager.d.ts.map +1 -0
- package/dist/server/src/services/mcp-session-manager.js +4 -0
- package/dist/server/src/services/search/index.d.ts +5 -0
- package/dist/server/src/services/search/index.d.ts.map +1 -0
- package/dist/server/src/services/search/index.js +5 -0
- package/dist/server/src/services/search/search-cache.d.ts +132 -0
- package/dist/server/src/services/search/search-cache.d.ts.map +1 -0
- package/dist/server/src/services/search/search-cache.js +151 -0
- package/dist/server/src/services/search/search-core.service.d.ts +108 -0
- package/dist/server/src/services/search/search-core.service.d.ts.map +1 -0
- package/dist/server/src/services/search/search-core.service.js +187 -0
- package/dist/server/src/services/search/search-scorer.d.ts +54 -0
- package/dist/server/src/services/search/search-scorer.d.ts.map +1 -0
- package/dist/server/src/services/search/search-scorer.js +83 -0
- package/dist/server/src/services/search/types.d.ts +20 -0
- package/dist/server/src/services/search/types.d.ts.map +1 -0
- package/dist/server/src/services/search/types.js +1 -0
- package/dist/server/src/services/session/index.d.ts +6 -0
- package/dist/server/src/services/session/index.d.ts.map +1 -0
- package/dist/server/src/services/session/index.js +4 -0
- package/dist/server/src/services/session/session-manager.d.ts +352 -0
- package/dist/server/src/services/session/session-manager.d.ts.map +1 -0
- package/dist/server/src/services/session/session-manager.js +835 -0
- package/dist/server/src/services/session/types.d.ts +32 -0
- package/dist/server/src/services/session/types.d.ts.map +1 -0
- package/dist/server/src/services/session/types.js +1 -0
- package/dist/server/src/services/simple-search.service.d.ts +67 -0
- package/dist/server/src/services/simple-search.service.d.ts.map +1 -0
- package/dist/server/src/services/simple-search.service.js +82 -0
- package/dist/server/src/services/system-tool-handler.d.ts +10 -0
- package/dist/server/src/services/system-tool-handler.d.ts.map +1 -0
- package/dist/server/src/services/system-tool-handler.js +77 -0
- package/dist/server/src/utils/error-handler.d.ts +18 -0
- package/dist/server/src/utils/error-handler.d.ts.map +1 -0
- package/dist/server/src/utils/error-handler.js +59 -0
- package/dist/server/src/utils/format-utils.d.ts +23 -0
- package/dist/server/src/utils/format-utils.d.ts.map +1 -0
- package/dist/server/src/utils/format-utils.js +58 -0
- package/dist/server/src/utils/index.d.ts +2 -0
- package/dist/server/src/utils/index.d.ts.map +1 -0
- package/dist/server/src/utils/index.js +1 -0
- package/dist/server/src/utils/json-utils.d.ts +82 -0
- package/dist/server/src/utils/json-utils.d.ts.map +1 -0
- package/dist/server/src/utils/json-utils.js +204 -0
- package/dist/server/src/utils/log-rotator.d.ts +223 -0
- package/dist/server/src/utils/log-rotator.d.ts.map +1 -0
- package/dist/server/src/utils/log-rotator.js +306 -0
- package/dist/server/src/utils/logger/dev-logger.d.ts +39 -0
- package/dist/server/src/utils/logger/dev-logger.d.ts.map +1 -0
- package/dist/server/src/utils/logger/dev-logger.js +63 -0
- package/dist/server/src/utils/logger/index.d.ts +36 -0
- package/dist/server/src/utils/logger/index.d.ts.map +1 -0
- package/dist/server/src/utils/logger/index.js +46 -0
- package/dist/server/src/utils/logger/log-colors.d.ts +27 -0
- package/dist/server/src/utils/logger/log-colors.d.ts.map +1 -0
- package/dist/server/src/utils/logger/log-colors.js +41 -0
- package/dist/server/src/utils/logger/log-context.d.ts +13 -0
- package/dist/server/src/utils/logger/log-context.d.ts.map +1 -0
- package/dist/server/src/utils/logger/log-context.js +5 -0
- package/dist/server/src/utils/logger/log-formatter.d.ts +47 -0
- package/dist/server/src/utils/logger/log-formatter.d.ts.map +1 -0
- package/dist/server/src/utils/logger/log-formatter.js +150 -0
- package/dist/server/src/utils/logger/log-modules.d.ts +141 -0
- package/dist/server/src/utils/logger/log-modules.d.ts.map +1 -0
- package/dist/server/src/utils/logger/log-modules.js +81 -0
- package/dist/server/src/utils/logger/log-output.d.ts +68 -0
- package/dist/server/src/utils/logger/log-output.d.ts.map +1 -0
- package/dist/server/src/utils/logger/log-output.js +320 -0
- package/dist/server/src/utils/logger/logger.d.ts +190 -0
- package/dist/server/src/utils/logger/logger.d.ts.map +1 -0
- package/dist/server/src/utils/logger/logger.js +350 -0
- package/dist/server/src/utils/logger.d.ts +12 -0
- package/dist/server/src/utils/logger.d.ts.map +1 -0
- package/dist/server/src/utils/logger.js +12 -0
- package/dist/server/src/utils/mcp-error-handler.d.ts +162 -0
- package/dist/server/src/utils/mcp-error-handler.d.ts.map +1 -0
- package/dist/server/src/utils/mcp-error-handler.js +270 -0
- package/dist/server/src/utils/port-checker.d.ts +16 -0
- package/dist/server/src/utils/port-checker.d.ts.map +1 -0
- package/dist/server/src/utils/port-checker.js +242 -0
- package/dist/server/src/utils/request-context.d.ts +71 -0
- package/dist/server/src/utils/request-context.d.ts.map +1 -0
- package/dist/server/src/utils/request-context.js +73 -0
- package/dist/server/src/utils/tool-args-parser.d.ts +17 -0
- package/dist/server/src/utils/tool-args-parser.d.ts.map +1 -0
- package/dist/server/src/utils/tool-args-parser.js +34 -0
- package/dist/server/src/utils/transports/sse-transport.d.ts +104 -0
- package/dist/server/src/utils/transports/sse-transport.d.ts.map +1 -0
- package/dist/server/src/utils/transports/sse-transport.js +189 -0
- package/dist/server/src/utils/transports/stdio-transport.d.ts +122 -0
- package/dist/server/src/utils/transports/stdio-transport.d.ts.map +1 -0
- package/dist/server/src/utils/transports/stdio-transport.js +324 -0
- package/dist/server/src/utils/transports/streamable-http-transport.d.ts +146 -0
- package/dist/server/src/utils/transports/streamable-http-transport.d.ts.map +1 -0
- package/dist/server/src/utils/transports/streamable-http-transport.js +212 -0
- package/dist/server/src/utils/transports/transport-factory.d.ts +26 -0
- package/dist/server/src/utils/transports/transport-factory.d.ts.map +1 -0
- package/dist/server/src/utils/transports/transport-factory.js +104 -0
- package/dist/server/src/utils/transports/transport.interface.d.ts +35 -0
- package/dist/server/src/utils/transports/transport.interface.d.ts.map +1 -0
- package/dist/server/src/utils/transports/transport.interface.js +1 -0
- package/dist/server/tests/contract/mcp-protocol/initialize.test.d.ts +2 -0
- package/dist/server/tests/contract/mcp-protocol/initialize.test.d.ts.map +1 -0
- package/dist/server/tests/contract/mcp-protocol/initialize.test.js +103 -0
- package/dist/server/tests/contract/mcp-protocol/tools-call.test.d.ts +2 -0
- package/dist/server/tests/contract/mcp-protocol/tools-call.test.d.ts.map +1 -0
- package/dist/server/tests/contract/mcp-protocol/tools-call.test.js +181 -0
- package/dist/server/tests/contract/mcp-protocol/tools-list.test.d.ts +2 -0
- package/dist/server/tests/contract/mcp-protocol/tools-list.test.d.ts.map +1 -0
- package/dist/server/tests/contract/mcp-protocol/tools-list.test.js +155 -0
- package/dist/server/tests/evaluation/evaluation.test.d.ts +2 -0
- package/dist/server/tests/evaluation/evaluation.test.d.ts.map +1 -0
- package/dist/server/tests/evaluation/evaluation.test.js +102 -0
- package/dist/server/tests/helpers/sdk-test-helpers.d.ts +32 -0
- package/dist/server/tests/helpers/sdk-test-helpers.d.ts.map +1 -0
- package/dist/server/tests/helpers/sdk-test-helpers.js +82 -0
- package/dist/server/tests/integration/api/gateway.test.d.ts +2 -0
- package/dist/server/tests/integration/api/gateway.test.d.ts.map +1 -0
- package/dist/server/tests/integration/api/gateway.test.js +366 -0
- package/dist/server/tests/integration/gateway/fault-tolerance.test.d.ts +2 -0
- package/dist/server/tests/integration/gateway/fault-tolerance.test.d.ts.map +1 -0
- package/dist/server/tests/integration/gateway/fault-tolerance.test.js +109 -0
- package/dist/server/tests/integration/gateway/mcp-connection.test.d.ts +2 -0
- package/dist/server/tests/integration/gateway/mcp-connection.test.d.ts.map +1 -0
- package/dist/server/tests/integration/gateway/mcp-connection.test.js +149 -0
- package/dist/server/tests/server.test.d.ts +2 -0
- package/dist/server/tests/server.test.d.ts.map +1 -0
- package/dist/server/tests/server.test.js +95 -0
- package/dist/server/tests/setup.d.ts +7 -0
- package/dist/server/tests/setup.d.ts.map +1 -0
- package/dist/server/tests/setup.js +53 -0
- package/dist/server/tests/types/logger-test-helpers.d.ts +17 -0
- package/dist/server/tests/types/logger-test-helpers.d.ts.map +1 -0
- package/dist/server/tests/types/logger-test-helpers.js +4 -0
- package/dist/server/tests/types/test-helpers.d.ts +27 -0
- package/dist/server/tests/types/test-helpers.d.ts.map +1 -0
- package/dist/server/tests/types/test-helpers.js +4 -0
- package/dist/server/tests/unit/cli/basic-cli.test.d.ts +2 -0
- package/dist/server/tests/unit/cli/basic-cli.test.d.ts.map +1 -0
- package/dist/server/tests/unit/cli/basic-cli.test.js +33 -0
- package/dist/server/tests/unit/cli/cli.test.d.ts +2 -0
- package/dist/server/tests/unit/cli/cli.test.d.ts.map +1 -0
- package/dist/server/tests/unit/cli/cli.test.js +17 -0
- package/dist/server/tests/unit/cli/commands.test.d.ts +2 -0
- package/dist/server/tests/unit/cli/commands.test.d.ts.map +1 -0
- package/dist/server/tests/unit/cli/commands.test.js +75 -0
- package/dist/server/tests/unit/cli/server.test.d.ts +2 -0
- package/dist/server/tests/unit/cli/server.test.d.ts.map +1 -0
- package/dist/server/tests/unit/cli/server.test.js +68 -0
- package/dist/server/tests/unit/server/runner.test.d.ts +2 -0
- package/dist/server/tests/unit/server/runner.test.d.ts.map +1 -0
- package/dist/server/tests/unit/server/runner.test.js +488 -0
- package/dist/server/tests/unit/server/setup.d.ts +2 -0
- package/dist/server/tests/unit/server/setup.d.ts.map +1 -0
- package/dist/server/tests/unit/server/setup.js +21 -0
- package/dist/server/tests/unit/services/gateway-logging.test.d.ts +2 -0
- package/dist/server/tests/unit/services/gateway-logging.test.d.ts.map +1 -0
- package/dist/server/tests/unit/services/gateway-logging.test.js +47 -0
- package/dist/server/tests/unit/services/hub-manager-service.test.d.ts +2 -0
- package/dist/server/tests/unit/services/hub-manager-service.test.d.ts.map +1 -0
- package/dist/server/tests/unit/services/hub-manager-service.test.js +140 -0
- package/dist/server/tests/unit/services/hub-manager.test.d.ts +2 -0
- package/dist/server/tests/unit/services/hub-manager.test.d.ts.map +1 -0
- package/dist/server/tests/unit/services/hub-manager.test.js +98 -0
- package/dist/server/tests/unit/services/hub-tools.service.test.d.ts +2 -0
- package/dist/server/tests/unit/services/hub-tools.service.test.d.ts.map +1 -0
- package/dist/server/tests/unit/services/hub-tools.service.test.js +674 -0
- package/dist/server/tests/unit/services/search/search-cache.test.d.ts +2 -0
- package/dist/server/tests/unit/services/search/search-cache.test.d.ts.map +1 -0
- package/dist/server/tests/unit/services/search/search-cache.test.js +58 -0
- package/dist/server/tests/unit/services/search/search-core.service.test.d.ts +2 -0
- package/dist/server/tests/unit/services/search/search-core.service.test.d.ts.map +1 -0
- package/dist/server/tests/unit/services/search/search-core.service.test.js +84 -0
- package/dist/server/tests/unit/services/search/search-scorer.test.d.ts +2 -0
- package/dist/server/tests/unit/services/search/search-scorer.test.d.ts.map +1 -0
- package/dist/server/tests/unit/services/search/search-scorer.test.js +97 -0
- package/dist/server/tests/unit/services/session-manager.test.d.ts +2 -0
- package/dist/server/tests/unit/services/session-manager.test.d.ts.map +1 -0
- package/dist/server/tests/unit/services/session-manager.test.js +481 -0
- package/dist/server/tests/unit/utils/config.test.d.ts +2 -0
- package/dist/server/tests/unit/utils/config.test.d.ts.map +1 -0
- package/dist/server/tests/unit/utils/config.test.js +634 -0
- package/dist/server/tests/unit/utils/json-utils.test.d.ts +2 -0
- package/dist/server/tests/unit/utils/json-utils.test.d.ts.map +1 -0
- package/dist/server/tests/unit/utils/json-utils.test.js +296 -0
- package/dist/server/tests/unit/utils/log-rotator.test.d.ts +2 -0
- package/dist/server/tests/unit/utils/log-rotator.test.d.ts.map +1 -0
- package/dist/server/tests/unit/utils/log-rotator.test.js +296 -0
- package/dist/server/tests/unit/utils/logger.test.d.ts +2 -0
- package/dist/server/tests/unit/utils/logger.test.d.ts.map +1 -0
- package/dist/server/tests/unit/utils/logger.test.js +462 -0
- package/dist/server/tests/unit/utils/mcp-error-handler.test.d.ts +2 -0
- package/dist/server/tests/unit/utils/mcp-error-handler.test.d.ts.map +1 -0
- package/dist/server/tests/unit/utils/mcp-error-handler.test.js +163 -0
- package/dist/server/tests/unit/utils/request-context.test.d.ts +2 -0
- package/dist/server/tests/unit/utils/request-context.test.d.ts.map +1 -0
- package/dist/server/tests/unit/utils/request-context.test.js +82 -0
- package/dist/server/vite.config.d.ts +3 -0
- package/dist/server/vite.config.d.ts.map +1 -0
- package/dist/server/vite.config.js +160 -0
- package/dist/server/vitest.config.d.ts +3 -0
- package/dist/server/vitest.config.d.ts.map +1 -0
- package/dist/server/vitest.config.js +53 -0
- package/package.json +113 -0
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Initialize and ping request handlers for Gateway service.
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
/**
|
|
6
|
+
* Register initialize and ping handlers on the MCP server.
|
|
7
|
+
*
|
|
8
|
+
* @param server - MCP server instance to register handlers on
|
|
9
|
+
*/
|
|
10
|
+
export declare function registerInitializeHandlers(server: McpServer): void;
|
|
11
|
+
//# sourceMappingURL=initialize-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"initialize-handler.d.ts","sourceRoot":"","sources":["../../../../../../src/services/gateway/request-handlers/initialize-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAMzE;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CA+ElE"}
|
|
@@ -0,0 +1,85 @@
|
|
|
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 { getClientContext } from '../../../utils/request-context.js';
|
|
7
|
+
import { clientTrackerService } from '../../client-tracker.service.js';
|
|
8
|
+
import { MCP_HUB_LITE_SERVER } from '../../../models/system-tools.constants.js';
|
|
9
|
+
/**
|
|
10
|
+
* Register initialize and ping handlers on the MCP server.
|
|
11
|
+
*
|
|
12
|
+
* @param server - MCP server instance to register handlers on
|
|
13
|
+
*/
|
|
14
|
+
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
|
+
experimental: z.record(z.string(), z.any()).optional()
|
|
36
|
+
})
|
|
37
|
+
.optional()
|
|
38
|
+
})
|
|
39
|
+
.optional(),
|
|
40
|
+
id: z.union([z.string(), z.number()]),
|
|
41
|
+
jsonrpc: z.literal('2.0')
|
|
42
|
+
});
|
|
43
|
+
server.server.setRequestHandler(InitializeRequestSchema, async (request) => {
|
|
44
|
+
// Capture client info
|
|
45
|
+
const context = getClientContext();
|
|
46
|
+
if (context && request.params?.clientInfo) {
|
|
47
|
+
const { name, version } = request.params.clientInfo;
|
|
48
|
+
logger.info(`Initialized client: ${name} v${version} (ID: ${context.sessionId})`, LOG_MODULES.GATEWAY);
|
|
49
|
+
// Update client info in tracker
|
|
50
|
+
clientTrackerService.updateClient({
|
|
51
|
+
...context,
|
|
52
|
+
clientName: name
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
return {
|
|
56
|
+
protocolVersion: '2024-11-05',
|
|
57
|
+
serverInfo: {
|
|
58
|
+
name: MCP_HUB_LITE_SERVER,
|
|
59
|
+
version: '1.0.0',
|
|
60
|
+
mcpVersion: '2024-11-05'
|
|
61
|
+
},
|
|
62
|
+
capabilities: {
|
|
63
|
+
tools: {
|
|
64
|
+
list: true,
|
|
65
|
+
execute: true
|
|
66
|
+
},
|
|
67
|
+
resources: {
|
|
68
|
+
list: true,
|
|
69
|
+
read: true
|
|
70
|
+
},
|
|
71
|
+
experimental: {}
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
});
|
|
75
|
+
// MCP standard ping handler
|
|
76
|
+
const PingRequestSchema = z.object({
|
|
77
|
+
method: z.literal('ping'),
|
|
78
|
+
params: z.object({}).optional(),
|
|
79
|
+
id: z.union([z.string(), z.number()]),
|
|
80
|
+
jsonrpc: z.literal('2.0')
|
|
81
|
+
});
|
|
82
|
+
server.server.setRequestHandler(PingRequestSchema, async () => {
|
|
83
|
+
return { pong: true }; // Response format compliant with MCP specification
|
|
84
|
+
});
|
|
85
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resources-related request handlers for Gateway service.
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
/**
|
|
6
|
+
* Register resources-related handlers on the MCP server.
|
|
7
|
+
*
|
|
8
|
+
* @param server - MCP server instance to register handlers on
|
|
9
|
+
*/
|
|
10
|
+
export declare function registerResourcesHandlers(server: McpServer): void;
|
|
11
|
+
//# sourceMappingURL=resources-handler.d.ts.map
|
|
@@ -0,0 +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;AAKzE;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwCjE"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resources-related request handlers for Gateway service.
|
|
3
|
+
*/
|
|
4
|
+
import { ListResourcesRequestSchema, ReadResourceRequestSchema, McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
import { logger } from '../../../utils/index.js';
|
|
6
|
+
import { stringifyForLogging } from '../../../utils/json-utils.js';
|
|
7
|
+
import { hubToolsService } from '../../hub-tools.service.js';
|
|
8
|
+
/**
|
|
9
|
+
* Register resources-related handlers on the MCP server.
|
|
10
|
+
*
|
|
11
|
+
* @param server - MCP server instance to register handlers on
|
|
12
|
+
*/
|
|
13
|
+
export function registerResourcesHandlers(server) {
|
|
14
|
+
server.server.setRequestHandler(ListResourcesRequestSchema, async () => {
|
|
15
|
+
try {
|
|
16
|
+
const resources = await hubToolsService.listResources();
|
|
17
|
+
return { resources };
|
|
18
|
+
}
|
|
19
|
+
catch (error) {
|
|
20
|
+
if (error instanceof Error) {
|
|
21
|
+
logger.error(`List resources error:`, error);
|
|
22
|
+
throw new McpError(-32802, error.message);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
logger.error(`List resources error:`, error);
|
|
26
|
+
throw new McpError(-32802, String(error));
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
server.server.setRequestHandler(ReadResourceRequestSchema, async (request) => {
|
|
31
|
+
try {
|
|
32
|
+
const { uri } = request.params;
|
|
33
|
+
const content = await hubToolsService.readResource(uri);
|
|
34
|
+
// Convert to official MCP format: contents array with required uri field
|
|
35
|
+
return {
|
|
36
|
+
contents: [
|
|
37
|
+
{
|
|
38
|
+
uri,
|
|
39
|
+
mimeType: 'application/json',
|
|
40
|
+
text: typeof content === 'string' ? content : stringifyForLogging(content)
|
|
41
|
+
}
|
|
42
|
+
]
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
catch (error) {
|
|
46
|
+
if (error instanceof Error) {
|
|
47
|
+
logger.error(`Read resource error:`, error);
|
|
48
|
+
throw new McpError(-32802, error.message);
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
logger.error(`Read resource error:`, error);
|
|
52
|
+
throw new McpError(-32802, String(error));
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* System tools request handlers for Gateway service.
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
/**
|
|
6
|
+
* Register system tools handlers on the MCP server.
|
|
7
|
+
*
|
|
8
|
+
* @param server - MCP server instance to register handlers on
|
|
9
|
+
*/
|
|
10
|
+
export declare function registerSystemToolsHandlers(server: McpServer): void;
|
|
11
|
+
//# sourceMappingURL=system-tools-handler.d.ts.map
|
|
@@ -0,0 +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;AAczE;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAgOnE"}
|
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* System tools request handlers for Gateway service.
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
+
import { logger } from '../../../utils/index.js';
|
|
7
|
+
import { getClientCwd } from '../../../utils/request-context.js';
|
|
8
|
+
import { hubToolsService } from '../../hub-tools.service.js';
|
|
9
|
+
import { LIST_SERVERS_TOOL, FIND_SERVERS_TOOL, LIST_ALL_TOOLS_IN_SERVER_TOOL, FIND_TOOLS_IN_SERVER_TOOL, GET_TOOL_TOOL, CALL_TOOL_TOOL, FIND_TOOLS_TOOL } from '../../../models/system-tools.constants.js';
|
|
10
|
+
/**
|
|
11
|
+
* Register system tools handlers on the MCP server.
|
|
12
|
+
*
|
|
13
|
+
* @param server - MCP server instance to register handlers on
|
|
14
|
+
*/
|
|
15
|
+
export function registerSystemToolsHandlers(server) {
|
|
16
|
+
// List servers
|
|
17
|
+
const ListServersRequestSchema = z.object({
|
|
18
|
+
method: z.literal(LIST_SERVERS_TOOL),
|
|
19
|
+
params: z.object({}).optional(),
|
|
20
|
+
id: z.union([z.string(), z.number()]),
|
|
21
|
+
jsonrpc: z.literal('2.0')
|
|
22
|
+
});
|
|
23
|
+
server.server.setRequestHandler(ListServersRequestSchema, async () => {
|
|
24
|
+
const servers = await hubToolsService.listServers();
|
|
25
|
+
return { servers };
|
|
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
|
+
// List all tools in a specific server
|
|
43
|
+
const ListAllToolsInServerRequestSchema = z.object({
|
|
44
|
+
method: z.literal(LIST_ALL_TOOLS_IN_SERVER_TOOL),
|
|
45
|
+
params: z.object({
|
|
46
|
+
serverName: z.string(),
|
|
47
|
+
requestOptions: z
|
|
48
|
+
.object({
|
|
49
|
+
sessionId: z.string().optional(),
|
|
50
|
+
tags: z.record(z.string(), z.string()).optional()
|
|
51
|
+
})
|
|
52
|
+
.optional()
|
|
53
|
+
}),
|
|
54
|
+
id: z.union([z.string(), z.number()]),
|
|
55
|
+
jsonrpc: z.literal('2.0')
|
|
56
|
+
});
|
|
57
|
+
server.server.setRequestHandler(ListAllToolsInServerRequestSchema, async (request) => {
|
|
58
|
+
try {
|
|
59
|
+
const result = await hubToolsService.listAllToolsInServer(request.params);
|
|
60
|
+
return result;
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
if (error instanceof Error) {
|
|
64
|
+
logger.error(`List tools in server error:`, error);
|
|
65
|
+
throw new McpError(-32802, error.message);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
logger.error(`List tools in server error:`, error);
|
|
69
|
+
throw new McpError(-32802, String(error));
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
// Find tools in a specific server
|
|
74
|
+
const FindToolsInServerRequestSchema = z.object({
|
|
75
|
+
method: z.literal(FIND_TOOLS_IN_SERVER_TOOL),
|
|
76
|
+
params: z.object({
|
|
77
|
+
serverName: z.string(),
|
|
78
|
+
pattern: z.string(),
|
|
79
|
+
searchIn: z.enum(['name', 'description', 'both']).optional().default('both'),
|
|
80
|
+
caseSensitive: z.boolean().optional().default(false),
|
|
81
|
+
requestOptions: z
|
|
82
|
+
.object({
|
|
83
|
+
sessionId: z.string().optional(),
|
|
84
|
+
tags: z.record(z.string(), z.string()).optional()
|
|
85
|
+
})
|
|
86
|
+
.optional()
|
|
87
|
+
}),
|
|
88
|
+
id: z.union([z.string(), z.number()]),
|
|
89
|
+
jsonrpc: z.literal('2.0')
|
|
90
|
+
});
|
|
91
|
+
server.server.setRequestHandler(FindToolsInServerRequestSchema, async (request) => {
|
|
92
|
+
try {
|
|
93
|
+
const result = await hubToolsService.findToolsInServer(request.params);
|
|
94
|
+
return result;
|
|
95
|
+
}
|
|
96
|
+
catch (error) {
|
|
97
|
+
if (error instanceof Error) {
|
|
98
|
+
logger.error(`Find tools in server error:`, error);
|
|
99
|
+
throw new McpError(-32802, error.message);
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
logger.error(`Find tools in server error:`, error);
|
|
103
|
+
throw new McpError(-32802, String(error));
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
// Get tool
|
|
108
|
+
const GetToolRequestSchema = z.object({
|
|
109
|
+
method: z.literal(GET_TOOL_TOOL),
|
|
110
|
+
params: z.object({
|
|
111
|
+
serverName: z.string(),
|
|
112
|
+
toolName: z.string(),
|
|
113
|
+
requestOptions: z
|
|
114
|
+
.object({
|
|
115
|
+
sessionId: z.string().optional(),
|
|
116
|
+
tags: z.record(z.string(), z.string()).optional()
|
|
117
|
+
})
|
|
118
|
+
.optional()
|
|
119
|
+
}),
|
|
120
|
+
id: z.union([z.string(), z.number()]),
|
|
121
|
+
jsonrpc: z.literal('2.0')
|
|
122
|
+
});
|
|
123
|
+
server.server.setRequestHandler(GetToolRequestSchema, async (request) => {
|
|
124
|
+
try {
|
|
125
|
+
const tool = await hubToolsService.getTool(request.params);
|
|
126
|
+
if (!tool) {
|
|
127
|
+
throw new McpError(-32801, `Tool "${request.params.toolName}" not found on server "${request.params.serverName}"`);
|
|
128
|
+
}
|
|
129
|
+
return { tool };
|
|
130
|
+
}
|
|
131
|
+
catch (error) {
|
|
132
|
+
logger.error(`Get tool error:`, error);
|
|
133
|
+
if (error instanceof McpError) {
|
|
134
|
+
throw error;
|
|
135
|
+
}
|
|
136
|
+
else if (error instanceof Error) {
|
|
137
|
+
throw new McpError(-32802, error.message);
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
throw new McpError(-32802, String(error));
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
});
|
|
144
|
+
// Call tool directly
|
|
145
|
+
const CallToolDirectRequestSchema = z.object({
|
|
146
|
+
method: z.literal(CALL_TOOL_TOOL),
|
|
147
|
+
params: z.object({
|
|
148
|
+
serverName: z.string(),
|
|
149
|
+
toolName: z.string(),
|
|
150
|
+
toolArgs: z.record(z.string(), z.unknown()),
|
|
151
|
+
requestOptions: z
|
|
152
|
+
.object({
|
|
153
|
+
sessionId: z.string().optional(),
|
|
154
|
+
tags: z.record(z.string(), z.string()).optional()
|
|
155
|
+
})
|
|
156
|
+
.optional()
|
|
157
|
+
}),
|
|
158
|
+
id: z.union([z.string(), z.number()]),
|
|
159
|
+
jsonrpc: z.literal('2.0')
|
|
160
|
+
});
|
|
161
|
+
server.server.setRequestHandler(CallToolDirectRequestSchema, async (request) => {
|
|
162
|
+
try {
|
|
163
|
+
const params = { ...request.params };
|
|
164
|
+
// Inject CWD if available and not present in args
|
|
165
|
+
const cwd = getClientCwd();
|
|
166
|
+
if (cwd && !params.toolArgs.cwd) {
|
|
167
|
+
params.toolArgs.cwd = cwd;
|
|
168
|
+
logger.debug(`Injected CWD into direct tool call: ${cwd}`);
|
|
169
|
+
}
|
|
170
|
+
const result = await hubToolsService.callTool(params);
|
|
171
|
+
// Wrap the result in a valid CallToolResult structure
|
|
172
|
+
if (typeof result === 'object' && result !== null) {
|
|
173
|
+
return {
|
|
174
|
+
content: [],
|
|
175
|
+
...result
|
|
176
|
+
};
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
return {
|
|
180
|
+
content: [
|
|
181
|
+
{
|
|
182
|
+
type: 'text',
|
|
183
|
+
text: String(result)
|
|
184
|
+
}
|
|
185
|
+
]
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
catch (error) {
|
|
190
|
+
logger.error(`Call tool error:`, error);
|
|
191
|
+
if (error instanceof McpError) {
|
|
192
|
+
throw error;
|
|
193
|
+
}
|
|
194
|
+
else if (error instanceof Error) {
|
|
195
|
+
throw new McpError(-32802, error.message);
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
throw new McpError(-32802, String(error));
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
});
|
|
202
|
+
// List all tools from all servers
|
|
203
|
+
const ListAllToolsRequestSchema = z.object({
|
|
204
|
+
method: z.literal('list_all_tools'),
|
|
205
|
+
params: z.object({}).optional(),
|
|
206
|
+
id: z.union([z.string(), z.number()]),
|
|
207
|
+
jsonrpc: z.literal('2.0')
|
|
208
|
+
});
|
|
209
|
+
server.server.setRequestHandler(ListAllToolsRequestSchema, async () => {
|
|
210
|
+
const allTools = await hubToolsService.listAllTools();
|
|
211
|
+
return allTools;
|
|
212
|
+
});
|
|
213
|
+
// Find tools across all servers
|
|
214
|
+
const FindToolsRequestSchema = z.object({
|
|
215
|
+
method: z.literal(FIND_TOOLS_TOOL),
|
|
216
|
+
params: z.object({
|
|
217
|
+
pattern: z.string(),
|
|
218
|
+
searchIn: z.enum(['name', 'description', 'both']).optional().default('both'),
|
|
219
|
+
caseSensitive: z.boolean().optional().default(false)
|
|
220
|
+
}),
|
|
221
|
+
id: z.union([z.string(), z.number()]),
|
|
222
|
+
jsonrpc: z.literal('2.0')
|
|
223
|
+
});
|
|
224
|
+
server.server.setRequestHandler(FindToolsRequestSchema, async (request) => {
|
|
225
|
+
const tools = await hubToolsService.findTools(request.params);
|
|
226
|
+
return tools;
|
|
227
|
+
});
|
|
228
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tools-related request handlers for Gateway service.
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
/**
|
|
6
|
+
* Register tools-related handlers on the MCP server.
|
|
7
|
+
*
|
|
8
|
+
* @param server - MCP server instance to register handlers on
|
|
9
|
+
*/
|
|
10
|
+
export declare function registerToolsHandlers(server: McpServer): void;
|
|
11
|
+
//# sourceMappingURL=tools-handler.d.ts.map
|
|
@@ -0,0 +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;AAMzE;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAqE7D"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tools-related request handlers for Gateway service.
|
|
3
|
+
*/
|
|
4
|
+
import { z } from 'zod';
|
|
5
|
+
import { McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
6
|
+
import { logger } from '../../../utils/index.js';
|
|
7
|
+
import { searchCoreService } from '../../search/search-core.service.js';
|
|
8
|
+
import { hubManager } from '../../hub-manager.service.js';
|
|
9
|
+
/**
|
|
10
|
+
* Register tools-related handlers on the MCP server.
|
|
11
|
+
*
|
|
12
|
+
* @param server - MCP server instance to register handlers on
|
|
13
|
+
*/
|
|
14
|
+
export function registerToolsHandlers(server) {
|
|
15
|
+
// Define search tool schema
|
|
16
|
+
const SearchToolsRequestSchema = z.object({
|
|
17
|
+
method: z.literal('tools/search'),
|
|
18
|
+
params: z
|
|
19
|
+
.object({
|
|
20
|
+
search: z.string().optional(),
|
|
21
|
+
filters: z
|
|
22
|
+
.object({
|
|
23
|
+
serverName: z.string().optional(),
|
|
24
|
+
tags: z.record(z.string(), z.string()).optional()
|
|
25
|
+
})
|
|
26
|
+
.optional(),
|
|
27
|
+
limit: z.number().int().positive().optional().default(50),
|
|
28
|
+
offset: z.number().int().nonnegative().optional().default(0)
|
|
29
|
+
})
|
|
30
|
+
.optional(),
|
|
31
|
+
id: z.union([z.string(), z.number()]),
|
|
32
|
+
jsonrpc: z.literal('2.0')
|
|
33
|
+
});
|
|
34
|
+
// Search tools handler
|
|
35
|
+
server.server.setRequestHandler(SearchToolsRequestSchema, async (request) => {
|
|
36
|
+
const { search = '', filters = {}, limit = 50, offset = 0 } = request.params || {};
|
|
37
|
+
try {
|
|
38
|
+
const searchOptions = {
|
|
39
|
+
mode: 'fuzzy',
|
|
40
|
+
limit,
|
|
41
|
+
offset,
|
|
42
|
+
filters: {}
|
|
43
|
+
};
|
|
44
|
+
if (filters.serverName) {
|
|
45
|
+
const serverInstances = hubManager.getServerInstanceByName(filters.serverName);
|
|
46
|
+
if (serverInstances.length > 0) {
|
|
47
|
+
// Use the first instance's ID as filter condition
|
|
48
|
+
searchOptions.filters.serverId = serverInstances[0].id;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
if (filters.tags) {
|
|
52
|
+
searchOptions.filters.tags = filters.tags;
|
|
53
|
+
}
|
|
54
|
+
const results = await searchCoreService.search(search, searchOptions);
|
|
55
|
+
return {
|
|
56
|
+
results: results.map((r) => ({
|
|
57
|
+
tool: r.tool,
|
|
58
|
+
score: r.score
|
|
59
|
+
})),
|
|
60
|
+
pagination: {
|
|
61
|
+
total: results.length,
|
|
62
|
+
limit,
|
|
63
|
+
offset,
|
|
64
|
+
hasMore: results.length >= limit
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
if (error instanceof Error) {
|
|
70
|
+
logger.error(`Search tools error:`, error);
|
|
71
|
+
throw new McpError(-32802, `Search failed: ${error.message}`);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
logger.error(`Search tools error:`, error);
|
|
75
|
+
throw new McpError(-32802, `Search failed: ${String(error)}`);
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
});
|
|
79
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gateway tool list generator with collision resolution.
|
|
3
|
+
*/
|
|
4
|
+
import type { ToolMapEntry, GatewayTool } from './types.js';
|
|
5
|
+
/**
|
|
6
|
+
* Generates a unified list of gateway tools with proper naming and collision resolution.
|
|
7
|
+
*
|
|
8
|
+
* This method creates a comprehensive tool list that includes both system tools and
|
|
9
|
+
* aggregated tools from all connected MCP servers. It implements sophisticated
|
|
10
|
+
* naming collision resolution by:
|
|
11
|
+
* - Adding server hash suffixes to non-unique tool names
|
|
12
|
+
* - Handling conflicts with system tool names
|
|
13
|
+
* - Ensuring names don't exceed 60 characters
|
|
14
|
+
* - Providing final uniqueness guarantees through counter suffixes
|
|
15
|
+
*
|
|
16
|
+
* The method also populates the provided toolMap with mappings from gateway tool names
|
|
17
|
+
* to actual server IDs and real tool names for efficient routing during tool execution.
|
|
18
|
+
*
|
|
19
|
+
* @param {Map<string, ToolMapEntry>} toolMap - Map to populate with gateway tool name to actual tool mappings
|
|
20
|
+
* @returns {Array<GatewayTool>} Array of gateway tools with resolved names and descriptions
|
|
21
|
+
*/
|
|
22
|
+
export declare function generateGatewayToolsList(toolMap: Map<string, ToolMapEntry>): Array<GatewayTool>;
|
|
23
|
+
//# sourceMappingURL=tool-list-generator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tool-list-generator.d.ts","sourceRoot":"","sources":["../../../../../src/services/gateway/tool-list-generator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH,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,CA4G/F"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gateway tool list generator with collision resolution.
|
|
3
|
+
*/
|
|
4
|
+
import { logger } from '../../utils/index.js';
|
|
5
|
+
import { mcpConnectionManager } from '../mcp-connection-manager.js';
|
|
6
|
+
import { hubManager } from '../hub-manager.service.js';
|
|
7
|
+
import { hubToolsService } from '../hub-tools.service.js';
|
|
8
|
+
/**
|
|
9
|
+
* Generates a unified list of gateway tools with proper naming and collision resolution.
|
|
10
|
+
*
|
|
11
|
+
* This method creates a comprehensive tool list that includes both system tools and
|
|
12
|
+
* aggregated tools from all connected MCP servers. It implements sophisticated
|
|
13
|
+
* naming collision resolution by:
|
|
14
|
+
* - Adding server hash suffixes to non-unique tool names
|
|
15
|
+
* - Handling conflicts with system tool names
|
|
16
|
+
* - Ensuring names don't exceed 60 characters
|
|
17
|
+
* - Providing final uniqueness guarantees through counter suffixes
|
|
18
|
+
*
|
|
19
|
+
* The method also populates the provided toolMap with mappings from gateway tool names
|
|
20
|
+
* to actual server IDs and real tool names for efficient routing during tool execution.
|
|
21
|
+
*
|
|
22
|
+
* @param {Map<string, ToolMapEntry>} toolMap - Map to populate with gateway tool name to actual tool mappings
|
|
23
|
+
* @returns {Array<GatewayTool>} Array of gateway tools with resolved names and descriptions
|
|
24
|
+
*/
|
|
25
|
+
export function generateGatewayToolsList(toolMap) {
|
|
26
|
+
const gatewayTools = [];
|
|
27
|
+
toolMap.clear();
|
|
28
|
+
// Add system tools
|
|
29
|
+
const systemTools = hubToolsService.getSystemTools();
|
|
30
|
+
const usedNames = new Set();
|
|
31
|
+
for (const tool of systemTools) {
|
|
32
|
+
gatewayTools.push({
|
|
33
|
+
name: tool.name,
|
|
34
|
+
description: `[System] ${tool.description}`,
|
|
35
|
+
inputSchema: tool.inputSchema,
|
|
36
|
+
annotations: tool.annotations
|
|
37
|
+
});
|
|
38
|
+
usedNames.add(tool.name);
|
|
39
|
+
}
|
|
40
|
+
// First pass: Count tool name frequencies to determine uniqueness
|
|
41
|
+
const toolNameCounts = new Map();
|
|
42
|
+
// Iterate through toolCache to get all tools and their server IDs
|
|
43
|
+
for (const [serverId, tools] of mcpConnectionManager.toolCache.entries()) {
|
|
44
|
+
for (const tool of tools) {
|
|
45
|
+
const serverConfig = hubManager.getServerById(serverId);
|
|
46
|
+
if (serverConfig) {
|
|
47
|
+
if (serverConfig.config.allowedTools &&
|
|
48
|
+
!serverConfig.config.allowedTools.includes(tool.name)) {
|
|
49
|
+
continue;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
toolNameCounts.set(tool.name, (toolNameCounts.get(tool.name) || 0) + 1);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// Second pass: Generate gateway tools with proper naming
|
|
56
|
+
for (const [serverId, tools] of mcpConnectionManager.toolCache.entries()) {
|
|
57
|
+
const serverConfig = hubManager.getServerById(serverId);
|
|
58
|
+
// Skip if server configuration not found
|
|
59
|
+
if (!serverConfig) {
|
|
60
|
+
logger.warn(`Server configuration not found for serverId: ${serverId}, skipping tools`);
|
|
61
|
+
continue;
|
|
62
|
+
}
|
|
63
|
+
for (const tool of tools) {
|
|
64
|
+
if (serverConfig.config.allowedTools &&
|
|
65
|
+
!serverConfig.config.allowedTools.includes(tool.name)) {
|
|
66
|
+
continue;
|
|
67
|
+
}
|
|
68
|
+
const serverName = serverConfig.name;
|
|
69
|
+
let gatewayToolName = tool.name;
|
|
70
|
+
const isUnique = toolNameCounts.get(tool.name) === 1;
|
|
71
|
+
const isSystemConflict = usedNames.has(tool.name);
|
|
72
|
+
// If tool name is not unique or conflicts with system tool, append server hash
|
|
73
|
+
if (!isUnique || isSystemConflict) {
|
|
74
|
+
// Get instance hash from serverConfig, use first 4 characters of serverId as default
|
|
75
|
+
const hash = serverConfig.instance?.hash || serverId.substring(0, 4);
|
|
76
|
+
gatewayToolName = `${tool.name}_${hash}`;
|
|
77
|
+
}
|
|
78
|
+
// Ensure name doesn't exceed 60 chars
|
|
79
|
+
if (gatewayToolName.length > 60) {
|
|
80
|
+
// Use first 4 characters of serverId as default hash
|
|
81
|
+
const hash = serverConfig.instance?.hash || serverId.substring(0, 4);
|
|
82
|
+
// Reserve space for hash and separator
|
|
83
|
+
const maxToolNameLen = 60 - hash.length - 1;
|
|
84
|
+
const truncatedToolName = tool.name.substring(0, maxToolNameLen);
|
|
85
|
+
gatewayToolName = `${truncatedToolName}_${hash}`;
|
|
86
|
+
}
|
|
87
|
+
// Final uniqueness check (in case of hash collision or previous renaming conflict)
|
|
88
|
+
let finalName = gatewayToolName;
|
|
89
|
+
let counter = 1;
|
|
90
|
+
while (usedNames.has(finalName)) {
|
|
91
|
+
const suffix = `_${counter}`;
|
|
92
|
+
if (gatewayToolName.length + suffix.length > 60) {
|
|
93
|
+
const availableLen = 60 - suffix.length;
|
|
94
|
+
finalName = gatewayToolName.substring(0, availableLen) + suffix;
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
finalName = gatewayToolName + suffix;
|
|
98
|
+
}
|
|
99
|
+
counter++;
|
|
100
|
+
}
|
|
101
|
+
gatewayToolName = finalName;
|
|
102
|
+
usedNames.add(gatewayToolName);
|
|
103
|
+
toolMap.set(gatewayToolName, {
|
|
104
|
+
serverId: serverId,
|
|
105
|
+
realToolName: tool.name
|
|
106
|
+
});
|
|
107
|
+
gatewayTools.push({
|
|
108
|
+
name: gatewayToolName,
|
|
109
|
+
description: `[From ${serverName}] ${tool.description || ''}`,
|
|
110
|
+
inputSchema: tool.inputSchema
|
|
111
|
+
});
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
return gatewayTools;
|
|
115
|
+
}
|