@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 @@
|
|
|
1
|
+
{"version":3,"file":"clients.d.ts","sourceRoot":"","sources":["../../../../../src/api/web/clients.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAI1C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,iBAU7D"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { clientTrackerService } from '../../services/client-tracker.service.js';
|
|
2
|
+
import { logger } from '../../utils/logger.js';
|
|
3
|
+
/**
|
|
4
|
+
* Registers web API routes for client management endpoints.
|
|
5
|
+
*
|
|
6
|
+
* This function sets up the HTTP routes that allow external clients to retrieve
|
|
7
|
+
* information about currently connected clients tracked by the system. The client
|
|
8
|
+
* tracking service maintains real-time information about all active connections,
|
|
9
|
+
* including session details, client metadata, and connection status.
|
|
10
|
+
*
|
|
11
|
+
* Primary Use Cases:
|
|
12
|
+
* - Monitoring dashboard to display active client connections
|
|
13
|
+
* - Debugging and diagnostics for client connectivity issues
|
|
14
|
+
* - Integration with external monitoring systems
|
|
15
|
+
* - Client lifecycle management and auditing
|
|
16
|
+
*
|
|
17
|
+
* The registered endpoint provides read-only access to client data and includes
|
|
18
|
+
* proper error handling with appropriate HTTP status codes and logging.
|
|
19
|
+
*
|
|
20
|
+
* @param fastify - The Fastify instance to register routes on
|
|
21
|
+
* @returns Promise<void> - Resolves when routes are registered
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* // Register client routes
|
|
25
|
+
* await webClientRoutes(app);
|
|
26
|
+
*
|
|
27
|
+
* // Client can then make GET request to /api/clients
|
|
28
|
+
* // Returns: Array of ClientContext objects with session and connection details
|
|
29
|
+
*/
|
|
30
|
+
export async function webClientRoutes(fastify) {
|
|
31
|
+
fastify.get('/api/clients', async (_request, reply) => {
|
|
32
|
+
try {
|
|
33
|
+
const clients = clientTrackerService.getClients();
|
|
34
|
+
return reply.send(clients);
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
logger.error('Failed to get clients:', error);
|
|
38
|
+
return reply.code(500).send({ error: 'Failed to get clients' });
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Management API Routes
|
|
3
|
+
*
|
|
4
|
+
* This module provides comprehensive configuration management endpoints for the MCP Hub Lite system.
|
|
5
|
+
* It handles reading, updating, importing, exporting, and batch operations for system configuration.
|
|
6
|
+
*
|
|
7
|
+
* The configuration includes server definitions, system settings, and other runtime parameters
|
|
8
|
+
* that control the behavior of the MCP Hub Lite service.
|
|
9
|
+
*
|
|
10
|
+
* @param fastify - The Fastify instance to register routes on
|
|
11
|
+
* @returns Promise that resolves when all routes are registered
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* // Register configuration management routes
|
|
16
|
+
* await configRoutes(app);
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
import { FastifyInstance } from 'fastify';
|
|
20
|
+
export declare function configRoutes(fastify: FastifyInstance): Promise<void>;
|
|
21
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../../../src/api/web/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAU1C,wBAAsB,YAAY,CAAC,OAAO,EAAE,eAAe,iBAsG1D"}
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Management API Routes
|
|
3
|
+
*
|
|
4
|
+
* This module provides comprehensive configuration management endpoints for the MCP Hub Lite system.
|
|
5
|
+
* It handles reading, updating, importing, exporting, and batch operations for system configuration.
|
|
6
|
+
*
|
|
7
|
+
* The configuration includes server definitions, system settings, and other runtime parameters
|
|
8
|
+
* that control the behavior of the MCP Hub Lite service.
|
|
9
|
+
*
|
|
10
|
+
* @param fastify - The Fastify instance to register routes on
|
|
11
|
+
* @returns Promise that resolves when all routes are registered
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* // Register configuration management routes
|
|
16
|
+
* await configRoutes(app);
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
import { configManager } from '../../config/config-manager.js';
|
|
20
|
+
import { eventBus, EventTypes } from '../../services/event-bus.service.js';
|
|
21
|
+
import { isDevModeEnabled } from '../../utils/json-utils.js';
|
|
22
|
+
export async function configRoutes(fastify) {
|
|
23
|
+
// GET /web/config - Get current configuration
|
|
24
|
+
fastify.get('/web/config', async (_request, reply) => {
|
|
25
|
+
try {
|
|
26
|
+
const config = configManager.getConfig();
|
|
27
|
+
const isDevMode = isDevModeEnabled();
|
|
28
|
+
return reply.send({
|
|
29
|
+
...config,
|
|
30
|
+
isDevMode
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
const errorObj = error;
|
|
35
|
+
return reply.code(500).send({
|
|
36
|
+
error: 'Failed to get configuration',
|
|
37
|
+
message: errorObj.message
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
// PUT /web/config - Update complete configuration
|
|
42
|
+
fastify.put('/web/config', async (request, reply) => {
|
|
43
|
+
try {
|
|
44
|
+
const newConfig = request.body;
|
|
45
|
+
await configManager.updateConfig(newConfig);
|
|
46
|
+
// Publish configuration update event
|
|
47
|
+
eventBus.publish(EventTypes.CONFIGURATION_UPDATED, {
|
|
48
|
+
timestamp: Date.now(),
|
|
49
|
+
config: newConfig
|
|
50
|
+
});
|
|
51
|
+
return reply.send({ success: true, message: 'Configuration updated successfully' });
|
|
52
|
+
}
|
|
53
|
+
catch (error) {
|
|
54
|
+
const errorObj = error;
|
|
55
|
+
return reply.code(500).send({
|
|
56
|
+
error: 'Failed to update configuration',
|
|
57
|
+
message: errorObj.message
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
// POST /web/config/export - Export configuration
|
|
62
|
+
fastify.post('/web/config/export', async (_request, reply) => {
|
|
63
|
+
try {
|
|
64
|
+
const config = configManager.getConfig();
|
|
65
|
+
reply.header('Content-Disposition', 'attachment; filename=mcp-hub-config.json');
|
|
66
|
+
reply.header('Content-Type', 'application/json');
|
|
67
|
+
return reply.send(JSON.stringify(config));
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
const errorObj = error;
|
|
71
|
+
return reply.code(500).send({
|
|
72
|
+
error: 'Failed to export configuration',
|
|
73
|
+
message: errorObj.message
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
// POST /web/config/import - Import configuration
|
|
78
|
+
fastify.post('/web/config/import', async (request, reply) => {
|
|
79
|
+
try {
|
|
80
|
+
const importedConfig = request.body;
|
|
81
|
+
await configManager.updateConfig(importedConfig);
|
|
82
|
+
// Publish configuration update event
|
|
83
|
+
eventBus.publish(EventTypes.CONFIGURATION_UPDATED, {
|
|
84
|
+
timestamp: Date.now(),
|
|
85
|
+
config: importedConfig
|
|
86
|
+
});
|
|
87
|
+
return reply.send({ success: true, message: 'Configuration imported successfully' });
|
|
88
|
+
}
|
|
89
|
+
catch (error) {
|
|
90
|
+
const errorObj = error;
|
|
91
|
+
return reply.code(400).send({
|
|
92
|
+
error: 'Failed to import configuration',
|
|
93
|
+
message: errorObj.message
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
});
|
|
97
|
+
// PATCH /web/config/servers - Batch update server configuration
|
|
98
|
+
fastify.patch('/web/config/servers', async (request, reply) => {
|
|
99
|
+
try {
|
|
100
|
+
const { servers } = request.body;
|
|
101
|
+
const config = configManager.getConfig();
|
|
102
|
+
config.servers = servers;
|
|
103
|
+
await configManager.updateConfig(config);
|
|
104
|
+
// Publish configuration update event
|
|
105
|
+
eventBus.publish(EventTypes.CONFIGURATION_UPDATED, {
|
|
106
|
+
timestamp: Date.now(),
|
|
107
|
+
config
|
|
108
|
+
});
|
|
109
|
+
return reply.send({ success: true, message: 'Servers configuration updated' });
|
|
110
|
+
}
|
|
111
|
+
catch (error) {
|
|
112
|
+
const errorObj = error;
|
|
113
|
+
return reply.code(500).send({
|
|
114
|
+
error: 'Failed to update servers configuration',
|
|
115
|
+
message: errorObj.message
|
|
116
|
+
});
|
|
117
|
+
}
|
|
118
|
+
});
|
|
119
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { FastifyInstance } from 'fastify';
|
|
2
|
+
/**
|
|
3
|
+
* Health Check API Routes
|
|
4
|
+
*
|
|
5
|
+
* Provides system health monitoring endpoints to verify the operational status of the MCP Hub Lite service.
|
|
6
|
+
* These endpoints are essential for infrastructure monitoring, load balancers, and service discovery systems.
|
|
7
|
+
*
|
|
8
|
+
* The health check returns a simple status indicator along with a timestamp to verify that the service
|
|
9
|
+
* is responding correctly and can handle incoming requests.
|
|
10
|
+
*
|
|
11
|
+
* @param fastify - The Fastify instance to register routes on
|
|
12
|
+
* @returns Promise that resolves when all routes are registered
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* // Register health check routes
|
|
17
|
+
* await webHealthRoutes(app);
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare function webHealthRoutes(fastify: FastifyInstance): Promise<void>;
|
|
21
|
+
//# sourceMappingURL=health.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"health.d.ts","sourceRoot":"","sources":["../../../../../src/api/web/health.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,eAAe,iBAK7D"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Health Check API Routes
|
|
3
|
+
*
|
|
4
|
+
* Provides system health monitoring endpoints to verify the operational status of the MCP Hub Lite service.
|
|
5
|
+
* These endpoints are essential for infrastructure monitoring, load balancers, and service discovery systems.
|
|
6
|
+
*
|
|
7
|
+
* The health check returns a simple status indicator along with a timestamp to verify that the service
|
|
8
|
+
* is responding correctly and can handle incoming requests.
|
|
9
|
+
*
|
|
10
|
+
* @param fastify - The Fastify instance to register routes on
|
|
11
|
+
* @returns Promise that resolves when all routes are registered
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* // Register health check routes
|
|
16
|
+
* await webHealthRoutes(app);
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export async function webHealthRoutes(fastify) {
|
|
20
|
+
// GET /web/health
|
|
21
|
+
fastify.get('/web/health', async () => {
|
|
22
|
+
return { status: 'ok', timestamp: new Date().toISOString() };
|
|
23
|
+
});
|
|
24
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { FastifyInstance } from 'fastify';
|
|
2
|
+
/**
|
|
3
|
+
* MCP Hub Tools API Routes
|
|
4
|
+
*
|
|
5
|
+
* Provides a comprehensive set of endpoints for discovering, inspecting, and invoking tools across
|
|
6
|
+
* all connected MCP (Model Context Protocol) servers. This module serves as the central hub for
|
|
7
|
+
* tool management and execution within the MCP Hub Lite system.
|
|
8
|
+
*
|
|
9
|
+
* The API supports both system-level tools (built into MCP Hub Lite) and server-specific tools
|
|
10
|
+
* from connected MCP servers. It enables powerful search capabilities, detailed tool inspection,
|
|
11
|
+
* and secure tool invocation with proper parameter validation.
|
|
12
|
+
*
|
|
13
|
+
* Key features include:
|
|
14
|
+
* - System tool discovery and execution
|
|
15
|
+
* - Cross-server tool listing and searching
|
|
16
|
+
* - Server-specific tool management
|
|
17
|
+
* - Tool schema inspection and validation
|
|
18
|
+
* - Secure tool invocation with session context
|
|
19
|
+
*
|
|
20
|
+
* @param fastify - The Fastify instance to register routes on
|
|
21
|
+
* @returns Promise that resolves when all routes are registered
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* // Register hub tools routes
|
|
26
|
+
* await webHubToolsRoutes(app);
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare function webHubToolsRoutes(fastify: FastifyInstance): Promise<void>;
|
|
30
|
+
//# sourceMappingURL=hub-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hub-tools.d.ts","sourceRoot":"","sources":["../../../../../src/api/web/hub-tools.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AA8B1C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,eAAe,iBA0O/D"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { hubToolsService } from '../../services/hub-tools.service.js';
|
|
3
|
+
/**
|
|
4
|
+
* MCP Hub Tools API Routes
|
|
5
|
+
*
|
|
6
|
+
* Provides a comprehensive set of endpoints for discovering, inspecting, and invoking tools across
|
|
7
|
+
* all connected MCP (Model Context Protocol) servers. This module serves as the central hub for
|
|
8
|
+
* tool management and execution within the MCP Hub Lite system.
|
|
9
|
+
*
|
|
10
|
+
* The API supports both system-level tools (built into MCP Hub Lite) and server-specific tools
|
|
11
|
+
* from connected MCP servers. It enables powerful search capabilities, detailed tool inspection,
|
|
12
|
+
* and secure tool invocation with proper parameter validation.
|
|
13
|
+
*
|
|
14
|
+
* Key features include:
|
|
15
|
+
* - System tool discovery and execution
|
|
16
|
+
* - Cross-server tool listing and searching
|
|
17
|
+
* - Server-specific tool management
|
|
18
|
+
* - Tool schema inspection and validation
|
|
19
|
+
* - Secure tool invocation with session context
|
|
20
|
+
*
|
|
21
|
+
* @param fastify - The Fastify instance to register routes on
|
|
22
|
+
* @returns Promise that resolves when all routes are registered
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* // Register hub tools routes
|
|
27
|
+
* await webHubToolsRoutes(app);
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export async function webHubToolsRoutes(fastify) {
|
|
31
|
+
// GET /web/hub-tools/system - List system tools
|
|
32
|
+
fastify.get('/web/hub-tools/system', async () => {
|
|
33
|
+
return hubToolsService.getSystemTools();
|
|
34
|
+
});
|
|
35
|
+
// POST /web/hub-tools/system/:toolName/call - Call a system tool
|
|
36
|
+
fastify.post('/web/hub-tools/system/:toolName/call', async (request, reply) => {
|
|
37
|
+
try {
|
|
38
|
+
const { toolName } = request.params;
|
|
39
|
+
const { toolArgs = {} } = request.body;
|
|
40
|
+
// Handle system tool calls uniformly through callSystemTool method to ensure logging
|
|
41
|
+
return await hubToolsService.callSystemTool(toolName, toolArgs);
|
|
42
|
+
}
|
|
43
|
+
catch (error) {
|
|
44
|
+
if (error instanceof Error && error.message.includes('System tool')) {
|
|
45
|
+
return reply.code(404).send({
|
|
46
|
+
error: 'Tool not found',
|
|
47
|
+
message: error.message
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
return reply.code(500).send({
|
|
51
|
+
error: 'Internal Server Error',
|
|
52
|
+
message: error instanceof Error ? error.message : 'Unknown error'
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
// GET /web/hub-tools/servers - List all connected servers
|
|
57
|
+
fastify.get('/web/hub-tools/servers', async () => {
|
|
58
|
+
const servers = await hubToolsService.listServers();
|
|
59
|
+
return servers;
|
|
60
|
+
});
|
|
61
|
+
// GET /web/hub-tools/servers/find - Find servers matching a pattern
|
|
62
|
+
fastify.get('/web/hub-tools/servers/find', async (request) => {
|
|
63
|
+
const { pattern, searchIn = 'both', caseSensitive = 'false' } = request.query;
|
|
64
|
+
const servers = await hubToolsService.findServers({
|
|
65
|
+
pattern,
|
|
66
|
+
searchIn: searchIn,
|
|
67
|
+
caseSensitive: caseSensitive === 'true'
|
|
68
|
+
});
|
|
69
|
+
return servers;
|
|
70
|
+
});
|
|
71
|
+
// GET /web/hub-tools/servers/:serverName/tools - List all tools in a specific server
|
|
72
|
+
fastify.get('/web/hub-tools/servers/:serverName/tools', async (request, reply) => {
|
|
73
|
+
try {
|
|
74
|
+
const { serverName } = request.params;
|
|
75
|
+
const { sessionId, tags } = request.query;
|
|
76
|
+
const requestOptions = {
|
|
77
|
+
sessionId,
|
|
78
|
+
tags: tags ? JSON.parse(tags) : undefined
|
|
79
|
+
};
|
|
80
|
+
const result = await hubToolsService.listAllToolsInServer({ serverName, requestOptions });
|
|
81
|
+
return result;
|
|
82
|
+
}
|
|
83
|
+
catch (error) {
|
|
84
|
+
return reply.code(404).send({
|
|
85
|
+
error: 'Server not found',
|
|
86
|
+
message: error instanceof Error ? error.message : 'Unknown error'
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
// GET /web/hub-tools/servers/:serverName/tools/find - Find tools in a specific server
|
|
91
|
+
fastify.get('/web/hub-tools/servers/:serverName/tools/find', async (request, reply) => {
|
|
92
|
+
try {
|
|
93
|
+
const { serverName } = request.params;
|
|
94
|
+
const { pattern, searchIn = 'both', caseSensitive = 'false', sessionId, tags } = request.query;
|
|
95
|
+
const requestOptions = {
|
|
96
|
+
sessionId,
|
|
97
|
+
tags: tags ? JSON.parse(tags) : undefined
|
|
98
|
+
};
|
|
99
|
+
const result = await hubToolsService.findToolsInServer({
|
|
100
|
+
serverName,
|
|
101
|
+
pattern,
|
|
102
|
+
searchIn: searchIn,
|
|
103
|
+
caseSensitive: caseSensitive === 'true',
|
|
104
|
+
requestOptions
|
|
105
|
+
});
|
|
106
|
+
return result;
|
|
107
|
+
}
|
|
108
|
+
catch (error) {
|
|
109
|
+
if (error instanceof Error && error.message.includes('not found')) {
|
|
110
|
+
return reply.code(404).send({
|
|
111
|
+
error: 'Server not found',
|
|
112
|
+
message: error.message
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
return reply.code(500).send({
|
|
116
|
+
error: 'Internal Server Error',
|
|
117
|
+
message: error instanceof Error ? error.message : 'Unknown error'
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
});
|
|
121
|
+
// GET /web/hub-tools/servers/:serverName/tools/:toolName - Get specific tool details
|
|
122
|
+
fastify.get('/web/hub-tools/servers/:serverName/tools/:toolName', async (request, reply) => {
|
|
123
|
+
try {
|
|
124
|
+
const { serverName, toolName } = request.params;
|
|
125
|
+
const { sessionId, tags } = request.query;
|
|
126
|
+
const requestOptions = {
|
|
127
|
+
sessionId,
|
|
128
|
+
tags: tags ? JSON.parse(tags) : undefined
|
|
129
|
+
};
|
|
130
|
+
const tool = await hubToolsService.getTool({ serverName, toolName, requestOptions });
|
|
131
|
+
if (!tool) {
|
|
132
|
+
return reply.code(404).send({
|
|
133
|
+
error: 'Tool not found',
|
|
134
|
+
message: `Tool "${toolName}" not found on server "${serverName}"`
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
return tool;
|
|
138
|
+
}
|
|
139
|
+
catch (error) {
|
|
140
|
+
if (error instanceof Error && error.message.includes('not found')) {
|
|
141
|
+
return reply.code(404).send({
|
|
142
|
+
error: error.message.includes('Server') ? 'Server not found' : 'Tool not found',
|
|
143
|
+
message: error.message
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
return reply.code(500).send({
|
|
147
|
+
error: 'Internal Server Error',
|
|
148
|
+
message: error instanceof Error ? error.message : 'Unknown error'
|
|
149
|
+
});
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
// POST /web/hub-tools/servers/:serverName/tools/:toolName/call - Call a specific tool
|
|
153
|
+
const CallToolBodySchema = z.object({
|
|
154
|
+
toolArgs: z.record(z.string(), z.any()),
|
|
155
|
+
requestOptions: z
|
|
156
|
+
.object({
|
|
157
|
+
sessionId: z.string().optional(),
|
|
158
|
+
tags: z.record(z.string(), z.string()).optional()
|
|
159
|
+
})
|
|
160
|
+
.optional()
|
|
161
|
+
});
|
|
162
|
+
fastify.post('/web/hub-tools/servers/:serverName/tools/:toolName/call', async (request, reply) => {
|
|
163
|
+
try {
|
|
164
|
+
const { serverName, toolName } = request.params;
|
|
165
|
+
const { toolArgs, requestOptions } = CallToolBodySchema.parse(request.body);
|
|
166
|
+
const result = await hubToolsService.callTool({
|
|
167
|
+
serverName,
|
|
168
|
+
toolName,
|
|
169
|
+
toolArgs,
|
|
170
|
+
requestOptions
|
|
171
|
+
});
|
|
172
|
+
return result;
|
|
173
|
+
}
|
|
174
|
+
catch (error) {
|
|
175
|
+
if (error instanceof Error && error.message.includes('not found')) {
|
|
176
|
+
return reply.code(404).send({
|
|
177
|
+
error: error.message.includes('Server') ? 'Server not found' : 'Tool not found',
|
|
178
|
+
message: error.message
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
return reply.code(500).send({
|
|
182
|
+
error: 'Internal Server Error',
|
|
183
|
+
message: error instanceof Error ? error.message : 'Unknown error'
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
});
|
|
187
|
+
// GET /web/hub-tools/tools - List all tools from all servers
|
|
188
|
+
fastify.get('/web/hub-tools/tools', async () => {
|
|
189
|
+
const allTools = await hubToolsService.listAllTools();
|
|
190
|
+
return allTools;
|
|
191
|
+
});
|
|
192
|
+
// GET /web/hub-tools/tools/find - Find tools matching a pattern across all servers
|
|
193
|
+
fastify.get('/web/hub-tools/tools/find', async (request) => {
|
|
194
|
+
const { pattern, searchIn = 'both', caseSensitive = 'false' } = request.query;
|
|
195
|
+
const tools = await hubToolsService.findTools({
|
|
196
|
+
pattern,
|
|
197
|
+
searchIn: searchIn,
|
|
198
|
+
caseSensitive: caseSensitive === 'true'
|
|
199
|
+
});
|
|
200
|
+
return tools;
|
|
201
|
+
});
|
|
202
|
+
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { FastifyInstance } from 'fastify';
|
|
2
|
+
/**
|
|
3
|
+
* Server Logs API Routes
|
|
4
|
+
*
|
|
5
|
+
* Provides comprehensive logging endpoints for monitoring and debugging MCP server operations.
|
|
6
|
+
* This module enables real-time log streaming, historical log retrieval, and log management
|
|
7
|
+
* across all connected MCP servers.
|
|
8
|
+
*
|
|
9
|
+
* The logging system supports multiple log levels (debug, info, warn, error), pagination,
|
|
10
|
+
* filtering by timestamp, and real-time Server-Sent Events (SSE) streaming for live monitoring.
|
|
11
|
+
* Logs are stored per-server and can be retrieved individually or aggregated across all servers.
|
|
12
|
+
*
|
|
13
|
+
* Key features include:
|
|
14
|
+
* - Per-server log retrieval with filtering and pagination
|
|
15
|
+
* - Real-time log streaming via SSE
|
|
16
|
+
* - Log count statistics
|
|
17
|
+
* - Cross-server log aggregation
|
|
18
|
+
* - Log clearing and maintenance operations
|
|
19
|
+
*
|
|
20
|
+
* @param fastify - The Fastify instance to register routes on
|
|
21
|
+
* @returns Promise that resolves when all routes are registered
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```typescript
|
|
25
|
+
* // Register log routes
|
|
26
|
+
* await webLogRoutes(app);
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export declare function webLogRoutes(fastify: FastifyInstance): Promise<void>;
|
|
30
|
+
//# sourceMappingURL=logs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../../../src/api/web/logs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAM1C;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAsB,YAAY,CAAC,OAAO,EAAE,eAAe,iBA0I1D"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import { z } from 'zod';
|
|
2
|
+
import { logStorage } from '../../services/log-storage.service.js';
|
|
3
|
+
/**
|
|
4
|
+
* Server Logs API Routes
|
|
5
|
+
*
|
|
6
|
+
* Provides comprehensive logging endpoints for monitoring and debugging MCP server operations.
|
|
7
|
+
* This module enables real-time log streaming, historical log retrieval, and log management
|
|
8
|
+
* across all connected MCP servers.
|
|
9
|
+
*
|
|
10
|
+
* The logging system supports multiple log levels (debug, info, warn, error), pagination,
|
|
11
|
+
* filtering by timestamp, and real-time Server-Sent Events (SSE) streaming for live monitoring.
|
|
12
|
+
* Logs are stored per-server and can be retrieved individually or aggregated across all servers.
|
|
13
|
+
*
|
|
14
|
+
* Key features include:
|
|
15
|
+
* - Per-server log retrieval with filtering and pagination
|
|
16
|
+
* - Real-time log streaming via SSE
|
|
17
|
+
* - Log count statistics
|
|
18
|
+
* - Cross-server log aggregation
|
|
19
|
+
* - Log clearing and maintenance operations
|
|
20
|
+
*
|
|
21
|
+
* @param fastify - The Fastify instance to register routes on
|
|
22
|
+
* @returns Promise that resolves when all routes are registered
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```typescript
|
|
26
|
+
* // Register log routes
|
|
27
|
+
* await webLogRoutes(app);
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export async function webLogRoutes(fastify) {
|
|
31
|
+
// Query string schema for logs endpoints
|
|
32
|
+
const logQuerySchema = z.object({
|
|
33
|
+
level: z.custom().optional(),
|
|
34
|
+
limit: z.coerce.number().int().positive().optional(),
|
|
35
|
+
offset: z.coerce.number().int().min(0).optional(),
|
|
36
|
+
since: z.coerce.number().int().optional()
|
|
37
|
+
});
|
|
38
|
+
// GET /web/servers/:id/logs - Get logs for a specific server
|
|
39
|
+
fastify.get('/web/servers/:id/logs', async (request) => {
|
|
40
|
+
const { id } = request.params;
|
|
41
|
+
const query = logQuerySchema.parse(request.query);
|
|
42
|
+
const logs = logStorage.getLogs(id, query);
|
|
43
|
+
return {
|
|
44
|
+
code: 200,
|
|
45
|
+
message: 'Success',
|
|
46
|
+
data: logs,
|
|
47
|
+
timestamp: new Date().toISOString()
|
|
48
|
+
};
|
|
49
|
+
});
|
|
50
|
+
// GET /web/servers/:id/logs/stream - Get real-time logs stream via SSE
|
|
51
|
+
fastify.get('/web/servers/:id/logs/stream', async (request, reply) => {
|
|
52
|
+
const { id } = request.params;
|
|
53
|
+
// Set SSE headers
|
|
54
|
+
reply.raw.writeHead(200, {
|
|
55
|
+
'Content-Type': 'text/event-stream',
|
|
56
|
+
'Cache-Control': 'no-cache',
|
|
57
|
+
Connection: 'keep-alive',
|
|
58
|
+
'Access-Control-Allow-Origin': '*',
|
|
59
|
+
'Access-Control-Allow-Headers': 'Cache-Control'
|
|
60
|
+
});
|
|
61
|
+
// Send initial event
|
|
62
|
+
reply.raw.write(`data: ${JSON.stringify({
|
|
63
|
+
type: 'connected',
|
|
64
|
+
timestamp: new Date().toISOString(),
|
|
65
|
+
message: 'Connected to log stream'
|
|
66
|
+
})}\n\n`);
|
|
67
|
+
// Handle client disconnect
|
|
68
|
+
request.raw.on('close', () => {
|
|
69
|
+
logStorage.removeLogListener(id, listener);
|
|
70
|
+
});
|
|
71
|
+
// Create log listener
|
|
72
|
+
const listener = (log) => {
|
|
73
|
+
try {
|
|
74
|
+
reply.raw.write(`data: ${JSON.stringify(log)}\n\n`);
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
// Ignore write errors (e.g. client disconnected)
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
logStorage.addLogListener(id, listener);
|
|
81
|
+
// Keep connection alive
|
|
82
|
+
const keepAliveInterval = setInterval(() => {
|
|
83
|
+
try {
|
|
84
|
+
reply.raw.write(': ping\n\n');
|
|
85
|
+
}
|
|
86
|
+
catch {
|
|
87
|
+
clearInterval(keepAliveInterval);
|
|
88
|
+
logStorage.removeLogListener(id, listener);
|
|
89
|
+
}
|
|
90
|
+
}, 30000);
|
|
91
|
+
// Return a promise that never resolves to keep the connection alive
|
|
92
|
+
return new Promise(() => {
|
|
93
|
+
// Connection will be closed when client disconnects or server shuts down
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
// DELETE /web/servers/:id/logs - Clear logs for a specific server
|
|
97
|
+
fastify.delete('/web/servers/:id/logs', async (request) => {
|
|
98
|
+
const { id } = request.params;
|
|
99
|
+
logStorage.clearLogs(id);
|
|
100
|
+
return {
|
|
101
|
+
code: 200,
|
|
102
|
+
message: 'Logs cleared',
|
|
103
|
+
timestamp: new Date().toISOString()
|
|
104
|
+
};
|
|
105
|
+
});
|
|
106
|
+
// GET /web/logs - Get all logs from all servers
|
|
107
|
+
fastify.get('/web/logs', async (request) => {
|
|
108
|
+
const query = logQuerySchema.parse(request.query);
|
|
109
|
+
const servers = logStorage.getServersWithLogs();
|
|
110
|
+
const allLogs = servers
|
|
111
|
+
.flatMap((serverId) => logStorage.getLogs(serverId, query))
|
|
112
|
+
.sort((a, b) => a.timestamp - b.timestamp);
|
|
113
|
+
// Apply pagination to all logs
|
|
114
|
+
const offset = query.offset || 0;
|
|
115
|
+
const limit = query.limit || allLogs.length;
|
|
116
|
+
return {
|
|
117
|
+
code: 200,
|
|
118
|
+
message: 'Success',
|
|
119
|
+
data: allLogs.slice(offset, offset + limit),
|
|
120
|
+
timestamp: new Date().toISOString()
|
|
121
|
+
};
|
|
122
|
+
});
|
|
123
|
+
// GET /web/servers/:id/logs/count - Get log count for a specific server
|
|
124
|
+
fastify.get('/web/servers/:id/logs/count', async (request) => {
|
|
125
|
+
const { id } = request.params;
|
|
126
|
+
const { level } = request.query;
|
|
127
|
+
let count = logStorage.getLogCount(id);
|
|
128
|
+
if (level) {
|
|
129
|
+
const validLevels = ['debug', 'info', 'warn', 'error'];
|
|
130
|
+
if (validLevels.includes(level)) {
|
|
131
|
+
count = logStorage.getLogs(id, { level: level }).length;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return {
|
|
135
|
+
code: 200,
|
|
136
|
+
message: 'Success',
|
|
137
|
+
data: { count },
|
|
138
|
+
timestamp: new Date().toISOString()
|
|
139
|
+
};
|
|
140
|
+
});
|
|
141
|
+
}
|