@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,200 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Event Bus Service
|
|
3
|
+
*
|
|
4
|
+
* Centralized event management system for decoupled communication between different modules
|
|
5
|
+
* throughout the MCP Hub Lite application. This service implements the publish-subscribe
|
|
6
|
+
* pattern to enable loose coupling between components while maintaining efficient
|
|
7
|
+
* event-driven architecture.
|
|
8
|
+
*
|
|
9
|
+
* The event bus handles various types of events including server status changes,
|
|
10
|
+
* connection state updates, tool registry changes, log entries, configuration updates,
|
|
11
|
+
* and system health notifications. It provides thread-safe operations with error
|
|
12
|
+
* handling for listener callbacks to prevent cascading failures.
|
|
13
|
+
*
|
|
14
|
+
* Usage scenarios:
|
|
15
|
+
* - Server management modules publish server lifecycle events
|
|
16
|
+
* - Connection managers notify about connection state changes
|
|
17
|
+
* - UI components subscribe to relevant events for real-time updates
|
|
18
|
+
* - Logging services broadcast log entries to interested parties
|
|
19
|
+
* - Configuration services announce configuration changes
|
|
20
|
+
*
|
|
21
|
+
* All public methods are safe to call from any part of the application, and the service
|
|
22
|
+
* automatically manages memory by cleaning up empty event type entries when all listeners
|
|
23
|
+
* are unsubscribed.
|
|
24
|
+
*/
|
|
25
|
+
export class EventBusService {
|
|
26
|
+
listeners = new Map();
|
|
27
|
+
/**
|
|
28
|
+
* Publishes an event to all subscribed listeners for the specified event type.
|
|
29
|
+
*
|
|
30
|
+
* This method notifies all registered listeners for the given event type by
|
|
31
|
+
* invoking their callback functions with the provided event data. Each listener
|
|
32
|
+
* is executed in a try-catch block to prevent errors in one listener from
|
|
33
|
+
* affecting other listeners or the publisher.
|
|
34
|
+
*
|
|
35
|
+
* @param {string} eventType - The type of event to publish (e.g., EventTypes.SERVER_CONNECTED)
|
|
36
|
+
* @param {EventData} data - The event payload data to be passed to all listeners
|
|
37
|
+
* @throws {Error} - Never throws; errors in listeners are caught and logged to console.error
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* ```typescript
|
|
41
|
+
* eventBus.publish(EventTypes.SERVER_CONNECTED, { serverId: 'server-1', timestamp: Date.now() });
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
publish(eventType, data) {
|
|
45
|
+
const listeners = this.listeners.get(eventType);
|
|
46
|
+
if (listeners) {
|
|
47
|
+
listeners.forEach((listener) => {
|
|
48
|
+
try {
|
|
49
|
+
listener(data);
|
|
50
|
+
}
|
|
51
|
+
catch (error) {
|
|
52
|
+
console.error(`Error in event listener for type ${eventType}:`, error);
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Subscribes a listener function to receive events of the specified type.
|
|
59
|
+
*
|
|
60
|
+
* Registers the provided listener callback to be invoked whenever an event
|
|
61
|
+
* of the specified type is published. Returns an unsubscribe function that
|
|
62
|
+
* can be called to remove the listener registration.
|
|
63
|
+
*
|
|
64
|
+
* The service automatically creates a new listener set for the event type
|
|
65
|
+
* if it doesn't already exist, ensuring safe concurrent access.
|
|
66
|
+
*
|
|
67
|
+
* @param {string} eventType - The event type to subscribe to (e.g., EventTypes.TOOLS_UPDATED)
|
|
68
|
+
* @param {(data: EventData) => void} listener - The callback function to invoke when the event is published
|
|
69
|
+
* @returns {() => void} A function that, when called, unsubscribes the listener from the event type
|
|
70
|
+
*
|
|
71
|
+
* @example
|
|
72
|
+
* ```typescript
|
|
73
|
+
* const unsubscribe = eventBus.subscribe(EventTypes.SERVER_DISCONNECTED, (data) => {
|
|
74
|
+
* console.log('Server disconnected:', data.serverId);
|
|
75
|
+
* });
|
|
76
|
+
* // Later, to unsubscribe:
|
|
77
|
+
* unsubscribe();
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
subscribe(eventType, listener) {
|
|
81
|
+
if (!this.listeners.has(eventType)) {
|
|
82
|
+
this.listeners.set(eventType, new Set());
|
|
83
|
+
}
|
|
84
|
+
this.listeners.get(eventType).add(listener);
|
|
85
|
+
// Return unsubscribe function
|
|
86
|
+
return () => this.unsubscribe(eventType, listener);
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Unsubscribes a listener from receiving events of the specified type.
|
|
90
|
+
*
|
|
91
|
+
* Removes the specified listener from the registry for the given event type.
|
|
92
|
+
* If this was the last listener for the event type, the entire event type
|
|
93
|
+
* entry is removed from the registry to free memory.
|
|
94
|
+
*
|
|
95
|
+
* This method is private and should only be called internally by the
|
|
96
|
+
* unsubscribe function returned by the subscribe method.
|
|
97
|
+
*
|
|
98
|
+
* @param {string} eventType - The event type to unsubscribe from
|
|
99
|
+
* @param {(data: EventData) => void} listener - The listener function to remove
|
|
100
|
+
* @access private
|
|
101
|
+
*/
|
|
102
|
+
unsubscribe(eventType, listener) {
|
|
103
|
+
const listeners = this.listeners.get(eventType);
|
|
104
|
+
if (listeners) {
|
|
105
|
+
listeners.delete(listener);
|
|
106
|
+
// If the listeners for this event type are empty, remove the event type entry
|
|
107
|
+
if (listeners.size === 0) {
|
|
108
|
+
this.listeners.delete(eventType);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Unsubscribes all listeners from all event types.
|
|
114
|
+
*
|
|
115
|
+
* Clears the entire listener registry, effectively removing all subscriptions
|
|
116
|
+
* across all event types. This is typically used during application shutdown
|
|
117
|
+
* or when a complete reset of the event system is required.
|
|
118
|
+
*
|
|
119
|
+
* @returns {void}
|
|
120
|
+
*
|
|
121
|
+
* @example
|
|
122
|
+
* ```typescript
|
|
123
|
+
* // Clean up all event subscriptions before application shutdown
|
|
124
|
+
* eventBus.unsubscribeAll();
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
127
|
+
unsubscribeAll() {
|
|
128
|
+
this.listeners.clear();
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Retrieves all currently registered event types that have active listeners.
|
|
132
|
+
*
|
|
133
|
+
* Returns an array of event type strings that currently have at least one
|
|
134
|
+
* subscribed listener. This can be useful for debugging, monitoring, or
|
|
135
|
+
* introspection purposes.
|
|
136
|
+
*
|
|
137
|
+
* @returns {string[]} Array of event type strings with active listeners
|
|
138
|
+
*
|
|
139
|
+
* @example
|
|
140
|
+
* ```typescript
|
|
141
|
+
* const activeEventTypes = eventBus.getEventTypes();
|
|
142
|
+
* console.log('Active event types:', activeEventTypes);
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
getEventTypes() {
|
|
146
|
+
return Array.from(this.listeners.keys());
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Gets the number of active listeners subscribed to a specific event type.
|
|
150
|
+
*
|
|
151
|
+
* Returns the count of listener functions currently registered for the
|
|
152
|
+
* specified event type. Returns 0 if no listeners are registered for
|
|
153
|
+
* the event type or if the event type doesn't exist.
|
|
154
|
+
*
|
|
155
|
+
* @param {string} eventType - The event type to check listener count for
|
|
156
|
+
* @returns {number} The number of active listeners for the event type (0 if none)
|
|
157
|
+
*
|
|
158
|
+
* @example
|
|
159
|
+
* ```typescript
|
|
160
|
+
* const listenerCount = eventBus.getListenerCount(EventTypes.LOG_ENTRY);
|
|
161
|
+
* console.log(`There are ${listenerCount} listeners for log entries`);
|
|
162
|
+
* ```
|
|
163
|
+
*/
|
|
164
|
+
getListenerCount(eventType) {
|
|
165
|
+
const listeners = this.listeners.get(eventType);
|
|
166
|
+
return listeners ? listeners.size : 0;
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
// Event type constants
|
|
170
|
+
export const EventTypes = {
|
|
171
|
+
// Server status related events
|
|
172
|
+
SERVER_STATUS_CHANGE: 'server-status',
|
|
173
|
+
SERVER_CONNECTED: 'server-connected',
|
|
174
|
+
SERVER_DISCONNECTED: 'server-disconnected',
|
|
175
|
+
// Server management events
|
|
176
|
+
SERVER_ADDED: 'server-added',
|
|
177
|
+
SERVER_UPDATED: 'server-updated',
|
|
178
|
+
SERVER_DELETED: 'server-deleted',
|
|
179
|
+
SERVER_INSTANCE_ADDED: 'server-instance-added',
|
|
180
|
+
SERVER_INSTANCE_UPDATED: 'server-instance-updated',
|
|
181
|
+
SERVER_INSTANCE_DELETED: 'server-instance-deleted',
|
|
182
|
+
// Tool related events
|
|
183
|
+
TOOLS_UPDATED: 'tools',
|
|
184
|
+
TOOL_CALL_STARTED: 'tool-call-started',
|
|
185
|
+
TOOL_CALL_COMPLETED: 'tool-call-completed',
|
|
186
|
+
TOOL_CALL_ERROR: 'tool-call-error',
|
|
187
|
+
// Resource related events
|
|
188
|
+
RESOURCES_UPDATED: 'resources',
|
|
189
|
+
// Log related events
|
|
190
|
+
LOG_ENTRY: 'log',
|
|
191
|
+
LOGS_CLEARED: 'logs-cleared',
|
|
192
|
+
// System related events
|
|
193
|
+
SYSTEM_HEALTH: 'system-health',
|
|
194
|
+
CONFIGURATION_UPDATED: 'configuration-updated',
|
|
195
|
+
// Client related events
|
|
196
|
+
CLIENT_CONNECTED: 'client-connected',
|
|
197
|
+
CLIENT_DISCONNECTED: 'client-disconnected'
|
|
198
|
+
};
|
|
199
|
+
// Create global event bus instance
|
|
200
|
+
export const eventBus = new EventBusService();
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Gateway service that aggregates tools from multiple MCP servers and provides a unified interface.
|
|
3
|
+
*
|
|
4
|
+
* This service acts as the central hub for MCP (Model Context Protocol) communication,
|
|
5
|
+
* exposing both system tools and aggregated tools from connected MCP servers through
|
|
6
|
+
* a single stdio transport endpoint.
|
|
7
|
+
*
|
|
8
|
+
* This is a thin wrapper around modular handlers for better maintainability.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const gateway = new GatewayService();
|
|
13
|
+
* await gateway.start(); // Start on stdio transport
|
|
14
|
+
*
|
|
15
|
+
* // Or create connection server for HTTP transport
|
|
16
|
+
* const server = gateway.createConnectionServer();
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
20
|
+
import type { ToolMapEntry, GatewayTool } from './types.js';
|
|
21
|
+
export declare class GatewayService {
|
|
22
|
+
private server;
|
|
23
|
+
private transport;
|
|
24
|
+
constructor();
|
|
25
|
+
private registerHandlers;
|
|
26
|
+
/**
|
|
27
|
+
* Generates a unified list of gateway tools with proper naming and collision resolution.
|
|
28
|
+
*
|
|
29
|
+
* @param {Map<string, ToolMapEntry>} toolMap - Map to populate with gateway tool name to actual tool mappings
|
|
30
|
+
* @returns {Array<GatewayTool>} Array of gateway tools with resolved names and descriptions
|
|
31
|
+
*/
|
|
32
|
+
generateGatewayToolsList(toolMap: Map<string, ToolMapEntry>): Array<GatewayTool>;
|
|
33
|
+
/**
|
|
34
|
+
* Safely formats tool arguments for logging with circular reference handling and size limits.
|
|
35
|
+
*
|
|
36
|
+
* @param {unknown} args - Tool arguments to format
|
|
37
|
+
* @returns {string} Safe formatted string representation of the arguments
|
|
38
|
+
*/
|
|
39
|
+
formatToolArgs(args: unknown): string;
|
|
40
|
+
/**
|
|
41
|
+
* Safely formats tool responses for logging with size limits.
|
|
42
|
+
*
|
|
43
|
+
* @param {unknown} response - Tool response to format
|
|
44
|
+
* @returns {string} Safe formatted string representation of the response
|
|
45
|
+
*/
|
|
46
|
+
formatToolResponse(response: unknown): string;
|
|
47
|
+
/**
|
|
48
|
+
* Creates a new MCP server instance with all handlers registered for connection-based transports.
|
|
49
|
+
*
|
|
50
|
+
* @returns {McpServer} New MCP server instance with all handlers registered
|
|
51
|
+
*/
|
|
52
|
+
createConnectionServer(): McpServer;
|
|
53
|
+
/**
|
|
54
|
+
* Starts the MCP gateway service on stdio transport.
|
|
55
|
+
*
|
|
56
|
+
* @returns {Promise<void>} Resolves when the gateway is successfully started on stdio
|
|
57
|
+
*/
|
|
58
|
+
start(): Promise<void>;
|
|
59
|
+
}
|
|
60
|
+
export declare const gateway: GatewayService;
|
|
61
|
+
//# sourceMappingURL=gateway.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway.service.d.ts","sourceRoot":"","sources":["../../../../../src/services/gateway/gateway.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAapE,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE5D,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,SAAS,CAAqC;;IAoBtD,OAAO,CAAC,gBAAgB;IAWxB;;;;;OAKG;IACI,wBAAwB,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,KAAK,CAAC,WAAW,CAAC;IAIvF;;;;;OAKG;IACI,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM;IAI5C;;;;;OAKG;IACI,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM;IAIpD;;;;OAIG;IACI,sBAAsB,IAAI,SAAS;IAmB1C;;;;OAIG;IACU,KAAK;CAKnB;AAED,eAAO,MAAM,OAAO,gBAAuB,CAAC"}
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Gateway service that aggregates tools from multiple MCP servers and provides a unified interface.
|
|
3
|
+
*
|
|
4
|
+
* This service acts as the central hub for MCP (Model Context Protocol) communication,
|
|
5
|
+
* exposing both system tools and aggregated tools from connected MCP servers through
|
|
6
|
+
* a single stdio transport endpoint.
|
|
7
|
+
*
|
|
8
|
+
* This is a thin wrapper around modular handlers for better maintainability.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* const gateway = new GatewayService();
|
|
13
|
+
* await gateway.start(); // Start on stdio transport
|
|
14
|
+
*
|
|
15
|
+
* // Or create connection server for HTTP transport
|
|
16
|
+
* const server = gateway.createConnectionServer();
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
20
|
+
import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
|
|
21
|
+
import { logger } from '../../utils/index.js';
|
|
22
|
+
import { MCP_HUB_LITE_SERVER } from '../../models/system-tools.constants.js';
|
|
23
|
+
import { registerInitializeHandlers, registerToolsHandlers, registerResourcesHandlers, registerSystemToolsHandlers, registerCallToolHandler } from './request-handlers/index.js';
|
|
24
|
+
import { generateGatewayToolsList } from './tool-list-generator.js';
|
|
25
|
+
import { formatToolArgs, formatToolResponse } from './log-formatter.js';
|
|
26
|
+
export class GatewayService {
|
|
27
|
+
server;
|
|
28
|
+
transport = null;
|
|
29
|
+
constructor() {
|
|
30
|
+
this.server = new McpServer({
|
|
31
|
+
name: MCP_HUB_LITE_SERVER,
|
|
32
|
+
version: '1.0.0'
|
|
33
|
+
}, {
|
|
34
|
+
capabilities: {
|
|
35
|
+
tools: {},
|
|
36
|
+
resources: {} // Add resource capability support
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
// Call registerHandlers directly in constructor
|
|
40
|
+
this.registerHandlers(this.server);
|
|
41
|
+
}
|
|
42
|
+
registerHandlers(server) {
|
|
43
|
+
// Local toolMap for this connection
|
|
44
|
+
const toolMap = new Map();
|
|
45
|
+
registerInitializeHandlers(server);
|
|
46
|
+
registerToolsHandlers(server);
|
|
47
|
+
registerResourcesHandlers(server);
|
|
48
|
+
registerSystemToolsHandlers(server);
|
|
49
|
+
registerCallToolHandler(server, toolMap);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Generates a unified list of gateway tools with proper naming and collision resolution.
|
|
53
|
+
*
|
|
54
|
+
* @param {Map<string, ToolMapEntry>} toolMap - Map to populate with gateway tool name to actual tool mappings
|
|
55
|
+
* @returns {Array<GatewayTool>} Array of gateway tools with resolved names and descriptions
|
|
56
|
+
*/
|
|
57
|
+
generateGatewayToolsList(toolMap) {
|
|
58
|
+
return generateGatewayToolsList(toolMap);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Safely formats tool arguments for logging with circular reference handling and size limits.
|
|
62
|
+
*
|
|
63
|
+
* @param {unknown} args - Tool arguments to format
|
|
64
|
+
* @returns {string} Safe formatted string representation of the arguments
|
|
65
|
+
*/
|
|
66
|
+
formatToolArgs(args) {
|
|
67
|
+
return formatToolArgs(args);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Safely formats tool responses for logging with size limits.
|
|
71
|
+
*
|
|
72
|
+
* @param {unknown} response - Tool response to format
|
|
73
|
+
* @returns {string} Safe formatted string representation of the response
|
|
74
|
+
*/
|
|
75
|
+
formatToolResponse(response) {
|
|
76
|
+
return formatToolResponse(response);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Creates a new MCP server instance with all handlers registered for connection-based transports.
|
|
80
|
+
*
|
|
81
|
+
* @returns {McpServer} New MCP server instance with all handlers registered
|
|
82
|
+
*/
|
|
83
|
+
createConnectionServer() {
|
|
84
|
+
const server = new McpServer({
|
|
85
|
+
name: MCP_HUB_LITE_SERVER,
|
|
86
|
+
version: '1.0.0'
|
|
87
|
+
}, {
|
|
88
|
+
capabilities: {
|
|
89
|
+
tools: {},
|
|
90
|
+
resources: {} // Add resource capability support
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
this.registerHandlers(server);
|
|
94
|
+
return server;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Starts the MCP gateway service on stdio transport.
|
|
98
|
+
*
|
|
99
|
+
* @returns {Promise<void>} Resolves when the gateway is successfully started on stdio
|
|
100
|
+
*/
|
|
101
|
+
async start() {
|
|
102
|
+
this.transport = new StdioServerTransport();
|
|
103
|
+
await this.server.connect(this.transport);
|
|
104
|
+
logger.info('MCP Gateway started on stdio');
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
export const gateway = new GatewayService();
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gateway service module index.
|
|
3
|
+
*/
|
|
4
|
+
export { GatewayService, gateway } from './gateway.service.js';
|
|
5
|
+
export type { ToolMapEntry, GatewayTool } from './types.js';
|
|
6
|
+
export { generateGatewayToolsList } from './tool-list-generator.js';
|
|
7
|
+
export { formatToolArgs, formatToolResponse } from './log-formatter.js';
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/gateway/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAC/D,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Log formatting utilities for Gateway service.
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Safely formats tool arguments for logging with circular reference handling and size limits.
|
|
6
|
+
*
|
|
7
|
+
* This method provides safe JSON serialization of tool arguments for logging purposes,
|
|
8
|
+
* handling circular references by replacing them with '[Circular Reference]' and
|
|
9
|
+
* truncating large strings and outputs to prevent log noise and performance issues.
|
|
10
|
+
*
|
|
11
|
+
* @param {unknown} args - Tool arguments to format
|
|
12
|
+
* @returns {string} Safe formatted string representation of the arguments
|
|
13
|
+
*/
|
|
14
|
+
export declare function formatToolArgs(args: unknown): string;
|
|
15
|
+
/**
|
|
16
|
+
* Safely formats tool responses for logging with size limits.
|
|
17
|
+
*
|
|
18
|
+
* This method provides safe JSON serialization of tool responses for logging purposes,
|
|
19
|
+
* truncating large outputs to prevent log noise and performance issues while maintaining
|
|
20
|
+
* readability through pretty-printed JSON formatting.
|
|
21
|
+
*
|
|
22
|
+
* @param {unknown} response - Tool response to format
|
|
23
|
+
* @returns {string} Safe formatted string representation of the response
|
|
24
|
+
*/
|
|
25
|
+
export declare function formatToolResponse(response: unknown): string;
|
|
26
|
+
//# sourceMappingURL=log-formatter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-formatter.d.ts","sourceRoot":"","sources":["../../../../../src/services/gateway/log-formatter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,CA4BpD;AAED;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAe5D"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Log formatting utilities for Gateway service.
|
|
3
|
+
*/
|
|
4
|
+
import { stringifyForLogging, stringifyForLoggingWithReplacer } from '../../utils/json-utils.js';
|
|
5
|
+
/**
|
|
6
|
+
* Safely formats tool arguments for logging with circular reference handling and size limits.
|
|
7
|
+
*
|
|
8
|
+
* This method provides safe JSON serialization of tool arguments for logging purposes,
|
|
9
|
+
* handling circular references by replacing them with '[Circular Reference]' and
|
|
10
|
+
* truncating large strings and outputs to prevent log noise and performance issues.
|
|
11
|
+
*
|
|
12
|
+
* @param {unknown} args - Tool arguments to format
|
|
13
|
+
* @returns {string} Safe formatted string representation of the arguments
|
|
14
|
+
*/
|
|
15
|
+
export function formatToolArgs(args) {
|
|
16
|
+
try {
|
|
17
|
+
const seen = new WeakSet();
|
|
18
|
+
const replacer = (_key, value) => {
|
|
19
|
+
if (typeof value === 'object' && value !== null) {
|
|
20
|
+
if (seen.has(value)) {
|
|
21
|
+
return '[Circular Reference]';
|
|
22
|
+
}
|
|
23
|
+
seen.add(value);
|
|
24
|
+
}
|
|
25
|
+
// Limit string length and truncate large objects
|
|
26
|
+
if (typeof value === 'string' && value.length > 500) {
|
|
27
|
+
return value.substring(0, 500) + '... [truncated]';
|
|
28
|
+
}
|
|
29
|
+
return value;
|
|
30
|
+
};
|
|
31
|
+
const formatted = stringifyForLoggingWithReplacer(args, replacer);
|
|
32
|
+
// Limit total output length
|
|
33
|
+
if (formatted.length > 2000) {
|
|
34
|
+
return formatted.substring(0, 2000) + '... [truncated]';
|
|
35
|
+
}
|
|
36
|
+
return formatted;
|
|
37
|
+
}
|
|
38
|
+
catch (error) {
|
|
39
|
+
return ('[Error formatting args: ' + (error instanceof Error ? error.message : String(error)) + ']');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Safely formats tool responses for logging with size limits.
|
|
44
|
+
*
|
|
45
|
+
* This method provides safe JSON serialization of tool responses for logging purposes,
|
|
46
|
+
* truncating large outputs to prevent log noise and performance issues while maintaining
|
|
47
|
+
* readability through pretty-printed JSON formatting.
|
|
48
|
+
*
|
|
49
|
+
* @param {unknown} response - Tool response to format
|
|
50
|
+
* @returns {string} Safe formatted string representation of the response
|
|
51
|
+
*/
|
|
52
|
+
export function formatToolResponse(response) {
|
|
53
|
+
try {
|
|
54
|
+
const formatted = stringifyForLogging(response);
|
|
55
|
+
// Limit total output length
|
|
56
|
+
if (formatted.length > 2000) {
|
|
57
|
+
return formatted.substring(0, 2000) + '... [truncated]';
|
|
58
|
+
}
|
|
59
|
+
return formatted;
|
|
60
|
+
}
|
|
61
|
+
catch (error) {
|
|
62
|
+
return ('[Error formatting response: ' +
|
|
63
|
+
(error instanceof Error ? error.message : String(error)) +
|
|
64
|
+
']');
|
|
65
|
+
}
|
|
66
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Call tool request handler for Gateway service.
|
|
3
|
+
*/
|
|
4
|
+
import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
|
|
5
|
+
import type { ToolMapEntry } from '../types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Register call tool handler on the MCP server.
|
|
8
|
+
*
|
|
9
|
+
* @param server - MCP server instance to register handlers on
|
|
10
|
+
* @param toolMap - Tool map for routing tool calls
|
|
11
|
+
*/
|
|
12
|
+
export declare function registerCallToolHandler(server: McpServer, toolMap: Map<string, ToolMapEntry>): void;
|
|
13
|
+
//# sourceMappingURL=call-tool-handler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"call-tool-handler.d.ts","sourceRoot":"","sources":["../../../../../../src/services/gateway/request-handlers/call-tool-handler.ts"],"names":[],"mappings":"AAAA;;GAEG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AAezE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GACjC,IAAI,CAwKN"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Call tool request handler for Gateway service.
|
|
3
|
+
*/
|
|
4
|
+
import { CallToolRequestSchema, ListToolsRequestSchema, McpError } from '@modelcontextprotocol/sdk/types.js';
|
|
5
|
+
import { logger, LOG_MODULES } from '../../../utils/index.js';
|
|
6
|
+
import { stringifyForLogging } from '../../../utils/json-utils.js';
|
|
7
|
+
import { getClientCwd } from '../../../utils/request-context.js';
|
|
8
|
+
import { mcpConnectionManager } from '../../mcp-connection-manager.js';
|
|
9
|
+
import { SystemToolHandler } from '../../system-tool-handler.js';
|
|
10
|
+
import { ErrorHandler } from '../../../utils/error-handler.js';
|
|
11
|
+
import { ToolArgsParser } from '../../../utils/tool-args-parser.js';
|
|
12
|
+
import { SYSTEM_TOOL_NAMES, MCP_HUB_LITE_SERVER } from '../../../models/system-tools.constants.js';
|
|
13
|
+
import { formatToolArgs, formatToolResponse } from '../log-formatter.js';
|
|
14
|
+
import { generateGatewayToolsList } from '../tool-list-generator.js';
|
|
15
|
+
/**
|
|
16
|
+
* Register call tool handler on the MCP server.
|
|
17
|
+
*
|
|
18
|
+
* @param server - MCP server instance to register handlers on
|
|
19
|
+
* @param toolMap - Tool map for routing tool calls
|
|
20
|
+
*/
|
|
21
|
+
export function registerCallToolHandler(server, toolMap) {
|
|
22
|
+
// Original list tools handler (for compatibility)
|
|
23
|
+
server.server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
24
|
+
const gatewayTools = generateGatewayToolsList(toolMap);
|
|
25
|
+
return {
|
|
26
|
+
tools: gatewayTools
|
|
27
|
+
};
|
|
28
|
+
});
|
|
29
|
+
// Original call tool handler (for compatibility)
|
|
30
|
+
server.server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
31
|
+
const toolName = request.params.name;
|
|
32
|
+
const toolArgs = request.params.arguments || {};
|
|
33
|
+
// Parse prefixed tool names (like mcp__mcp-hub-lite__xxx) if applicable
|
|
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
|
+
}
|
|
64
|
+
// Log incoming tool request with full context
|
|
65
|
+
logger.info(`Tool call REQUEST received: toolName=${toolName}, args=${formatToolArgs(toolArgs)}`, LOG_MODULES.GATEWAY);
|
|
66
|
+
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
|
+
// Handle system tools
|
|
68
|
+
if (typeof toolName === 'string' && SYSTEM_TOOL_NAMES.includes(toolName)) {
|
|
69
|
+
logger.debug(`System tool called: ${toolName}, args=${formatToolArgs(toolArgs)}`, LOG_MODULES.GATEWAY);
|
|
70
|
+
try {
|
|
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
|
+
}
|
|
90
|
+
}
|
|
91
|
+
const target = toolMap.get(toolName);
|
|
92
|
+
logger.debug(`Tool lookup SUCCESS: toolName=${toolName} -> serverId=${target?.serverId}, realToolName=${target?.realToolName}`, LOG_MODULES.GATEWAY);
|
|
93
|
+
if (!target) {
|
|
94
|
+
logger.error(`Tool NOT FOUND: toolName=${toolName}, available tools=${Array.from(toolMap.keys()).join(', ')}`, LOG_MODULES.GATEWAY);
|
|
95
|
+
throw new McpError(-32801, `Tool ${toolName} not found`);
|
|
96
|
+
}
|
|
97
|
+
const startTime = Date.now();
|
|
98
|
+
try {
|
|
99
|
+
// Inject CWD if available and not present in args
|
|
100
|
+
const cwd = getClientCwd();
|
|
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
|
+
const duration = Date.now() - startTime;
|
|
108
|
+
logger.info(`Tool call SUCCESS: serverId=${target.serverId}, realToolName=${target.realToolName}, duration=${duration}ms, response=${formatToolResponse(result)}`, LOG_MODULES.GATEWAY);
|
|
109
|
+
// Wrap the result in a valid CallToolResult structure
|
|
110
|
+
if (typeof result === 'object' && result !== null) {
|
|
111
|
+
return {
|
|
112
|
+
content: [],
|
|
113
|
+
...result
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
return {
|
|
118
|
+
content: [
|
|
119
|
+
{
|
|
120
|
+
type: 'text',
|
|
121
|
+
text: String(result)
|
|
122
|
+
}
|
|
123
|
+
]
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
catch (error) {
|
|
128
|
+
ErrorHandler.handleToolCallError(target.serverId, target.realToolName, error);
|
|
129
|
+
}
|
|
130
|
+
});
|
|
131
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gateway request handlers index.
|
|
3
|
+
*/
|
|
4
|
+
export { registerInitializeHandlers } from './initialize-handler.js';
|
|
5
|
+
export { registerToolsHandlers } from './tools-handler.js';
|
|
6
|
+
export { registerResourcesHandlers } from './resources-handler.js';
|
|
7
|
+
export { registerSystemToolsHandlers } from './system-tools-handler.js';
|
|
8
|
+
export { registerCallToolHandler } from './call-tool-handler.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +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,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,2BAA2B,EAAE,MAAM,2BAA2B,CAAC;AACxE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gateway request handlers index.
|
|
3
|
+
*/
|
|
4
|
+
export { registerInitializeHandlers } from './initialize-handler.js';
|
|
5
|
+
export { registerToolsHandlers } from './tools-handler.js';
|
|
6
|
+
export { registerResourcesHandlers } from './resources-handler.js';
|
|
7
|
+
export { registerSystemToolsHandlers } from './system-tools-handler.js';
|
|
8
|
+
export { registerCallToolHandler } from './call-tool-handler.js';
|