@1mcp/agent 0.10.3 → 0.12.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.
Files changed (147) hide show
  1. package/README.md +41 -17
  2. package/build/auth/authManager.d.ts +109 -0
  3. package/build/auth/authManager.d.ts.map +1 -0
  4. package/build/auth/authManager.js +173 -0
  5. package/build/auth/authManager.js.map +1 -0
  6. package/build/auth/authMiddleware.d.ts +16 -0
  7. package/build/auth/authMiddleware.d.ts.map +1 -0
  8. package/build/auth/authMiddleware.js +45 -0
  9. package/build/auth/authMiddleware.js.map +1 -0
  10. package/build/auth/sessionManager.d.ts +197 -0
  11. package/build/auth/sessionManager.d.ts.map +1 -0
  12. package/build/auth/sessionManager.js +408 -0
  13. package/build/auth/sessionManager.js.map +1 -0
  14. package/build/capabilities/capabilityManager.d.ts +1 -1
  15. package/build/capabilities/capabilityManager.d.ts.map +1 -1
  16. package/build/capabilities/capabilityManager.js +39 -6
  17. package/build/capabilities/capabilityManager.js.map +1 -1
  18. package/build/config/configManager.d.ts +7 -1
  19. package/build/config/configManager.d.ts.map +1 -1
  20. package/build/config/configManager.js +24 -2
  21. package/build/config/configManager.js.map +1 -1
  22. package/build/constants.d.ts +25 -1
  23. package/build/constants.d.ts.map +1 -1
  24. package/build/constants.js +31 -2
  25. package/build/constants.js.map +1 -1
  26. package/build/{client.d.ts → core/client/clientFactory.d.ts} +1 -1
  27. package/build/core/client/clientFactory.d.ts.map +1 -0
  28. package/build/{client.js → core/client/clientFactory.js} +2 -2
  29. package/build/core/client/clientFactory.js.map +1 -0
  30. package/build/{clients → core/client}/clientManager.d.ts +3 -2
  31. package/build/core/client/clientManager.d.ts.map +1 -0
  32. package/build/{clients → core/client}/clientManager.js +10 -6
  33. package/build/core/client/clientManager.js.map +1 -0
  34. package/build/core/server/serverConfig.d.ts +100 -0
  35. package/build/core/server/serverConfig.d.ts.map +1 -0
  36. package/build/core/server/serverConfig.js +117 -0
  37. package/build/core/server/serverConfig.js.map +1 -0
  38. package/build/{serverManager.d.ts → core/server/serverManager.d.ts} +7 -2
  39. package/build/core/server/serverManager.d.ts.map +1 -0
  40. package/build/core/server/serverManager.js +159 -0
  41. package/build/core/server/serverManager.js.map +1 -0
  42. package/build/core/types/client.d.ts +38 -0
  43. package/build/core/types/client.d.ts.map +1 -0
  44. package/build/core/types/client.js +13 -0
  45. package/build/core/types/client.js.map +1 -0
  46. package/build/core/types/index.d.ts +4 -0
  47. package/build/core/types/index.d.ts.map +1 -0
  48. package/build/core/types/index.js +5 -0
  49. package/build/core/types/index.js.map +1 -0
  50. package/build/core/types/server.d.ts +14 -0
  51. package/build/core/types/server.d.ts.map +1 -0
  52. package/build/core/types/server.js +2 -0
  53. package/build/core/types/server.js.map +1 -0
  54. package/build/{types.d.ts → core/types/transport.d.ts} +1 -48
  55. package/build/core/types/transport.d.ts.map +1 -0
  56. package/build/{types.js → core/types/transport.js} +1 -13
  57. package/build/core/types/transport.js.map +1 -0
  58. package/build/handlers/notificationHandlers.d.ts +1 -1
  59. package/build/handlers/notificationHandlers.d.ts.map +1 -1
  60. package/build/handlers/notificationHandlers.js +41 -15
  61. package/build/handlers/notificationHandlers.js.map +1 -1
  62. package/build/handlers/requestHandlers.d.ts +1 -1
  63. package/build/handlers/requestHandlers.d.ts.map +1 -1
  64. package/build/handlers/requestHandlers.js +65 -2
  65. package/build/handlers/requestHandlers.js.map +1 -1
  66. package/build/index.d.ts +1 -1
  67. package/build/index.d.ts.map +1 -1
  68. package/build/index.js +44 -5
  69. package/build/index.js.map +1 -1
  70. package/build/logger/logger.js +1 -1
  71. package/build/logger/logger.js.map +1 -1
  72. package/build/server.d.ts +1 -1
  73. package/build/server.d.ts.map +1 -1
  74. package/build/server.js +6 -3
  75. package/build/server.js.map +1 -1
  76. package/build/services/configReloadService.d.ts +15 -5
  77. package/build/services/configReloadService.d.ts.map +1 -1
  78. package/build/services/configReloadService.js +28 -11
  79. package/build/services/configReloadService.js.map +1 -1
  80. package/build/{config/transportConfig.d.ts → transport/config.d.ts} +2 -2
  81. package/build/transport/config.d.ts.map +1 -0
  82. package/build/{config/transportConfig.js → transport/config.js} +2 -2
  83. package/build/transport/config.js.map +1 -0
  84. package/build/transport/http/errorHandler.d.ts.map +1 -0
  85. package/build/{server → transport/http}/errorHandler.js +1 -1
  86. package/build/transport/http/errorHandler.js.map +1 -0
  87. package/build/transport/http/middleware/loggingMiddleware.d.ts.map +1 -0
  88. package/build/{middleware → transport/http/middleware}/loggingMiddleware.js +11 -7
  89. package/build/transport/http/middleware/loggingMiddleware.js.map +1 -0
  90. package/build/transport/http/routes/oauthRoutes.d.ts +14 -0
  91. package/build/transport/http/routes/oauthRoutes.d.ts.map +1 -0
  92. package/build/transport/http/routes/oauthRoutes.js +132 -0
  93. package/build/transport/http/routes/oauthRoutes.js.map +1 -0
  94. package/build/transport/http/routes/sseRoutes.d.ts +4 -0
  95. package/build/transport/http/routes/sseRoutes.d.ts.map +1 -0
  96. package/build/transport/http/routes/sseRoutes.js +64 -0
  97. package/build/transport/http/routes/sseRoutes.js.map +1 -0
  98. package/build/transport/http/routes/streamableHttpRoutes.d.ts +4 -0
  99. package/build/transport/http/routes/streamableHttpRoutes.d.ts.map +1 -0
  100. package/build/transport/http/routes/streamableHttpRoutes.js +121 -0
  101. package/build/transport/http/routes/streamableHttpRoutes.js.map +1 -0
  102. package/build/transport/http/server.d.ts +69 -0
  103. package/build/transport/http/server.d.ts.map +1 -0
  104. package/build/transport/http/server.js +115 -0
  105. package/build/transport/http/server.js.map +1 -0
  106. package/build/utils/clientFiltering.d.ts +1 -1
  107. package/build/utils/clientFiltering.d.ts.map +1 -1
  108. package/build/utils/errorHandling.d.ts +1 -0
  109. package/build/utils/errorHandling.d.ts.map +1 -1
  110. package/build/utils/errorHandling.js +29 -5
  111. package/build/utils/errorHandling.js.map +1 -1
  112. package/build/utils/errorTypes.d.ts +4 -1
  113. package/build/utils/errorTypes.d.ts.map +1 -1
  114. package/build/utils/errorTypes.js +12 -4
  115. package/build/utils/errorTypes.js.map +1 -1
  116. package/build/utils/pagination.d.ts +1 -1
  117. package/build/utils/pagination.d.ts.map +1 -1
  118. package/build/utils/pagination.js +84 -5
  119. package/build/utils/pagination.js.map +1 -1
  120. package/build/utils/tagsExtractor.d.ts.map +1 -0
  121. package/build/utils/tagsExtractor.js.map +1 -0
  122. package/package.json +14 -5
  123. package/build/client.d.ts.map +0 -1
  124. package/build/client.js.map +0 -1
  125. package/build/clients/clientManager.d.ts.map +0 -1
  126. package/build/clients/clientManager.js.map +0 -1
  127. package/build/config/transportConfig.d.ts.map +0 -1
  128. package/build/config/transportConfig.js.map +0 -1
  129. package/build/middleware/loggingMiddleware.d.ts.map +0 -1
  130. package/build/middleware/loggingMiddleware.js.map +0 -1
  131. package/build/server/errorHandler.d.ts.map +0 -1
  132. package/build/server/errorHandler.js.map +0 -1
  133. package/build/server/expressServer.d.ts +0 -11
  134. package/build/server/expressServer.d.ts.map +0 -1
  135. package/build/server/expressServer.js +0 -177
  136. package/build/server/expressServer.js.map +0 -1
  137. package/build/server/tagsExtractor.d.ts.map +0 -1
  138. package/build/server/tagsExtractor.js.map +0 -1
  139. package/build/serverManager.d.ts.map +0 -1
  140. package/build/serverManager.js +0 -87
  141. package/build/serverManager.js.map +0 -1
  142. package/build/types.d.ts.map +0 -1
  143. package/build/types.js.map +0 -1
  144. /package/build/{server → transport/http}/errorHandler.d.ts +0 -0
  145. /package/build/{middleware → transport/http/middleware}/loggingMiddleware.d.ts +0 -0
  146. /package/build/{server → utils}/tagsExtractor.d.ts +0 -0
  147. /package/build/{server → utils}/tagsExtractor.js +0 -0
@@ -31,12 +31,12 @@ function collectCapabilities(clients) {
31
31
  logger.debug(`Capabilities from ${name}: ${JSON.stringify(serverCapabilities)}`);
32
32
  // Store capabilities per client
33
33
  clientInfo.capabilities = serverCapabilities;
34
- // Aggregate capabilities
35
- capabilities.resources = { ...capabilities.resources, ...serverCapabilities.resources };
36
- capabilities.tools = { ...capabilities.tools, ...serverCapabilities.tools };
37
- capabilities.prompts = { ...capabilities.prompts, ...serverCapabilities.prompts };
38
- capabilities.experimental = { ...capabilities.experimental, ...serverCapabilities.experimental };
39
- capabilities.logging = { ...capabilities.logging, ...serverCapabilities.logging };
34
+ // Aggregate capabilities with conflict handling
35
+ capabilities.resources = mergeCapabilities(capabilities.resources, serverCapabilities.resources, 'resources', name);
36
+ capabilities.tools = mergeCapabilities(capabilities.tools, serverCapabilities.tools, 'tools', name);
37
+ capabilities.prompts = mergeCapabilities(capabilities.prompts, serverCapabilities.prompts, 'prompts', name);
38
+ capabilities.experimental = mergeCapabilities(capabilities.experimental, serverCapabilities.experimental, 'experimental', name);
39
+ capabilities.logging = mergeCapabilities(capabilities.logging, serverCapabilities.logging, 'logging', name);
40
40
  }
41
41
  catch (error) {
42
42
  logger.error(`Failed to get capabilities from ${name}: ${error}`);
@@ -44,4 +44,37 @@ function collectCapabilities(clients) {
44
44
  }
45
45
  return capabilities;
46
46
  }
47
+ /**
48
+ * Merges capability objects with conflict detection and resolution
49
+ * @param existing The existing capability object
50
+ * @param incoming The incoming capability object
51
+ * @param capabilityType The type of capability being merged
52
+ * @param clientName The name of the client providing the incoming capability
53
+ * @returns The merged capability object
54
+ */
55
+ function mergeCapabilities(existing, incoming, capabilityType, clientName) {
56
+ if (!incoming) {
57
+ return existing;
58
+ }
59
+ if (!existing) {
60
+ return incoming;
61
+ }
62
+ const merged = { ...existing };
63
+ const conflicts = [];
64
+ for (const [key, value] of Object.entries(incoming)) {
65
+ if (key in existing) {
66
+ // Check if values are different (potential conflict)
67
+ if (JSON.stringify(existing[key]) !== JSON.stringify(value)) {
68
+ conflicts.push(key);
69
+ logger.warn(`Capability conflict in ${capabilityType}.${key}: client ${clientName} overriding existing value`);
70
+ logger.debug(`Existing: ${JSON.stringify(existing[key])}, New: ${JSON.stringify(value)}`);
71
+ }
72
+ }
73
+ merged[key] = value;
74
+ }
75
+ if (conflicts.length > 0) {
76
+ logger.info(`Client ${clientName} has ${conflicts.length} ${capabilityType} capability conflicts: ${conflicts.join(', ')}`);
77
+ }
78
+ return merged;
79
+ }
47
80
  //# sourceMappingURL=capabilityManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"capabilityManager.js","sourceRoot":"","sources":["../../src/capabilities/capabilityManager.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,EACL,gCAAgC,EAChC,gCAAgC,GACjC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAGzE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAAgB,EAAE,UAAsB;IAC9E,wCAAwC;IACxC,MAAM,YAAY,GAAG,mBAAmB,CAAC,OAAO,CAAC,CAAC;IAElD,+BAA+B;IAC/B,gCAAgC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACtD,gCAAgC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAEtD,kDAAkD;IAClD,uBAAuB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAE7C,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;GAIG;AACH,SAAS,mBAAmB,CAAC,OAAgB;IAC3C,MAAM,YAAY,GAAuB,EAAE,CAAC;IAE5C,KAAK,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QACzD,IAAI,CAAC;YACH,MAAM,kBAAkB,GAAG,UAAU,CAAC,MAAM,CAAC,qBAAqB,EAAE,IAAI,EAAE,CAAC;YAC3E,MAAM,CAAC,KAAK,CAAC,qBAAqB,IAAI,KAAK,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,EAAE,CAAC,CAAC;YAEjF,gCAAgC;YAChC,UAAU,CAAC,YAAY,GAAG,kBAAkB,CAAC;YAE7C,yBAAyB;YACzB,YAAY,CAAC,SAAS,GAAG,EAAE,GAAG,YAAY,CAAC,SAAS,EAAE,GAAG,kBAAkB,CAAC,SAAS,EAAE,CAAC;YACxF,YAAY,CAAC,KAAK,GAAG,EAAE,GAAG,YAAY,CAAC,KAAK,EAAE,GAAG,kBAAkB,CAAC,KAAK,EAAE,CAAC;YAC5E,YAAY,CAAC,OAAO,GAAG,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,kBAAkB,CAAC,OAAO,EAAE,CAAC;YAClF,YAAY,CAAC,YAAY,GAAG,EAAE,GAAG,YAAY,CAAC,YAAY,EAAE,GAAG,kBAAkB,CAAC,YAAY,EAAE,CAAC;YACjG,YAAY,CAAC,OAAO,GAAG,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,GAAG,kBAAkB,CAAC,OAAO,EAAE,CAAC;QACpF,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,mCAAmC,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;QACpE,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC"}
1
+ {"version":3,"file":"capabilityManager.js","sourceRoot":"","sources":["../../src/capabilities/capabilityManager.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { EventEmitter } from 'events';
2
- import { MCPServerParams } from '../types.js';
2
+ import { MCPServerParams } from '../core/types/index.js';
3
3
  /**
4
4
  * Configuration change event types
5
5
  */
@@ -14,6 +14,8 @@ export declare class ConfigManager extends EventEmitter {
14
14
  private configWatcher;
15
15
  private transportConfig;
16
16
  private configFilePath;
17
+ private debounceTimer;
18
+ private readonly debounceDelayMs;
17
19
  /**
18
20
  * Private constructor to enforce singleton pattern
19
21
  * @param configFilePath - Optional path to the config file. If not provided, uses global config path
@@ -40,6 +42,10 @@ export declare class ConfigManager extends EventEmitter {
40
42
  * Stop watching the configuration file
41
43
  */
42
44
  stopWatching(): void;
45
+ /**
46
+ * Debounced configuration reload to prevent excessive reloading
47
+ */
48
+ private debouncedReloadConfig;
43
49
  /**
44
50
  * Reload the configuration from the config file
45
51
  */
@@ -1 +1 @@
1
- {"version":3,"file":"configManager.d.ts","sourceRoot":"","sources":["../../src/config/configManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,wBAAwB,2BAA2B;CACpD;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,cAAc,CAAS;IAE/B;;;OAGG;IACH,OAAO;IAOP;;;OAGG;WACW,WAAW,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,aAAa;IAOjE;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkB1B;;OAEG;IACH,OAAO,CAAC,UAAU;IAWlB;;OAEG;IACI,aAAa,IAAI,IAAI;IAkB5B;;OAEG;IACI,YAAY,IAAI,IAAI;IAQ3B;;OAEG;IACI,YAAY,IAAI,IAAI;IAgB3B;;;OAGG;IACI,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;CAG7D;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"configManager.d.ts","sourceRoot":"","sources":["../../src/config/configManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGtC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,wBAAwB,2BAA2B;CACpD;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,YAAY;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,eAAe,CAAuC;IAC9D,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,aAAa,CAA8C;IACnE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAe;IAE/C;;;OAGG;IACH,OAAO;IAOP;;;OAGG;WACW,WAAW,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,aAAa;IAOjE;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAkB1B;;OAEG;IACH,OAAO,CAAC,UAAU;IAWlB;;OAEG;IACI,aAAa,IAAI,IAAI;IAkB5B;;OAEG;IACI,YAAY,IAAI,IAAI;IAc3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAc7B;;OAEG;IACI,YAAY,IAAI,IAAI;IAgB3B;;;OAGG;IACI,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC;CAG7D;AAED,eAAe,aAAa,CAAC"}
@@ -18,6 +18,8 @@ export class ConfigManager extends EventEmitter {
18
18
  configWatcher = null;
19
19
  transportConfig = {};
20
20
  configFilePath;
21
+ debounceTimer = null;
22
+ debounceDelayMs = 500; // 500ms debounce delay
21
23
  /**
22
24
  * Private constructor to enforce singleton pattern
23
25
  * @param configFilePath - Optional path to the config file. If not provided, uses global config path
@@ -82,8 +84,8 @@ export class ConfigManager extends EventEmitter {
82
84
  try {
83
85
  this.configWatcher = fs.watch(this.configFilePath, (eventType, filename) => {
84
86
  if (filename === path.basename(this.configFilePath) && eventType === 'change') {
85
- logger.info(`Configuration file ${filename} changed, reloading...`);
86
- this.reloadConfig();
87
+ logger.debug(`Configuration file ${filename} changed, debouncing reload...`);
88
+ this.debouncedReloadConfig();
87
89
  }
88
90
  });
89
91
  logger.info(`Started watching configuration file: ${this.configFilePath}`);
@@ -101,6 +103,26 @@ export class ConfigManager extends EventEmitter {
101
103
  this.configWatcher = null;
102
104
  logger.info('Stopped watching configuration file');
103
105
  }
106
+ // Clear any pending debounce timer
107
+ if (this.debounceTimer) {
108
+ clearTimeout(this.debounceTimer);
109
+ this.debounceTimer = null;
110
+ }
111
+ }
112
+ /**
113
+ * Debounced configuration reload to prevent excessive reloading
114
+ */
115
+ debouncedReloadConfig() {
116
+ // Clear existing timer
117
+ if (this.debounceTimer) {
118
+ clearTimeout(this.debounceTimer);
119
+ }
120
+ // Set new timer
121
+ this.debounceTimer = setTimeout(() => {
122
+ logger.info('Debounce period completed, reloading configuration...');
123
+ this.reloadConfig();
124
+ this.debounceTimer = null;
125
+ }, this.debounceDelayMs);
104
126
  }
105
127
  /**
106
128
  * Reload the configuration from the config file
@@ -1 +1 @@
1
- {"version":3,"file":"configManager.js","sourceRoot":"","sources":["../../src/config/configManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"configManager.js","sourceRoot":"","sources":["../../src/config/configManager.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@ export declare const MESSAGES_ENDPOINT = "/messages";
9
9
  export declare const STREAMABLE_HTTP_ENDPOINT = "/mcp";
10
10
  export declare const MCP_CONFIG_FILE = "mcp.json";
11
11
  export declare const MCP_SERVER_NAME = "1mcp";
12
- export declare const MCP_SERVER_VERSION = "0.10.3";
12
+ export declare const MCP_SERVER_VERSION = "0.12.0";
13
13
  export declare const MCP_URI_SEPARATOR = "_1mcp_";
14
14
  export declare const CONFIG_DIR_NAME = "1mcp";
15
15
  export declare const DEFAULT_CONFIG: {
@@ -27,6 +27,30 @@ export declare const CONNECTION_RETRY: {
27
27
  MAX_ATTEMPTS: number;
28
28
  INITIAL_DELAY_MS: number;
29
29
  };
30
+ export declare const AUTH_CONFIG: {
31
+ DEFAULT_ENABLED: boolean;
32
+ DEFAULT_SESSION_TTL_MINUTES: number;
33
+ DEFAULT_OAUTH_CODE_TTL_MS: number;
34
+ DEFAULT_OAUTH_TOKEN_TTL_MS: number;
35
+ SESSION_STORAGE_DIR: string;
36
+ SESSION_FILE_PREFIX: string;
37
+ SESSION_FILE_EXTENSION: string;
38
+ PREFIXES: {
39
+ SESSION_ID: string;
40
+ ACCESS_TOKEN: string;
41
+ AUTH_CODE: string;
42
+ CLIENT_ID: string;
43
+ };
44
+ };
45
+ export declare const RATE_LIMIT_CONFIG: {
46
+ OAUTH: {
47
+ WINDOW_MS: number;
48
+ MAX: number;
49
+ MESSAGE: {
50
+ error: string;
51
+ };
52
+ };
53
+ };
30
54
  export declare const MCP_SERVER_CAPABILITIES: ServerCapabilities;
31
55
  export declare const MCP_CLIENT_CAPABILITIES: ClientCapabilities;
32
56
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAG5F,eAAO,MAAM,IAAI,OAAO,CAAC;AACzB,eAAO,MAAM,IAAI,cAAc,CAAC;AAGhC,eAAO,MAAM,YAAY,SAAS,CAAC;AACnC,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAC7C,eAAO,MAAM,wBAAwB,SAAS,CAAC;AAG/C,eAAO,MAAM,eAAe,aAAa,CAAC;AAC1C,eAAO,MAAM,eAAe,SAAS,CAAC;AACtC,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAG1C,eAAO,MAAM,eAAe,SAAS,CAAC;AACtC,eAAO,MAAM,cAAc;;CAE1B,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAY3C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAGD,eAAO,MAAM,gBAAgB;;;CAG5B,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,kBAWrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,kBAOrC,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oCAAoC,CAAC;AAG5F,eAAO,MAAM,IAAI,OAAO,CAAC;AACzB,eAAO,MAAM,IAAI,cAAc,CAAC;AAGhC,eAAO,MAAM,YAAY,SAAS,CAAC;AACnC,eAAO,MAAM,iBAAiB,cAAc,CAAC;AAC7C,eAAO,MAAM,wBAAwB,SAAS,CAAC;AAG/C,eAAO,MAAM,eAAe,aAAa,CAAC;AAC1C,eAAO,MAAM,eAAe,SAAS,CAAC;AACtC,eAAO,MAAM,kBAAkB,WAAW,CAAC;AAE3C,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAG1C,eAAO,MAAM,eAAe,SAAS,CAAC;AACtC,eAAO,MAAM,cAAc;;CAE1B,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAY3C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAGD,eAAO,MAAM,gBAAgB;;;CAG5B,CAAC;AAGF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;CAevB,CAAC;AAGF,eAAO,MAAM,iBAAiB;;;;;;;;CAM7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,kBAYrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,kBAUrC,CAAC"}
@@ -11,7 +11,7 @@ export const STREAMABLE_HTTP_ENDPOINT = '/mcp';
11
11
  // MCP constants
12
12
  export const MCP_CONFIG_FILE = 'mcp.json';
13
13
  export const MCP_SERVER_NAME = '1mcp';
14
- export const MCP_SERVER_VERSION = '0.10.3';
14
+ export const MCP_SERVER_VERSION = '0.12.0';
15
15
  export const MCP_URI_SEPARATOR = '_1mcp_';
16
16
  // Global config paths
17
17
  export const CONFIG_DIR_NAME = '1mcp';
@@ -42,8 +42,33 @@ export const CONNECTION_RETRY = {
42
42
  MAX_ATTEMPTS: 3,
43
43
  INITIAL_DELAY_MS: 1000,
44
44
  };
45
+ // Authentication and session settings
46
+ export const AUTH_CONFIG = {
47
+ DEFAULT_ENABLED: false,
48
+ DEFAULT_SESSION_TTL_MINUTES: 24 * 60, // 24 hours
49
+ DEFAULT_OAUTH_CODE_TTL_MS: 60 * 1000, // 1 minute
50
+ DEFAULT_OAUTH_TOKEN_TTL_MS: 24 * 60 * 60 * 1000, // 24 hours
51
+ SESSION_STORAGE_DIR: 'sessions',
52
+ SESSION_FILE_PREFIX: 'session_',
53
+ SESSION_FILE_EXTENSION: '.json',
54
+ // Identifier prefixes for easy distinction
55
+ PREFIXES: {
56
+ SESSION_ID: 'sess-',
57
+ ACCESS_TOKEN: 'tk-',
58
+ AUTH_CODE: 'code-',
59
+ CLIENT_ID: 'client-',
60
+ },
61
+ };
62
+ // Rate limiting configuration for OAuth endpoints
63
+ export const RATE_LIMIT_CONFIG = {
64
+ OAUTH: {
65
+ WINDOW_MS: 60 * 1000, // 1 minute
66
+ MAX: 10, // max requests per window per IP
67
+ MESSAGE: { error: 'Too many requests, please try again later.' },
68
+ },
69
+ };
45
70
  export const MCP_SERVER_CAPABILITIES = {
46
- logging: {},
71
+ completions: {},
47
72
  resources: {
48
73
  listChanged: false,
49
74
  },
@@ -53,6 +78,7 @@ export const MCP_SERVER_CAPABILITIES = {
53
78
  prompts: {
54
79
  listChanged: false,
55
80
  },
81
+ logging: {},
56
82
  };
57
83
  export const MCP_CLIENT_CAPABILITIES = {
58
84
  roots: {
@@ -61,5 +87,8 @@ export const MCP_CLIENT_CAPABILITIES = {
61
87
  sampling: {
62
88
  listChanged: false,
63
89
  },
90
+ elicitation: {
91
+ listChanged: false,
92
+ },
64
93
  };
65
94
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,uBAAuB;AACvB,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC;AACzB,MAAM,CAAC,MAAM,IAAI,GAAG,WAAW,CAAC;AAEhC,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC;AACnC,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAC;AAC7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAE/C,gBAAgB;AAChB,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAC;AAC1C,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AACtC,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AAE3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAE1C,sBAAsB;AACtB,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AACtC,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,UAAU,EAAE,EAAE;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,SAAS,GACb,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC3D,CAAC,CAAC,GAAG,OAAO,YAAY,eAAe,EAAE;QACzC,CAAC,CAAC,GAAG,OAAO,oBAAoB,eAAe,EAAE,CAAC;IAEtD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,GAAG,kBAAkB,EAAE,IAAI,eAAe,EAAE,CAAC;AACtD,CAAC;AAED,4BAA4B;AAC5B,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,YAAY,EAAE,CAAC;IACf,gBAAgB,EAAE,IAAI;CACvB,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAuB;IACzD,OAAO,EAAE,EAAE;IACX,SAAS,EAAE;QACT,WAAW,EAAE,KAAK;KACnB;IACD,KAAK,EAAE;QACL,WAAW,EAAE,KAAK;KACnB;IACD,OAAO,EAAE;QACP,WAAW,EAAE,KAAK;KACnB;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAuB;IACzD,KAAK,EAAE;QACL,WAAW,EAAE,KAAK;KACnB;IACD,QAAQ,EAAE;QACR,WAAW,EAAE,KAAK;KACnB;CACF,CAAC"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
@@ -22,4 +22,4 @@ export default function createClient(): Promise<Client<{
22
22
  [x: string]: unknown;
23
23
  } | undefined;
24
24
  }>>;
25
- //# sourceMappingURL=client.d.ts.map
25
+ //# sourceMappingURL=clientFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clientFactory.d.ts","sourceRoot":"","sources":["../../../src/core/client/clientFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAGnE,wBAA8B,YAAY;;;;;;;;;;;;;;;;;;;;;;IAYzC"}
@@ -1,5 +1,5 @@
1
1
  import { Client } from '@modelcontextprotocol/sdk/client/index.js';
2
- import { MCP_SERVER_NAME, MCP_SERVER_VERSION, MCP_CLIENT_CAPABILITIES } from './constants.js';
2
+ import { MCP_SERVER_NAME, MCP_SERVER_VERSION, MCP_CLIENT_CAPABILITIES } from '../../constants.js';
3
3
  export default async function createClient() {
4
4
  const client = new Client({
5
5
  name: MCP_SERVER_NAME,
@@ -9,4 +9,4 @@ export default async function createClient() {
9
9
  });
10
10
  return client;
11
11
  }
12
- //# sourceMappingURL=client.js.map
12
+ //# sourceMappingURL=clientFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clientFactory.js","sourceRoot":"","sources":["../../../src/core/client/clientFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAElG,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,YAAY;IACxC,MAAM,MAAM,GAAG,IAAI,MAAM,CACvB;QACE,IAAI,EAAE,eAAe;QACrB,OAAO,EAAE,kBAAkB;KAC5B,EACD;QACE,YAAY,EAAE,uBAAuB;KACtC,CACF,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
2
- import { ClientInfo, Clients, OperationOptions, ServerInfo } from '../types.js';
2
+ import { ClientInfo, Clients, OperationOptions, ServerInfo, ServerCapability } from '../types/index.js';
3
3
  /**
4
4
  * Creates client instances for all transports with retry logic
5
5
  * @param transports Record of transport instances
@@ -28,8 +28,9 @@ export declare function executeOperation<T>(operation: () => Promise<T>, context
28
28
  * @param clientName The name of the client to use
29
29
  * @param operation The operation to execute
30
30
  * @param options Operation options including timeout and retry settings
31
+ * @param requiredCapability The capability required for this operation
31
32
  */
32
- export declare function executeClientOperation<T>(clients: Clients, clientName: string, operation: (clientInfo: ClientInfo) => Promise<T>, options?: OperationOptions): Promise<T>;
33
+ export declare function executeClientOperation<T>(clients: Clients, clientName: string, operation: (clientInfo: ClientInfo) => Promise<T>, options?: OperationOptions, requiredCapability?: ServerCapability): Promise<T>;
33
34
  /**
34
35
  * Executes a server operation with error handling and retry logic
35
36
  * @param server The server to execute the operation on
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clientManager.d.ts","sourceRoot":"","sources":["../../../src/core/client/clientManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAM1E,OAAO,EAAgB,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEtH;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,CAqC3F;AAoCD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,UAAU,CAM1E;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,SAAS,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAC3B,WAAW,EAAE,MAAM,EACnB,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,CAAC,CAAC,CA2BZ;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,EACjD,OAAO,GAAE,gBAAqB,EAC9B,kBAAkB,CAAC,EAAE,gBAAgB,GACpC,OAAO,CAAC,CAAC,CAAC,CAQZ;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,OAAO,CAAC,CAAC,CAAC,EAC7C,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,CAAC,CAAC,CAEZ"}
@@ -1,9 +1,9 @@
1
1
  import { ErrorCode } from '@modelcontextprotocol/sdk/types.js';
2
- import createClient from '../client.js';
3
- import logger from '../logger/logger.js';
4
- import { CONNECTION_RETRY, MCP_SERVER_NAME } from '../constants.js';
5
- import { ClientConnectionError, ClientNotFoundError, MCPError } from '../utils/errorTypes.js';
6
- import { ClientStatus } from '../types.js';
2
+ import createClient from './clientFactory.js';
3
+ import logger from '../../logger/logger.js';
4
+ import { CONNECTION_RETRY, MCP_SERVER_NAME } from '../../constants.js';
5
+ import { ClientConnectionError, ClientNotFoundError, MCPError, CapabilityError } from '../../utils/errorTypes.js';
6
+ import { ClientStatus } from '../types/index.js';
7
7
  /**
8
8
  * Creates client instances for all transports with retry logic
9
9
  * @param transports Record of transport instances
@@ -126,9 +126,13 @@ export async function executeOperation(operation, contextName, options = {}) {
126
126
  * @param clientName The name of the client to use
127
127
  * @param operation The operation to execute
128
128
  * @param options Operation options including timeout and retry settings
129
+ * @param requiredCapability The capability required for this operation
129
130
  */
130
- export async function executeClientOperation(clients, clientName, operation, options = {}) {
131
+ export async function executeClientOperation(clients, clientName, operation, options = {}, requiredCapability) {
131
132
  const clientInfo = getClient(clients, clientName);
133
+ if (requiredCapability && !clientInfo.capabilities?.[requiredCapability]) {
134
+ throw new CapabilityError(clientName, String(requiredCapability));
135
+ }
132
136
  return executeOperation(() => operation(clientInfo), `client ${clientName}`, options);
133
137
  }
134
138
  /**
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clientManager.js","sourceRoot":"","sources":["../../../src/core/client/clientManager.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAC/D,OAAO,YAAY,MAAM,oBAAoB,CAAC;AAC9C,OAAO,MAAM,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAClH,OAAO,EAAE,YAAY,EAAuE,MAAM,mBAAmB,CAAC;AAEtH;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,UAAqC;IACvE,MAAM,OAAO,GAA+B,EAAE,CAAC;IAE/C,KAAK,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3D,MAAM,CAAC,IAAI,CAAC,uBAAuB,IAAI,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;YAEpC,2BAA2B;YAC3B,MAAM,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;YAEhD,OAAO,CAAC,IAAI,CAAC,GAAG;gBACd,IAAI;gBACJ,SAAS;gBACT,MAAM;gBACN,MAAM,EAAE,YAAY,CAAC,SAAS;gBAC9B,aAAa,EAAE,IAAI,IAAI,EAAE;aAC1B,CAAC;YACF,MAAM,CAAC,IAAI,CAAC,sBAAsB,IAAI,EAAE,CAAC,CAAC;YAE1C,MAAM,CAAC,OAAO,GAAG,GAAG,EAAE;gBACpB,OAAO,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,YAAY,CAAC,YAAY,CAAC;gBACjD,MAAM,CAAC,IAAI,CAAC,UAAU,IAAI,eAAe,CAAC,CAAC;YAC7C,CAAC,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,+BAA+B,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;YAC9D,OAAO,CAAC,IAAI,CAAC,GAAG;gBACd,IAAI;gBACJ,SAAS;gBACT,MAAM,EAAE,MAAM,YAAY,EAAE;gBAC5B,MAAM,EAAE,YAAY,CAAC,KAAK;gBAC1B,SAAS,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;aACrE,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;AAChC,CAAC;AAED;;;;;GAKG;AACH,KAAK,UAAU,gBAAgB,CAAC,MAAc,EAAE,SAAoB,EAAE,IAAY;IAChF,IAAI,UAAU,GAAG,gBAAgB,CAAC,gBAAgB,CAAC;IAEnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAEhC,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,gBAAgB,EAAE,CAAC;YAC3C,IAAI,EAAE,EAAE,IAAI,KAAK,eAAe,EAAE,CAAC;gBACjC,MAAM,IAAI,qBAAqB,CAAC,IAAI,EAAE,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC,CAAC;YAC7F,CAAC;YAED,MAAM,CAAC,IAAI,CAAC,6BAA6B,IAAI,gBAAgB,EAAE,EAAE,IAAI,YAAY,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;YAChG,OAAO;QACT,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,CAAC,KAAK,CAAC,wBAAwB,IAAI,KAAK,KAAK,EAAE,CAAC,CAAC;YAEvD,IAAI,CAAC,GAAG,gBAAgB,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;gBAC1C,MAAM,CAAC,IAAI,CAAC,eAAe,UAAU,OAAO,CAAC,CAAC;gBAC9C,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;gBAChE,UAAU,IAAI,CAAC,CAAC,CAAC,sBAAsB;YACzC,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,qBAAqB,CAAC,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACnG,CAAC;QACH,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,SAAS,CAAC,OAAgB,EAAE,UAAkB;IAC5D,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,MAAM,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,SAA2B,EAC3B,WAAmB,EACnB,UAA4B,EAAE;IAE9B,MAAM,EAAE,UAAU,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;IAEtD,IAAI,SAA4B,CAAC;IACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,OAAO,MAAM,SAAS,EAAE,CAAC;QAC3B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACtE,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC;gBACnB,MAAM,CAAC,IAAI,CAAC,sBAAsB,SAAS,CAAC,IAAI,OAAO,WAAW,UAAU,UAAU,IAAI,CAAC,CAAC;gBAC5F,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC;YAClE,CAAC;QACH,CAAC;IACH,CAAC;IAED,8CAA8C;IAC9C,MAAM,CAAC,KAAK,CAAC,uBAAuB,WAAW,UAAU,UAAU,GAAG,CAAC,cAAc,SAAS,EAAE,CAAC,CAAC;IAElG,IAAI,SAAS,YAAY,QAAQ,EAAE,CAAC;QAClC,MAAM,SAAS,CAAC;IAClB,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC,gCAAgC,WAAW,EAAE,EAAE,SAAS,CAAC,aAAa,EAAE;QACpG,aAAa,EAAE,SAAS;KACzB,CAAC,CAAC;IACH,MAAM,QAAQ,CAAC;AACjB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,OAAgB,EAChB,UAAkB,EAClB,SAAiD,EACjD,UAA4B,EAAE,EAC9B,kBAAqC;IAErC,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAElD,IAAI,kBAAkB,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACzE,MAAM,IAAI,eAAe,CAAC,UAAU,EAAE,MAAM,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACpE,CAAC;IAED,OAAO,gBAAgB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,UAAU,UAAU,EAAE,EAAE,OAAO,CAAC,CAAC;AACxF,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MAAkB,EAClB,SAA6C,EAC7C,UAA4B,EAAE;IAE9B,OAAO,gBAAgB,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;AACtE,CAAC"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Configuration interface for server-specific settings.
3
+ *
4
+ * Defines the structure for authentication and session management configuration
5
+ * that can be customized via CLI arguments or environment variables.
6
+ */
7
+ export interface ServerConfig {
8
+ auth: {
9
+ enabled: boolean;
10
+ sessionTtlMinutes: number;
11
+ sessionStoragePath?: string;
12
+ oauthCodeTtlMs: number;
13
+ oauthTokenTtlMs: number;
14
+ };
15
+ }
16
+ /**
17
+ * ServerConfigManager manages server-specific configuration settings.
18
+ *
19
+ * This singleton class handles authentication and session configuration
20
+ * that differs from the main MCP server configuration. It provides
21
+ * centralized access to server settings with default values and
22
+ * runtime configuration updates.
23
+ *
24
+ * @example
25
+ * ```typescript
26
+ * const configManager = ServerConfigManager.getInstance();
27
+ * configManager.updateConfig({
28
+ * auth: { enabled: true, sessionTtlMinutes: 60 }
29
+ * });
30
+ * ```
31
+ */
32
+ export declare class ServerConfigManager {
33
+ private static instance;
34
+ private config;
35
+ /**
36
+ * Private constructor to enforce singleton pattern.
37
+ *
38
+ * Initializes the configuration with default values from constants.
39
+ * Should not be called directly - use getInstance() instead.
40
+ */
41
+ private constructor();
42
+ /**
43
+ * Gets the singleton instance of ServerConfigManager.
44
+ *
45
+ * Creates a new instance if one doesn't exist, otherwise returns
46
+ * the existing instance to ensure configuration consistency.
47
+ *
48
+ * @returns The singleton ServerConfigManager instance
49
+ */
50
+ static getInstance(): ServerConfigManager;
51
+ /**
52
+ * Updates the server configuration with new values.
53
+ *
54
+ * Merges the provided updates with existing configuration, allowing
55
+ * partial updates while preserving other settings.
56
+ *
57
+ * @param updates - Partial configuration object with new values
58
+ */
59
+ updateConfig(updates: Partial<ServerConfig>): void;
60
+ /**
61
+ * Gets a copy of the current server configuration.
62
+ *
63
+ * Returns a deep copy to prevent external modification of the
64
+ * internal configuration state.
65
+ *
66
+ * @returns Current server configuration
67
+ */
68
+ getConfig(): ServerConfig;
69
+ /**
70
+ * Checks if authentication is currently enabled.
71
+ *
72
+ * @returns True if OAuth 2.1 authentication is enabled, false otherwise
73
+ */
74
+ isAuthEnabled(): boolean;
75
+ /**
76
+ * Gets the session time-to-live in minutes.
77
+ *
78
+ * @returns Session TTL in minutes
79
+ */
80
+ getSessionTtlMinutes(): number;
81
+ /**
82
+ * Gets the custom session storage path if configured.
83
+ *
84
+ * @returns Custom session storage path or undefined if using default
85
+ */
86
+ getSessionStoragePath(): string | undefined;
87
+ /**
88
+ * Gets the OAuth authorization code time-to-live in milliseconds.
89
+ *
90
+ * @returns OAuth code TTL in milliseconds
91
+ */
92
+ getOAuthCodeTtlMs(): number;
93
+ /**
94
+ * Gets the OAuth access token time-to-live in milliseconds.
95
+ *
96
+ * @returns OAuth token TTL in milliseconds
97
+ */
98
+ getOAuthTokenTtlMs(): number;
99
+ }
100
+ //# sourceMappingURL=serverConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverConfig.d.ts","sourceRoot":"","sources":["../../../src/core/server/serverConfig.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE;QACJ,OAAO,EAAE,OAAO,CAAC;QACjB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,cAAc,EAAE,MAAM,CAAC;QACvB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;CACH;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAsB;IAC7C,OAAO,CAAC,MAAM,CAAe;IAE7B;;;;;OAKG;IACH,OAAO;IAWP;;;;;;;OAOG;WACW,WAAW,IAAI,mBAAmB;IAOhD;;;;;;;OAOG;IACI,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAAG,IAAI;IAOzD;;;;;;;OAOG;IACI,SAAS,IAAI,YAAY;IAIhC;;;;OAIG;IACI,aAAa,IAAI,OAAO;IAI/B;;;;OAIG;IACI,oBAAoB,IAAI,MAAM;IAIrC;;;;OAIG;IACI,qBAAqB,IAAI,MAAM,GAAG,SAAS;IAIlD;;;;OAIG;IACI,iBAAiB,IAAI,MAAM;IAIlC;;;;OAIG;IACI,kBAAkB,IAAI,MAAM;CAGpC"}
@@ -0,0 +1,117 @@
1
+ import { AUTH_CONFIG } from '../../constants.js';
2
+ /**
3
+ * ServerConfigManager manages server-specific configuration settings.
4
+ *
5
+ * This singleton class handles authentication and session configuration
6
+ * that differs from the main MCP server configuration. It provides
7
+ * centralized access to server settings with default values and
8
+ * runtime configuration updates.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const configManager = ServerConfigManager.getInstance();
13
+ * configManager.updateConfig({
14
+ * auth: { enabled: true, sessionTtlMinutes: 60 }
15
+ * });
16
+ * ```
17
+ */
18
+ export class ServerConfigManager {
19
+ static instance;
20
+ config;
21
+ /**
22
+ * Private constructor to enforce singleton pattern.
23
+ *
24
+ * Initializes the configuration with default values from constants.
25
+ * Should not be called directly - use getInstance() instead.
26
+ */
27
+ constructor() {
28
+ this.config = {
29
+ auth: {
30
+ enabled: AUTH_CONFIG.DEFAULT_ENABLED,
31
+ sessionTtlMinutes: AUTH_CONFIG.DEFAULT_SESSION_TTL_MINUTES,
32
+ oauthCodeTtlMs: AUTH_CONFIG.DEFAULT_OAUTH_CODE_TTL_MS,
33
+ oauthTokenTtlMs: AUTH_CONFIG.DEFAULT_OAUTH_TOKEN_TTL_MS,
34
+ },
35
+ };
36
+ }
37
+ /**
38
+ * Gets the singleton instance of ServerConfigManager.
39
+ *
40
+ * Creates a new instance if one doesn't exist, otherwise returns
41
+ * the existing instance to ensure configuration consistency.
42
+ *
43
+ * @returns The singleton ServerConfigManager instance
44
+ */
45
+ static getInstance() {
46
+ if (!ServerConfigManager.instance) {
47
+ ServerConfigManager.instance = new ServerConfigManager();
48
+ }
49
+ return ServerConfigManager.instance;
50
+ }
51
+ /**
52
+ * Updates the server configuration with new values.
53
+ *
54
+ * Merges the provided updates with existing configuration, allowing
55
+ * partial updates while preserving other settings.
56
+ *
57
+ * @param updates - Partial configuration object with new values
58
+ */
59
+ updateConfig(updates) {
60
+ this.config = { ...this.config, ...updates };
61
+ if (updates.auth) {
62
+ this.config.auth = { ...this.config.auth, ...updates.auth };
63
+ }
64
+ }
65
+ /**
66
+ * Gets a copy of the current server configuration.
67
+ *
68
+ * Returns a deep copy to prevent external modification of the
69
+ * internal configuration state.
70
+ *
71
+ * @returns Current server configuration
72
+ */
73
+ getConfig() {
74
+ return { ...this.config };
75
+ }
76
+ /**
77
+ * Checks if authentication is currently enabled.
78
+ *
79
+ * @returns True if OAuth 2.1 authentication is enabled, false otherwise
80
+ */
81
+ isAuthEnabled() {
82
+ return this.config.auth.enabled;
83
+ }
84
+ /**
85
+ * Gets the session time-to-live in minutes.
86
+ *
87
+ * @returns Session TTL in minutes
88
+ */
89
+ getSessionTtlMinutes() {
90
+ return this.config.auth.sessionTtlMinutes;
91
+ }
92
+ /**
93
+ * Gets the custom session storage path if configured.
94
+ *
95
+ * @returns Custom session storage path or undefined if using default
96
+ */
97
+ getSessionStoragePath() {
98
+ return this.config.auth.sessionStoragePath;
99
+ }
100
+ /**
101
+ * Gets the OAuth authorization code time-to-live in milliseconds.
102
+ *
103
+ * @returns OAuth code TTL in milliseconds
104
+ */
105
+ getOAuthCodeTtlMs() {
106
+ return this.config.auth.oauthCodeTtlMs;
107
+ }
108
+ /**
109
+ * Gets the OAuth access token time-to-live in milliseconds.
110
+ *
111
+ * @returns OAuth token TTL in milliseconds
112
+ */
113
+ getOAuthTokenTtlMs() {
114
+ return this.config.auth.oauthTokenTtlMs;
115
+ }
116
+ }
117
+ //# sourceMappingURL=serverConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"serverConfig.js","sourceRoot":"","sources":["../../../src/core/server/serverConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAkBjD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,OAAO,mBAAmB;IACtB,MAAM,CAAC,QAAQ,CAAsB;IACrC,MAAM,CAAe;IAE7B;;;;;OAKG;IACH;QACE,IAAI,CAAC,MAAM,GAAG;YACZ,IAAI,EAAE;gBACJ,OAAO,EAAE,WAAW,CAAC,eAAe;gBACpC,iBAAiB,EAAE,WAAW,CAAC,2BAA2B;gBAC1D,cAAc,EAAE,WAAW,CAAC,yBAAyB;gBACrD,eAAe,EAAE,WAAW,CAAC,0BAA0B;aACxD;SACF,CAAC;IACJ,CAAC;IAED;;;;;;;OAOG;IACI,MAAM,CAAC,WAAW;QACvB,IAAI,CAAC,mBAAmB,CAAC,QAAQ,EAAE,CAAC;YAClC,mBAAmB,CAAC,QAAQ,GAAG,IAAI,mBAAmB,EAAE,CAAC;QAC3D,CAAC;QACD,OAAO,mBAAmB,CAAC,QAAQ,CAAC;IACtC,CAAC;IAED;;;;;;;OAOG;IACI,YAAY,CAAC,OAA8B;QAChD,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,GAAG,OAAO,EAAE,CAAC;QAC7C,IAAI,OAAO,CAAC,IAAI,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC9D,CAAC;IACH,CAAC;IAED;;;;;;;OAOG;IACI,SAAS;QACd,OAAO,EAAE,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACI,aAAa;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACI,oBAAoB;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC;IAC5C,CAAC;IAED;;;;OAIG;IACI,qBAAqB;QAC1B,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC;IAC7C,CAAC;IAED;;;;OAIG;IACI,iBAAiB;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACI,kBAAkB;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC;IAC1C,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
1
  import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
2
- import { Clients, ServerInfo, ServerInfoExtra } from './types.js';
2
+ import { Clients, ServerInfo, ServerInfoExtra } from '../types/index.js';
3
3
  export declare class ServerManager {
4
4
  private static instance;
5
5
  private servers;
@@ -7,6 +7,8 @@ export declare class ServerManager {
7
7
  private serverCapabilities;
8
8
  private clients;
9
9
  private transports;
10
+ private connectionSemaphore;
11
+ private disconnectingIds;
10
12
  private constructor();
11
13
  static getOrCreateInstance(config: {
12
14
  name: string;
@@ -15,8 +17,11 @@ export declare class ServerManager {
15
17
  capabilities: Record<string, unknown>;
16
18
  }, clients: Clients, transports: Record<string, Transport>): ServerManager;
17
19
  static get current(): ServerManager;
20
+ static resetInstance(): void;
18
21
  connectTransport(transport: Transport, sessionId: string, opts: ServerInfoExtra): Promise<void>;
19
- disconnectTransport(sessionId: string): void;
22
+ private performConnection;
23
+ private doConnect;
24
+ disconnectTransport(sessionId: string, forceClose?: boolean): void;
20
25
  getTransport(sessionId: string): Transport | undefined;
21
26
  getTransports(): Map<string, Transport>;
22
27
  getClientTransports(): Record<string, Transport>;