@loop_ouroboros/mcp-hub-lite 1.2.9 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/CHANGELOG.md +82 -0
  2. package/README.md +405 -331
  3. package/dist/client/assets/{HomeView-CGezWc0j.js → HomeView-DplI3V-h.js} +1 -1
  4. package/dist/client/assets/{ResourceDetailView-CDmWGdAK.css → ResourceDetailView-BkTSg91z.css} +1 -1
  5. package/dist/client/assets/ResourceDetailView-CeHPn99Y.js +1 -0
  6. package/dist/client/assets/ResourcesView-C1ObRhYS.js +1 -0
  7. package/dist/client/assets/ResourcesView-zgV8Nq7w.css +1 -0
  8. package/dist/client/assets/{ServerDashboard-g5p4VC_-.js → ServerDashboard-D7wG4Gvt.js} +1 -1
  9. package/dist/client/assets/{ServerDetail-DCQH8HIb.css → ServerDetail-CPNAFBPM.css} +1 -1
  10. package/dist/client/assets/ServerDetail-G23phOcJ.js +2 -0
  11. package/dist/client/assets/{ServerListView-DZsy2gaQ.js → ServerListView-BFiZLtPO.js} +1 -1
  12. package/dist/client/assets/{ServerStatusTags.vue_vue_type_script_setup_true_lang-DmGg4uuV.js → ServerStatusTags.vue_vue_type_script_setup_true_lang-Deb_SbFw.js} +1 -1
  13. package/dist/client/assets/SettingsView-QBFLZ6fP.js +1 -0
  14. package/dist/client/assets/ToolCallDialog-BQ9UJZ_-.css +1 -0
  15. package/dist/client/assets/ToolCallDialog-DYS-ADCL.js +1 -0
  16. package/dist/client/assets/ToolsView-DYwgtm7W.js +1 -0
  17. package/dist/client/assets/ToolsView-cO61nMNr.css +1 -0
  18. package/dist/client/assets/_baseClone-DQno9YO3.js +1 -0
  19. package/dist/client/assets/{el-form-item-CTsVV8sm.js → el-form-item-DF0zzQdH.js} +2 -2
  20. package/dist/client/assets/el-input-C_p2Qw42.js +1 -0
  21. package/dist/client/assets/el-loading-BaenpNzU.js +1 -0
  22. package/dist/client/assets/el-overlay-MbIUXSQ7.js +1 -0
  23. package/dist/client/assets/el-radio-group-COnCjCcz.js +1 -0
  24. package/dist/client/assets/el-skeleton-item-qj0eQP4s.js +1 -0
  25. package/dist/client/assets/el-switch-BZbXqB3_.js +1 -0
  26. package/dist/client/assets/el-tab-pane-w7RltRLd.js +1 -0
  27. package/dist/client/assets/el-table-column-OD8zhFcD.js +1 -0
  28. package/dist/client/assets/index-DwhULJXZ.js +2 -0
  29. package/dist/client/assets/{index-BNmwPGMT.css → index-UtsV0Cvh.css} +1 -1
  30. package/dist/client/assets/{omit-Btci9mp3.js → omit-BAJQlviJ.js} +1 -1
  31. package/dist/client/assets/raf-B1Ry7ruA.js +1 -0
  32. package/dist/client/assets/{vue-vendor-Dwcr0jep.js → vue-vendor-ClSvefnQ.js} +1 -1
  33. package/dist/client/index.html +3 -3
  34. package/dist/server/shared/models/constants.d.ts +8 -0
  35. package/dist/server/shared/models/constants.d.ts.map +1 -0
  36. package/dist/server/shared/models/constants.js +6 -0
  37. package/dist/server/shared/models/index.d.ts +1 -0
  38. package/dist/server/shared/models/index.d.ts.map +1 -1
  39. package/dist/server/shared/models/index.js +1 -0
  40. package/dist/server/shared/models/server.model.d.ts +14 -0
  41. package/dist/server/shared/models/server.model.d.ts.map +1 -1
  42. package/dist/server/shared/models/server.model.js +27 -4
  43. package/dist/server/shared/types/index.d.ts +0 -1
  44. package/dist/server/shared/types/index.d.ts.map +1 -1
  45. package/dist/server/shared/types/index.js +0 -1
  46. package/dist/server/src/api/mcp/debug-response-wrapper.js +1 -1
  47. package/dist/server/src/api/mcp/gateway.d.ts +10 -6
  48. package/dist/server/src/api/mcp/gateway.d.ts.map +1 -1
  49. package/dist/server/src/api/mcp/gateway.js +235 -87
  50. package/dist/server/src/api/web/hub-tools.d.ts.map +1 -1
  51. package/dist/server/src/api/web/hub-tools.js +11 -0
  52. package/dist/server/src/api/web/mcp-status.js +2 -2
  53. package/dist/server/src/api/web/search.d.ts +2 -16
  54. package/dist/server/src/api/web/search.d.ts.map +1 -1
  55. package/dist/server/src/api/web/search.js +22 -30
  56. package/dist/server/src/api/web/servers.js +1 -1
  57. package/dist/server/src/api/web/sessions.d.ts +1 -27
  58. package/dist/server/src/api/web/sessions.d.ts.map +1 -1
  59. package/dist/server/src/api/web/sessions.js +8 -97
  60. package/dist/server/src/api/ws/events.js +1 -1
  61. package/dist/server/src/api/ws/ws-handler.js +1 -1
  62. package/dist/server/src/app.d.ts.map +1 -1
  63. package/dist/server/src/app.js +6 -1
  64. package/dist/server/src/cli/commands/status.js +39 -1
  65. package/dist/server/src/cli/commands/tool-use.d.ts +10 -3
  66. package/dist/server/src/cli/commands/tool-use.d.ts.map +1 -1
  67. package/dist/server/src/cli/commands/tool-use.js +69 -30
  68. package/dist/server/src/cli/commands/use-guide.d.ts +0 -8
  69. package/dist/server/src/cli/commands/use-guide.d.ts.map +1 -1
  70. package/dist/server/src/cli/commands/use-guide.js +28 -170
  71. package/dist/server/src/cli/server.d.ts +10 -0
  72. package/dist/server/src/cli/server.d.ts.map +1 -1
  73. package/dist/server/src/cli/server.js +31 -1
  74. package/dist/server/src/config/config-change-logger.js +1 -1
  75. package/dist/server/src/config/config-loader.js +1 -1
  76. package/dist/server/src/config/config-manager.js +1 -1
  77. package/dist/server/src/config/config-migrator.d.ts +4 -48
  78. package/dist/server/src/config/config-migrator.d.ts.map +1 -1
  79. package/dist/server/src/config/config-migrator.js +2 -103
  80. package/dist/server/src/config/config-saver.js +1 -1
  81. package/dist/server/src/config/server-config-manager.js +1 -1
  82. package/dist/server/src/models/system-tools.constants.d.ts +2 -1
  83. package/dist/server/src/models/system-tools.constants.d.ts.map +1 -1
  84. package/dist/server/src/models/system-tools.constants.js +2 -1
  85. package/dist/server/src/pid/manager.js +1 -1
  86. package/dist/server/src/server/dev-server.js +4 -2
  87. package/dist/server/src/server/runner.d.ts.map +1 -1
  88. package/dist/server/src/server/runner.js +4 -2
  89. package/dist/server/src/server/startup.js +2 -2
  90. package/dist/server/src/services/connection/connection-manager.d.ts +2 -0
  91. package/dist/server/src/services/connection/connection-manager.d.ts.map +1 -1
  92. package/dist/server/src/services/connection/connection-manager.js +27 -25
  93. package/dist/server/src/services/connection/tool-cache.d.ts.map +1 -1
  94. package/dist/server/src/services/connection/tool-cache.js +10 -8
  95. package/dist/server/src/services/event-bus.service.d.ts +3 -1
  96. package/dist/server/src/services/event-bus.service.d.ts.map +1 -1
  97. package/dist/server/src/services/event-bus.service.js +1 -0
  98. package/dist/server/src/services/gateway/gateway.service.d.ts +14 -0
  99. package/dist/server/src/services/gateway/gateway.service.d.ts.map +1 -1
  100. package/dist/server/src/services/gateway/gateway.service.js +101 -7
  101. package/dist/server/src/services/gateway/global-transport.d.ts +20 -10
  102. package/dist/server/src/services/gateway/global-transport.d.ts.map +1 -1
  103. package/dist/server/src/services/gateway/global-transport.js +50 -34
  104. package/dist/server/src/services/gateway/request-handlers/call-tool-handler.d.ts +1 -2
  105. package/dist/server/src/services/gateway/request-handlers/call-tool-handler.d.ts.map +1 -1
  106. package/dist/server/src/services/gateway/request-handlers/call-tool-handler.js +24 -13
  107. package/dist/server/src/services/gateway/request-handlers/initialize-handler.d.ts.map +1 -1
  108. package/dist/server/src/services/gateway/request-handlers/initialize-handler.js +22 -6
  109. package/dist/server/src/services/gateway/request-handlers/resources-handler.d.ts.map +1 -1
  110. package/dist/server/src/services/gateway/request-handlers/resources-handler.js +12 -4
  111. package/dist/server/src/services/gateway/session-manager.d.ts +101 -0
  112. package/dist/server/src/services/gateway/session-manager.d.ts.map +1 -0
  113. package/dist/server/src/services/gateway/session-manager.js +256 -0
  114. package/dist/server/src/services/gateway/tool-list-generator.d.ts +14 -19
  115. package/dist/server/src/services/gateway/tool-list-generator.d.ts.map +1 -1
  116. package/dist/server/src/services/gateway/tool-list-generator.js +221 -80
  117. package/dist/server/src/services/hub-manager.service.d.ts.map +1 -1
  118. package/dist/server/src/services/hub-manager.service.js +15 -2
  119. package/dist/server/src/services/hub-tools/instance-selector.js +1 -1
  120. package/dist/server/src/services/hub-tools/resource-generator.d.ts +1 -22
  121. package/dist/server/src/services/hub-tools/resource-generator.d.ts.map +1 -1
  122. package/dist/server/src/services/hub-tools/resource-generator.js +24 -22
  123. package/dist/server/src/services/hub-tools/server-selector.js +1 -1
  124. package/dist/server/src/services/hub-tools.service.d.ts.map +1 -1
  125. package/dist/server/src/services/hub-tools.service.js +18 -13
  126. package/dist/server/src/services/log-storage.service.js +1 -1
  127. package/dist/server/src/services/system-tool-handler.js +1 -1
  128. package/dist/server/src/utils/error-handler.js +1 -1
  129. package/dist/server/src/utils/index.d.ts +1 -1
  130. package/dist/server/src/utils/index.d.ts.map +1 -1
  131. package/dist/server/src/utils/index.js +1 -1
  132. package/dist/server/src/utils/json-utils.d.ts +9 -0
  133. package/dist/server/src/utils/json-utils.d.ts.map +1 -1
  134. package/dist/server/src/utils/json-utils.js +23 -4
  135. package/dist/server/src/utils/log-rotator.d.ts +0 -15
  136. package/dist/server/src/utils/log-rotator.d.ts.map +1 -1
  137. package/dist/server/src/utils/log-rotator.js +0 -18
  138. package/dist/server/src/utils/logger/index.d.ts +1 -1
  139. package/dist/server/src/utils/logger/index.d.ts.map +1 -1
  140. package/dist/server/src/utils/logger/index.js +1 -1
  141. package/dist/server/src/utils/logger/log-context.d.ts +1 -0
  142. package/dist/server/src/utils/logger/log-context.d.ts.map +1 -1
  143. package/dist/server/src/utils/logger/log-formatter.d.ts.map +1 -1
  144. package/dist/server/src/utils/logger/log-formatter.js +25 -11
  145. package/dist/server/src/utils/logger/log-output.d.ts +17 -1
  146. package/dist/server/src/utils/logger/log-output.d.ts.map +1 -1
  147. package/dist/server/src/utils/logger/log-output.js +46 -40
  148. package/dist/server/src/utils/logger/logger.d.ts.map +1 -1
  149. package/dist/server/src/utils/logger/logger.js +18 -2
  150. package/dist/server/src/utils/port-checker.js +1 -1
  151. package/dist/server/src/utils/request-context.d.ts +8 -70
  152. package/dist/server/src/utils/request-context.d.ts.map +1 -1
  153. package/dist/server/src/utils/request-context.js +11 -70
  154. package/dist/server/src/utils/transports/stdio-transport.js +1 -1
  155. package/dist/server/src/utils/transports/streamable-http-transport.js +1 -1
  156. package/dist/server/src/utils/transports/transport-factory.d.ts.map +1 -1
  157. package/dist/server/src/utils/transports/transport-factory.js +26 -3
  158. package/dist/server/tests/contract/mcp-protocol/initialize.test.js +1 -1
  159. package/dist/server/tests/contract/mcp-protocol/tools-call.test.js +1 -1
  160. package/dist/server/tests/contract/mcp-protocol/tools-list.test.js +1 -1
  161. package/dist/server/tests/integration/gateway/fault-tolerance.test.js +1 -1
  162. package/dist/server/tests/integration/gateway/mcp-connection.test.js +1 -1
  163. package/dist/server/tests/types/logger-test-helpers.d.ts +1 -1
  164. package/dist/server/tests/types/logger-test-helpers.d.ts.map +1 -1
  165. package/dist/server/tests/unit/config/config-migrator.test.js +45 -105
  166. package/dist/server/tests/unit/config/config-saver.test.js +1 -1
  167. package/dist/server/tests/unit/config/config.schema.test.js +2 -1
  168. package/dist/server/tests/unit/server/runner.test.js +19 -13
  169. package/dist/server/tests/unit/services/gateway-logging.test.js +1 -1
  170. package/dist/server/tests/unit/services/gateway-session-mode.test.d.ts +2 -0
  171. package/dist/server/tests/unit/services/gateway-session-mode.test.d.ts.map +1 -0
  172. package/dist/server/tests/unit/services/gateway-session-mode.test.js +174 -0
  173. package/dist/server/tests/unit/services/hub-manager-service.test.js +4 -5
  174. package/dist/server/tests/unit/services/hub-tools.service.test.js +82 -6
  175. package/dist/server/tests/unit/utils/config.test.js +14 -7
  176. package/dist/server/tests/unit/utils/log-output.test.d.ts +2 -0
  177. package/dist/server/tests/unit/utils/log-output.test.d.ts.map +1 -0
  178. package/dist/server/tests/unit/utils/log-output.test.js +198 -0
  179. package/dist/server/tests/unit/utils/log-rotator.test.js +1 -15
  180. package/dist/server/tests/unit/utils/logger.test.js +1 -1
  181. package/dist/server/vitest.config.d.ts.map +1 -1
  182. package/dist/server/vitest.config.js +0 -2
  183. package/package.json +1 -3
  184. package/dist/client/assets/ResourceDetailView-Bi5UsbFq.js +0 -1
  185. package/dist/client/assets/ResourcesView-B9anSm85.js +0 -1
  186. package/dist/client/assets/ResourcesView-Cc8RHtia.css +0 -1
  187. package/dist/client/assets/ServerDetail-DMoFqWCp.js +0 -2
  188. package/dist/client/assets/SettingsView-DQSWb9xM.js +0 -1
  189. package/dist/client/assets/ToolCallDialog-BEyRp_J3.js +0 -1
  190. package/dist/client/assets/ToolCallDialog-BhdPX-Kf.css +0 -1
  191. package/dist/client/assets/ToolsView-BU7PKJwt.js +0 -1
  192. package/dist/client/assets/ToolsView-BkrQLjH9.css +0 -1
  193. package/dist/client/assets/_baseClone-DsVtZfPm.js +0 -1
  194. package/dist/client/assets/el-input-Bh1VGJTU.js +0 -1
  195. package/dist/client/assets/el-loading-huOeK9cW.js +0 -1
  196. package/dist/client/assets/el-overlay-CR_KVhLU.js +0 -1
  197. package/dist/client/assets/el-radio-group-BSbtAW4k.js +0 -1
  198. package/dist/client/assets/el-skeleton-item-BSxOLPFM.js +0 -1
  199. package/dist/client/assets/el-switch-BaQUQWTL.js +0 -1
  200. package/dist/client/assets/el-tab-pane-9JxLgdS7.js +0 -1
  201. package/dist/client/assets/el-table-column-Du1l9Ww3.js +0 -1
  202. package/dist/client/assets/index-CsZoFRv1.js +0 -2
  203. package/dist/client/assets/raf-tUu4BwZS.js +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../../../../src/services/connection/connection-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connection-manager.d.ts","sourceRoot":"","sources":["../../../../../src/services/connection/connection-manager.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@ import { Client } from '@modelcontextprotocol/sdk/client/index.js';
2
2
  import { TransportFactory } from '../../utils/transports/transport-factory.js';
3
3
  import { UnauthorizedError, auth } from '@modelcontextprotocol/sdk/client/auth.js';
4
4
  import { StreamableHttpTransport } from '../../utils/transports/streamable-http-transport.js';
5
- import { logger, LOG_MODULES, formatMcpMessageForLogging, logNotificationMessage } from '../../utils/logger.js';
5
+ import { logger, LOG_MODULES, formatMcpMessageForLogging, logNotificationMessage } from '../../utils/logger/index.js';
6
6
  import { getAppVersion } from '../../utils/version.js';
7
7
  import { getMcpCommDebugSetting } from '../../utils/json-utils.js';
8
8
  import { logStorage } from '../log-storage.service.js';
@@ -117,7 +117,7 @@ export class McpConnectionManager {
117
117
  // 4. Get server info
118
118
  const serverInfo = this.getServerInfo(serverId);
119
119
  // 5. Create transport and set up callbacks
120
- const { transport, pid } = this.initializeTransport(server, serverInfo, compositeKey, serverName, serverIndex, oauthProvider ?? undefined);
120
+ const { transport } = this.initializeTransport(server, serverInfo, compositeKey, serverName, serverIndex, oauthProvider ?? undefined);
121
121
  // Capture OAuth provider from the transport (reuse across retries)
122
122
  if (!oauthProvider && transport instanceof StreamableHttpTransport) {
123
123
  const provider = transport.getOAuthProvider();
@@ -134,16 +134,28 @@ export class McpConnectionManager {
134
134
  }
135
135
  // 6. Establish client connection
136
136
  const client = await this.establishClientConnection(transport);
137
- // 7. Register connection
137
+ // 7. Extract PID after transport is started
138
+ const pid = (() => {
139
+ if ('pid' in transport && typeof transport.pid === 'number') {
140
+ return transport.pid;
141
+ }
142
+ return undefined;
143
+ })();
144
+ // 8. Register connection
138
145
  this.registerConnection(compositeKey, serverName, client, transport);
139
- // 8. Update connected status
146
+ // 9. Update connected status
140
147
  this.updateConnectedStatus(compositeKey, client, pid);
141
148
  // 9. Publish connection events
142
149
  this.publishConnectionEvents(serverName, serverIndex);
143
- // 10. Refresh resources
144
- await this.refreshServerResources(serverName, serverIndex, server.type);
145
- // 11. Request log notifications from downstream server
146
- await this.requestLoggingFromServer(compositeKey, client, server.type);
150
+ // 10. Refresh tools and resources (skip resources if server capability is absent)
151
+ const capabilities = typeof client.getServerCapabilities === 'function'
152
+ ? client.getServerCapabilities()
153
+ : undefined;
154
+ await this.refreshServerResources(serverName, serverIndex, !capabilities?.resources);
155
+ // 11. Request log notifications from downstream server (only if logging capability present)
156
+ if (capabilities?.logging) {
157
+ await this.requestLoggingFromServer(compositeKey, client);
158
+ }
147
159
  return true;
148
160
  }
149
161
  catch (error) {
@@ -249,7 +261,7 @@ export class McpConnectionManager {
249
261
  transport.send = async (message, options) => {
250
262
  try {
251
263
  const logMessage = formatMcpMessageForLogging(message);
252
- logger.debug(`MCP message sent: ${logMessage}`, LOG_MODULES.CONNECTION_MANAGER);
264
+ logger.debug(`MCP message sent to [${compositeKey}]: ${logMessage}`, LOG_MODULES.CONNECTION_MANAGER);
253
265
  }
254
266
  catch {
255
267
  logger.debug(`MCP message sent: [Error formatting response]`, LOG_MODULES.CONNECTION_MANAGER);
@@ -308,12 +320,7 @@ export class McpConnectionManager {
308
320
  logStorage.append(compositeKey, 'error', `[${serverName}] [STDERR] ${data}`);
309
321
  };
310
322
  }
311
- // Get PID if available (only for stdio transport)
312
- let pid;
313
- if ('pid' in transport && typeof transport.pid === 'number') {
314
- pid = transport.pid;
315
- }
316
- return { transport, pid };
323
+ return { transport };
317
324
  }
318
325
  /**
319
326
  * Creates Client and connects to transport.
@@ -377,14 +384,12 @@ export class McpConnectionManager {
377
384
  }
378
385
  /**
379
386
  * Refreshes server tools and resources (only for bidirectional transports).
387
+ *
388
+ * @param skipResources - Skip resources/list request when server doesn't support resources capability
380
389
  */
381
- async refreshServerResources(serverName, serverIndex, serverType) {
382
- if (serverType === 'sse') {
383
- logger.info('SSE transport is unidirectional, skipping tool/resource refresh', LOG_MODULES.CONNECTION_MANAGER);
384
- return;
385
- }
390
+ async refreshServerResources(serverName, serverIndex, skipResources = false) {
386
391
  const tools = await this.refreshTools(serverName, serverIndex);
387
- const resources = await this.refreshResources(serverName, serverIndex);
392
+ const resources = skipResources ? [] : await this.refreshResources(serverName, serverIndex);
388
393
  eventBus.publish(EventTypes.TOOLS_UPDATED, {
389
394
  serverName,
390
395
  serverIndex,
@@ -400,10 +405,7 @@ export class McpConnectionManager {
400
405
  * Sends logging/setLevel request to downstream server to start receiving log notifications.
401
406
  * This is a best-effort request — servers that don't support logging will silently ignore it.
402
407
  */
403
- async requestLoggingFromServer(compositeKey, client, serverType) {
404
- // SSE is unidirectional — cannot send requests to the server
405
- if (serverType === 'sse')
406
- return;
408
+ async requestLoggingFromServer(compositeKey, client) {
407
409
  try {
408
410
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
409
411
  await client.request({ method: 'logging/setLevel', params: { level: 'info' } }, { timeout: 5000 });
@@ -1 +1 @@
1
- {"version":3,"file":"tool-cache.d.ts","sourceRoot":"","sources":["../../../../../src/services/connection/tool-cache.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAIzD;;;;;;GAMG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,mBAAmB,CAAkC;IAC7D,OAAO,CAAC,qBAAqB,CAAkC;IAE/D;;;;;OAKG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAI9D;;;;OAIG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI3C;;;;OAIG;IACH,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IASjD;;;;;OAKG;IACH,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIvD;;;;;OAKG;IACH,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAS/C;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;IAWtE;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE;IAWzD;;;;;OAKG;IACH,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE;IAIhD;;;;;;OAMG;IACH,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAM/D;;;;OAIG;IACH,WAAW,IAAI,IAAI,EAAE;IAQrB;;;;OAIG;IACH,uBAAuB,IAAI,IAAI,EAAE;IAQjC;;;;OAIG;IACH,mBAAmB,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;IAIzC;;;;;;OAMG;IACH,OAAO,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAI7C;;;;;OAKG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAWzD;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAiB7B;;;;OAIG;IACH,IAAI,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAE3C;CACF"}
1
+ {"version":3,"file":"tool-cache.d.ts","sourceRoot":"","sources":["../../../../../src/services/connection/tool-cache.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,8BAA8B,CAAC;AAIzD;;;;;;GAMG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,SAAS,CAAkC;IACnD,OAAO,CAAC,mBAAmB,CAAkC;IAC7D,OAAO,CAAC,qBAAqB,CAAkC;IAE/D;;;;;OAKG;IACH,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,IAAI;IAI9D;;;;OAIG;IACH,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI3C;;;;OAIG;IACH,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IASjD;;;;;OAKG;IACH,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIvD;;;;;OAKG;IACH,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAS/C;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,IAAI;IAWtE;;;;;;OAMG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,EAAE;IAWzD;;;;;OAKG;IACH,oBAAoB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,EAAE;IAIhD;;;;;;OAMG;IACH,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAM/D;;;;OAIG;IACH,WAAW,IAAI,IAAI,EAAE;IAIrB;;;;OAIG;IACH,uBAAuB,IAAI,IAAI,EAAE;IAQjC;;;;OAIG;IACH,mBAAmB,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE;IAIzC;;;;;;OAMG;IACH,OAAO,IAAI,gBAAgB,CAAC,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAI7C;;;;;OAKG;IACH,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI;IAWzD;;;;;OAKG;IACH,OAAO,CAAC,qBAAqB;IAuB7B;;;;OAIG;IACH,IAAI,iBAAiB,IAAI,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAE3C;CACF"}
@@ -1,4 +1,4 @@
1
- import { logger, LOG_MODULES } from '../../utils/logger.js';
1
+ import { logger, LOG_MODULES } from '../../utils/logger/index.js';
2
2
  import { getCompositeKey } from '../../utils/composite-key.js';
3
3
  import { normalizeToolName } from '../../utils/name-converter.js';
4
4
  /**
@@ -119,11 +119,7 @@ export class ToolCache {
119
119
  * @returns Array of all tools from all servers
120
120
  */
121
121
  getAllTools() {
122
- const allTools = [];
123
- for (const tools of this.toolCache.values()) {
124
- allTools.push(...tools);
125
- }
126
- return allTools;
122
+ return this.getAllToolsByServerName();
127
123
  }
128
124
  /**
129
125
  * Gets all tools from the server name-level cache.
@@ -174,13 +170,19 @@ export class ToolCache {
174
170
  * @param serverName - The server name to update
175
171
  */
176
172
  updateServerNameCache(serverName) {
177
- const allToolsForServer = [];
173
+ const toolMap = new Map();
178
174
  for (const [compositeKey, cachedTools] of this.toolCache.entries()) {
179
175
  const instanceServerName = this.getServerNameById(compositeKey);
180
176
  if (instanceServerName === serverName) {
181
- allToolsForServer.push(...cachedTools);
177
+ for (const tool of cachedTools) {
178
+ const key = normalizeToolName(tool.name);
179
+ if (!toolMap.has(key)) {
180
+ toolMap.set(key, tool);
181
+ }
182
+ }
182
183
  }
183
184
  }
185
+ const allToolsForServer = Array.from(toolMap.values());
184
186
  if (allToolsForServer.length > 0) {
185
187
  this.serverNameToolCache.set(serverName, allToolsForServer);
186
188
  }
@@ -22,7 +22,7 @@
22
22
  * automatically manages memory by cleaning up empty event type entries when all listeners
23
23
  * are unsubscribed.
24
24
  */
25
- import type { EventData } from '../models/event.model.js';
25
+ type EventData = unknown;
26
26
  /**
27
27
  * Interface representing a published event with its type and associated data.
28
28
  *
@@ -154,6 +154,7 @@ export declare const EventTypes: {
154
154
  readonly SERVER_INSTANCE_UPDATED: "server-instance-updated";
155
155
  readonly SERVER_INSTANCE_DELETED: "server-instance-deleted";
156
156
  readonly TOOLS_UPDATED: "tools";
157
+ readonly AGGREGATED_TOOLS_CHANGED: "aggregated-tools-changed";
157
158
  readonly TOOL_CALL_STARTED: "tool-call-started";
158
159
  readonly TOOL_CALL_COMPLETED: "tool-call-completed";
159
160
  readonly TOOL_CALL_ERROR: "tool-call-error";
@@ -162,4 +163,5 @@ export declare const EventTypes: {
162
163
  readonly CONFIGURATION_UPDATED: "configuration-updated";
163
164
  };
164
165
  export declare const eventBus: EventBusService;
166
+ export {};
165
167
  //# sourceMappingURL=event-bus.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-bus.service.d.ts","sourceRoot":"","sources":["../../../../src/services/event-bus.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAqD;IAEtE;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAajD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,GAAG,MAAM,IAAI;IAU7E;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,WAAW;IAWnB;;;;;;;;;;;;;;OAcG;IACH,cAAc,IAAI,IAAI;IAItB;;;;;;;;;;;;;;OAcG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;;;;;;;;;;;;;;OAeG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAI5C;AAGD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;CA4Bb,CAAC;AAGX,eAAO,MAAM,QAAQ,iBAAwB,CAAC"}
1
+ {"version":3,"file":"event-bus.service.d.ts","sourceRoot":"","sources":["../../../../src/services/event-bus.service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,KAAK,SAAS,GAAG,OAAO,CAAC;AAEzB;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;CACjB;AAED,qBAAa,eAAe;IAC1B,OAAO,CAAC,SAAS,CAAqD;IAEtE;;;;;;;;;;;;;;;;OAgBG;IACH,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAajD;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,GAAG,MAAM,IAAI;IAU7E;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,WAAW;IAWnB;;;;;;;;;;;;;;OAcG;IACH,cAAc,IAAI,IAAI;IAItB;;;;;;;;;;;;;;OAcG;IACH,aAAa,IAAI,MAAM,EAAE;IAIzB;;;;;;;;;;;;;;;OAeG;IACH,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;CAI5C;AAGD,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;CA6Bb,CAAC;AAGX,eAAO,MAAM,QAAQ,iBAAwB,CAAC"}
@@ -181,6 +181,7 @@ export const EventTypes = {
181
181
  SERVER_INSTANCE_DELETED: 'server-instance-deleted',
182
182
  // Tool related events
183
183
  TOOLS_UPDATED: 'tools',
184
+ AGGREGATED_TOOLS_CHANGED: 'aggregated-tools-changed',
184
185
  TOOL_CALL_STARTED: 'tool-call-started',
185
186
  TOOL_CALL_COMPLETED: 'tool-call-completed',
186
187
  TOOL_CALL_ERROR: 'tool-call-error',
@@ -23,6 +23,7 @@ export declare class GatewayService {
23
23
  private transport;
24
24
  private readonly appVersion;
25
25
  constructor();
26
+ private initToolCache;
26
27
  private createServerWithHandlers;
27
28
  private registerHandlers;
28
29
  /**
@@ -52,6 +53,19 @@ export declare class GatewayService {
52
53
  * @returns {McpServer} New MCP server instance with all handlers registered
53
54
  */
54
55
  createConnectionServer(): McpServer;
56
+ /**
57
+ * Returns the singleton McpServer instance used for HTTP transport.
58
+ */
59
+ getServer(): McpServer;
60
+ /**
61
+ * Subscribes to EventBus events and pushes MCP notifications
62
+ * (notifications/resources/list_changed, notifications/tools/list_changed)
63
+ * to connected SSE clients via the singleton transport.
64
+ *
65
+ * Tools are aggregated by ServerName (multi-instance deduplication).
66
+ * Resources are per-instance (Category 1: hub://servers/{name}, Category 2: hub://servers/{name}/{idx}/{path}).
67
+ */
68
+ private initNotifications;
55
69
  /**
56
70
  * Starts the MCP gateway service on stdio transport.
57
71
  *
@@ -1 +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;AAepE,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE5D,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;;IAOpC,OAAO,CAAC,wBAAwB;IA2BhC,OAAO,CAAC,gBAAgB;IAuDxB;;;;;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;IAI1C;;;;OAIG;IACU,KAAK;CAKnB;AAED,eAAO,MAAM,OAAO,gBAAuB,CAAC"}
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;AAwBpE,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE5D,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,SAAS,CAAqC;IACtD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;;IASpC,OAAO,CAAC,aAAa;IA0BrB,OAAO,CAAC,wBAAwB;IA2BhC,OAAO,CAAC,gBAAgB;IAkDxB;;;;;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;IAI1C;;OAEG;IACI,SAAS,IAAI,SAAS;IAI7B;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;IAgEzB;;;;OAIG;IACU,KAAK;CAKnB;AAED,eAAO,MAAM,OAAO,gBAAuB,CAAC"}
@@ -24,7 +24,11 @@ import { getGatewayDebugSetting } from '../../utils/json-utils.js';
24
24
  import { MCP_HUB_LITE_SERVER } from '../../models/system-tools.constants.js';
25
25
  import { registerInitializeHandlers, registerResourcesHandlers, registerSystemToolsHandlers, registerCallToolHandler } from './request-handlers/index.js';
26
26
  import { getAppVersion } from '../../utils/version.js';
27
- import { generateGatewayToolsList } from './tool-list-generator.js';
27
+ import { eventBus, EventTypes } from '../event-bus.service.js';
28
+ import { hubManager } from '../hub-manager.service.js';
29
+ import { mcpConnectionManager } from '../connection/index.js';
30
+ import { sessionManager } from './session-manager.js';
31
+ import { generateGatewayToolsList, rebuildFromScratch, addToCache, removeFromCache } from './tool-list-generator.js';
28
32
  import { formatToolArgs, formatToolResponse } from './log-formatter.js';
29
33
  export class GatewayService {
30
34
  server;
@@ -33,6 +37,32 @@ export class GatewayService {
33
37
  constructor() {
34
38
  this.appVersion = getAppVersion();
35
39
  this.server = this.createServerWithHandlers();
40
+ this.initToolCache();
41
+ this.initNotifications();
42
+ }
43
+ initToolCache() {
44
+ rebuildFromScratch();
45
+ eventBus.subscribe(EventTypes.TOOLS_UPDATED, (rawData) => {
46
+ const data = rawData;
47
+ const serverConfig = hubManager.getServerByName(data.serverName);
48
+ if (serverConfig?.template?.aggregatedTools?.length) {
49
+ rebuildFromScratch();
50
+ }
51
+ });
52
+ eventBus.subscribe(EventTypes.SERVER_DISCONNECTED, (rawData) => {
53
+ const data = rawData;
54
+ const serverConfig = hubManager.getServerByName(data.serverName);
55
+ if (!serverConfig || serverConfig.template?.aggregatedTools?.length) {
56
+ rebuildFromScratch();
57
+ }
58
+ });
59
+ eventBus.subscribe(EventTypes.AGGREGATED_TOOLS_CHANGED, (rawData) => {
60
+ const data = rawData;
61
+ if (data.added.length > 0)
62
+ addToCache(data.name, data.added);
63
+ if (data.removed.length > 0)
64
+ removeFromCache(data.name, data.removed);
65
+ });
36
66
  }
37
67
  createServerWithHandlers() {
38
68
  if (getGatewayDebugSetting()) {
@@ -60,11 +90,6 @@ export class GatewayService {
60
90
  if (getGatewayDebugSetting()) {
61
91
  logger.debug('Registering handlers on MCP server', LOG_MODULES.GATEWAY_SERVICE);
62
92
  }
63
- // Local toolMap for this connection
64
- const toolMap = new Map();
65
- if (getGatewayDebugSetting()) {
66
- logger.debug('Created local toolMap for connection', LOG_MODULES.GATEWAY_SERVICE);
67
- }
68
93
  try {
69
94
  registerInitializeHandlers(server);
70
95
  if (getGatewayDebugSetting()) {
@@ -96,7 +121,7 @@ export class GatewayService {
96
121
  throw error;
97
122
  }
98
123
  try {
99
- registerCallToolHandler(server, toolMap);
124
+ registerCallToolHandler(server);
100
125
  if (getGatewayDebugSetting()) {
101
126
  logger.debug('Call tool handler registered successfully', LOG_MODULES.GATEWAY_SERVICE);
102
127
  }
@@ -144,6 +169,75 @@ export class GatewayService {
144
169
  createConnectionServer() {
145
170
  return this.createServerWithHandlers();
146
171
  }
172
+ /**
173
+ * Returns the singleton McpServer instance used for HTTP transport.
174
+ */
175
+ getServer() {
176
+ return this.server;
177
+ }
178
+ /**
179
+ * Subscribes to EventBus events and pushes MCP notifications
180
+ * (notifications/resources/list_changed, notifications/tools/list_changed)
181
+ * to connected SSE clients via the singleton transport.
182
+ *
183
+ * Tools are aggregated by ServerName (multi-instance deduplication).
184
+ * Resources are per-instance (Category 1: hub://servers/{name}, Category 2: hub://servers/{name}/{idx}/{path}).
185
+ */
186
+ initNotifications() {
187
+ // --- Resources list_changed ---
188
+ // Category 1: new/removed server config
189
+ eventBus.subscribe(EventTypes.SERVER_ADDED, () => {
190
+ sessionManager.broadcastNotification('resources');
191
+ });
192
+ eventBus.subscribe(EventTypes.SERVER_DELETED, () => {
193
+ sessionManager.broadcastNotification('resources');
194
+ });
195
+ // Category 1 + 2: any instance connect/disconnect changes resource list
196
+ eventBus.subscribe(EventTypes.SERVER_CONNECTED, () => {
197
+ sessionManager.broadcastNotification('resources');
198
+ });
199
+ eventBus.subscribe(EventTypes.SERVER_DISCONNECTED, () => {
200
+ sessionManager.broadcastNotification('resources');
201
+ });
202
+ // Category 2: backend server resources refreshed
203
+ eventBus.subscribe(EventTypes.RESOURCES_UPDATED, () => {
204
+ sessionManager.broadcastNotification('resources');
205
+ });
206
+ // --- Tools list_changed ---
207
+ // Only notify when the first instance connects or last instance disconnects
208
+ eventBus.subscribe(EventTypes.SERVER_CONNECTED, (rawData) => {
209
+ const data = rawData;
210
+ const indexes = mcpConnectionManager.getConnectedIndexes(data.serverName);
211
+ if (indexes.length === 1) {
212
+ const serverConfig = hubManager.getServerByName(data.serverName);
213
+ if (serverConfig?.template?.aggregatedTools?.length) {
214
+ sessionManager.broadcastNotification('tools');
215
+ }
216
+ }
217
+ });
218
+ eventBus.subscribe(EventTypes.SERVER_DISCONNECTED, (rawData) => {
219
+ const data = rawData;
220
+ const indexes = mcpConnectionManager.getConnectedIndexes(data.serverName);
221
+ if (indexes.length === 0) {
222
+ const serverConfig = hubManager.getServerByName(data.serverName);
223
+ if (serverConfig?.template?.aggregatedTools?.length) {
224
+ sessionManager.broadcastNotification('tools');
225
+ }
226
+ }
227
+ });
228
+ // Backend server tools refreshed while connected
229
+ eventBus.subscribe(EventTypes.TOOLS_UPDATED, (rawData) => {
230
+ const data = rawData;
231
+ const serverConfig = hubManager.getServerByName(data.serverName);
232
+ if (serverConfig?.template?.aggregatedTools?.length) {
233
+ sessionManager.broadcastNotification('tools');
234
+ }
235
+ });
236
+ // Aggregated tools config changed
237
+ eventBus.subscribe(EventTypes.AGGREGATED_TOOLS_CHANGED, () => {
238
+ sessionManager.broadcastNotification('tools');
239
+ });
240
+ }
147
241
  /**
148
242
  * Starts the MCP gateway service on stdio transport.
149
243
  *
@@ -1,19 +1,29 @@
1
1
  /**
2
- * MCP transport factory for per-request transport instances.
2
+ * MCP transport utilities stateful session-based mode.
3
3
  *
4
- * This module provides a factory function to create isolated MCP transport and server instances
5
- * for each HTTP request, ensuring proper state isolation between concurrent clients.
4
+ * Each client session owns a StreamableHTTPServerTransport + McpServer pair.
5
+ * SDK's stateful mode (sessionIdGenerator) handles SSE stream setup and session management.
6
+ * Notifications are broadcast via SessionManager across all active sessions.
6
7
  */
7
8
  import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
8
9
  /**
9
- * Creates a new MCP transport and server instance for a single request session.
10
- * Each call returns isolated instances that should be cleaned up after the request completes.
11
- *
12
- * @returns {Promise<{ transport: StreamableHTTPServerTransport, server: import('@modelcontextprotocol/sdk/server/mcp.js').McpServer }>}
13
- * Object containing the transport and server instances
10
+ * Sets up debug logging on a transport instance.
11
+ */
12
+ export declare function setupTransportLogging(transport: StreamableHTTPServerTransport): void;
13
+ /**
14
+ * Initializes the global transport layer.
15
+ * With stateful session-based transport, this is a no-op.
16
+ * Kept for backward compatibility with app.ts startup sequence.
17
+ */
18
+ export declare function initGlobalTransport(): void;
19
+ /**
20
+ * Creates a new MCP transport and server instance for a single request (stateless mode).
21
+ * Each call returns isolated instances that should be GC'd after the request completes.
22
+ * This restores the v1.3.0 per-request transport pattern for clients like CherryStudio
23
+ * that do not properly support stateful sessions.
14
24
  */
15
- export declare function createSessionTransport(): Promise<{
25
+ export declare function createPerRequestTransport(): Promise<{
16
26
  transport: StreamableHTTPServerTransport;
17
- server: import("@modelcontextprotocol/sdk/server/mcp").McpServer;
27
+ server: import('@modelcontextprotocol/sdk/server/mcp.js').McpServer;
18
28
  }>;
19
29
  //# sourceMappingURL=global-transport.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"global-transport.d.ts","sourceRoot":"","sources":["../../../../../src/services/gateway/global-transport.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAUnG;;;;;;GAMG;AACH,wBAAsB,sBAAsB;;;GAqE3C"}
1
+ {"version":3,"file":"global-transport.d.ts","sourceRoot":"","sources":["../../../../../src/services/gateway/global-transport.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,6BAA6B,EAAE,MAAM,oDAAoD,CAAC;AAuBnG;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,6BAA6B,GAAG,IAAI,CAmCpF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,IAAI,CAI1C;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,IAAI,OAAO,CAAC;IACzD,SAAS,EAAE,6BAA6B,CAAC;IACzC,MAAM,EAAE,OAAO,yCAAyC,EAAE,SAAS,CAAC;CACrE,CAAC,CAWD"}
@@ -1,72 +1,88 @@
1
1
  /**
2
- * MCP transport factory for per-request transport instances.
2
+ * MCP transport utilities stateful session-based mode.
3
3
  *
4
- * This module provides a factory function to create isolated MCP transport and server instances
5
- * for each HTTP request, ensuring proper state isolation between concurrent clients.
4
+ * Each client session owns a StreamableHTTPServerTransport + McpServer pair.
5
+ * SDK's stateful mode (sessionIdGenerator) handles SSE stream setup and session management.
6
+ * Notifications are broadcast via SessionManager across all active sessions.
6
7
  */
7
8
  import { StreamableHTTPServerTransport } from '@modelcontextprotocol/sdk/server/streamableHttp.js';
8
- import { gateway } from './gateway.service.js';
9
9
  import { logger, LOG_MODULES } from '../../utils/logger/index.js';
10
10
  import { stringifyForLogging, getMcpCommDebugSetting, getGatewayDebugSetting } from '../../utils/json-utils.js';
11
11
  import { formatMcpMessageForLogging, logNotificationMessage } from '../../utils/logger/log-output.js';
12
+ import { gateway } from './gateway.service.js';
12
13
  /**
13
- * Creates a new MCP transport and server instance for a single request session.
14
- * Each call returns isolated instances that should be cleaned up after the request completes.
15
- *
16
- * @returns {Promise<{ transport: StreamableHTTPServerTransport, server: import('@modelcontextprotocol/sdk/server/mcp.js').McpServer }>}
17
- * Object containing the transport and server instances
14
+ * Build log options from trace context stored on transport.
15
+ * Trace context is injected by gateway.ts before handleRequest() as an ALS fallback
16
+ * because the MCP SDK defers send()/onmessage calls and ALS context is lost.
18
17
  */
19
- export async function createSessionTransport() {
20
- const transport = new StreamableHTTPServerTransport();
21
- const server = gateway.createConnectionServer();
22
- // Set up message logging (use empty string for sessionId in per-request mode)
18
+ function traceLogOpts(transport) {
19
+ const ctx = transport;
20
+ const sid = ctx._traceSessionId;
21
+ const tid = ctx._traceId;
22
+ if (!sid && !tid)
23
+ return LOG_MODULES.COMMUNICATION;
24
+ return { module: 'Communication', ...(sid && { sessionId: sid }), ...(tid && { traceId: tid }) };
25
+ }
26
+ /**
27
+ * Sets up debug logging on a transport instance.
28
+ */
29
+ export function setupTransportLogging(transport) {
23
30
  transport.onmessage = (message) => {
24
31
  try {
25
32
  if (getMcpCommDebugSetting()) {
26
- logger.debug(`Session transport onmessage called with: ${stringifyForLogging(message)}`, LOG_MODULES.COMMUNICATION);
33
+ const opts = traceLogOpts(transport);
34
+ logger.debug(`Transport onmessage: ${stringifyForLogging(message)}`, opts);
27
35
  const logMessage = formatMcpMessageForLogging(message);
28
- logger.debug(`MCP message received: ${logMessage}`, LOG_MODULES.COMMUNICATION);
36
+ logger.debug(`MCP message received: ${logMessage}`, opts);
29
37
  }
30
- logNotificationMessage(message, ''); // Empty sessionId for per-request
38
+ logNotificationMessage(message, '');
31
39
  if (getGatewayDebugSetting()) {
32
- logger.debug(`Session transport onmessage completed successfully`, LOG_MODULES.GATEWAY);
40
+ logger.debug('Transport onmessage completed', LOG_MODULES.GATEWAY);
33
41
  }
34
42
  }
35
43
  catch (error) {
36
44
  const errorMessage = error instanceof Error ? error.message : String(error);
37
- logger.error(`Error in session transport onmessage handler: ${errorMessage}`, LOG_MODULES.GATEWAY);
45
+ logger.error(`Error in transport onmessage: ${errorMessage}`, LOG_MODULES.GATEWAY);
38
46
  logger.error(`Message that caused error: ${stringifyForLogging(message)}`, LOG_MODULES.GATEWAY);
39
47
  }
40
48
  };
41
- // Wrap send method for debug logging
42
49
  if (getMcpCommDebugSetting()) {
43
50
  const originalSend = transport.send;
44
51
  transport.send = async (message, options) => {
45
52
  try {
46
53
  const logMessage = formatMcpMessageForLogging(message);
47
- logger.debug(`MCP message sent: ${logMessage}`, LOG_MODULES.COMMUNICATION);
54
+ logger.debug(`MCP message sent: ${logMessage}`, traceLogOpts(transport));
48
55
  }
49
56
  catch {
50
- logger.debug(`MCP message sent: [Error formatting response]`, LOG_MODULES.COMMUNICATION);
57
+ logger.debug('MCP message sent: [Error formatting response]', LOG_MODULES.COMMUNICATION);
51
58
  }
52
59
  return await originalSend.call(transport, message, options);
53
60
  };
54
61
  }
55
- // Connect server to transport
62
+ }
63
+ /**
64
+ * Initializes the global transport layer.
65
+ * With stateful session-based transport, this is a no-op.
66
+ * Kept for backward compatibility with app.ts startup sequence.
67
+ */
68
+ export function initGlobalTransport() {
56
69
  if (getGatewayDebugSetting()) {
57
- logger.debug('About to connect session server to transport', LOG_MODULES.GATEWAY);
58
- }
59
- try {
60
- await server.connect(transport);
61
- if (getGatewayDebugSetting()) {
62
- logger.debug('MCP session transport initialized (per-request mode)', LOG_MODULES.GATEWAY);
63
- }
70
+ logger.debug('Global transport layer initialized (stateful session mode)', LOG_MODULES.GATEWAY);
64
71
  }
65
- catch (error) {
66
- const errorMessage = error instanceof Error ? error.message : String(error);
67
- logger.error(`Failed to connect session server to transport: ${errorMessage}`, LOG_MODULES.GATEWAY);
68
- logger.error(`Transport connection error details: ${stringifyForLogging(error)}`, LOG_MODULES.GATEWAY);
69
- throw error;
72
+ }
73
+ /**
74
+ * Creates a new MCP transport and server instance for a single request (stateless mode).
75
+ * Each call returns isolated instances that should be GC'd after the request completes.
76
+ * This restores the v1.3.0 per-request transport pattern for clients like CherryStudio
77
+ * that do not properly support stateful sessions.
78
+ */
79
+ export async function createPerRequestTransport() {
80
+ const transport = new StreamableHTTPServerTransport();
81
+ const server = gateway.createConnectionServer();
82
+ setupTransportLogging(transport);
83
+ await server.connect(transport);
84
+ if (getGatewayDebugSetting()) {
85
+ logger.debug('MCP per-request transport initialized (stateless mode)', LOG_MODULES.GATEWAY);
70
86
  }
71
87
  return { transport, server };
72
88
  }
@@ -2,12 +2,11 @@
2
2
  * Call tool request handler for Gateway service.
3
3
  */
4
4
  import type { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
5
- import type { ToolMapEntry } from '../types.js';
6
5
  /**
7
6
  * Register call tool handler on the MCP server.
8
7
  *
9
8
  * @param server - MCP server instance to register handlers on
10
9
  * @param toolMap - Tool map for routing tool calls
11
10
  */
12
- export declare function registerCallToolHandler(server: McpServer, toolMap: Map<string, ToolMapEntry>): void;
11
+ export declare function registerCallToolHandler(server: McpServer): void;
13
12
  //# sourceMappingURL=call-tool-handler.d.ts.map
@@ -1 +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;AAgFhD;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,GACjC,IAAI,CA8FN"}
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;AA4FzE;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAwG/D"}