@1mcp/agent 0.12.0 → 0.13.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 (161) hide show
  1. package/README.md +22 -37
  2. package/build/auth/clientSessionManager.d.ts +94 -0
  3. package/build/auth/clientSessionManager.d.ts.map +1 -0
  4. package/build/auth/clientSessionManager.js +220 -0
  5. package/build/auth/clientSessionManager.js.map +1 -0
  6. package/build/auth/sdkOAuthClientProvider.d.ts +93 -0
  7. package/build/auth/sdkOAuthClientProvider.d.ts.map +1 -0
  8. package/build/auth/sdkOAuthClientProvider.js +199 -0
  9. package/build/auth/sdkOAuthClientProvider.js.map +1 -0
  10. package/build/auth/sdkOAuthServerProvider.d.ts +63 -0
  11. package/build/auth/sdkOAuthServerProvider.d.ts.map +1 -0
  12. package/build/auth/sdkOAuthServerProvider.js +428 -0
  13. package/build/auth/sdkOAuthServerProvider.js.map +1 -0
  14. package/build/auth/{sessionManager.d.ts → serverSessionManager.d.ts} +24 -36
  15. package/build/auth/serverSessionManager.d.ts.map +1 -0
  16. package/build/auth/{sessionManager.js → serverSessionManager.js} +77 -24
  17. package/build/auth/serverSessionManager.js.map +1 -0
  18. package/build/auth/sessionTypes.d.ts +24 -0
  19. package/build/auth/sessionTypes.d.ts.map +1 -0
  20. package/build/auth/sessionTypes.js +3 -0
  21. package/build/auth/sessionTypes.js.map +1 -0
  22. package/build/capabilities/capabilityManager.d.ts +2 -2
  23. package/build/capabilities/capabilityManager.d.ts.map +1 -1
  24. package/build/capabilities/capabilityManager.js +1 -1
  25. package/build/capabilities/capabilityManager.js.map +1 -1
  26. package/build/config/{configManager.d.ts → mcpConfigManager.d.ts} +11 -6
  27. package/build/config/mcpConfigManager.d.ts.map +1 -0
  28. package/build/config/{configManager.js → mcpConfigManager.js} +26 -8
  29. package/build/config/mcpConfigManager.js.map +1 -0
  30. package/build/constants.d.ts +36 -14
  31. package/build/constants.d.ts.map +1 -1
  32. package/build/constants.js +40 -17
  33. package/build/constants.js.map +1 -1
  34. package/build/core/client/clientManager.d.ts +14 -6
  35. package/build/core/client/clientManager.d.ts.map +1 -1
  36. package/build/core/client/clientManager.js +90 -28
  37. package/build/core/client/clientManager.js.map +1 -1
  38. package/build/core/server/{serverConfig.d.ts → agentConfig.d.ts} +50 -15
  39. package/build/core/server/agentConfig.d.ts.map +1 -0
  40. package/build/core/server/agentConfig.js +166 -0
  41. package/build/core/server/agentConfig.js.map +1 -0
  42. package/build/core/server/serverManager.d.ts +12 -5
  43. package/build/core/server/serverManager.d.ts.map +1 -1
  44. package/build/core/server/serverManager.js +12 -2
  45. package/build/core/server/serverManager.js.map +1 -1
  46. package/build/core/types/client.d.ts +22 -9
  47. package/build/core/types/client.d.ts.map +1 -1
  48. package/build/core/types/client.js +2 -0
  49. package/build/core/types/client.js.map +1 -1
  50. package/build/core/types/server.d.ts +3 -3
  51. package/build/core/types/server.d.ts.map +1 -1
  52. package/build/core/types/transport.d.ts +58 -0
  53. package/build/core/types/transport.d.ts.map +1 -1
  54. package/build/core/types/transport.js +10 -0
  55. package/build/core/types/transport.js.map +1 -1
  56. package/build/handlers/notificationHandlers.d.ts +3 -3
  57. package/build/handlers/notificationHandlers.d.ts.map +1 -1
  58. package/build/handlers/notificationHandlers.js +2 -2
  59. package/build/handlers/notificationHandlers.js.map +1 -1
  60. package/build/handlers/requestHandlers.d.ts +2 -2
  61. package/build/handlers/requestHandlers.d.ts.map +1 -1
  62. package/build/handlers/requestHandlers.js +4 -3
  63. package/build/handlers/requestHandlers.js.map +1 -1
  64. package/build/index.js +47 -7
  65. package/build/index.js.map +1 -1
  66. package/build/{transport/http/middleware/loggingMiddleware.d.ts → logger/mcpLoggingEnhancer.d.ts} +1 -1
  67. package/build/logger/mcpLoggingEnhancer.d.ts.map +1 -0
  68. package/build/{transport/http/middleware/loggingMiddleware.js → logger/mcpLoggingEnhancer.js} +2 -2
  69. package/build/logger/mcpLoggingEnhancer.js.map +1 -0
  70. package/build/server.js +4 -4
  71. package/build/server.js.map +1 -1
  72. package/build/services/configReloadService.d.ts +2 -2
  73. package/build/services/configReloadService.d.ts.map +1 -1
  74. package/build/services/configReloadService.js +4 -4
  75. package/build/services/configReloadService.js.map +1 -1
  76. package/build/transport/http/middlewares/errorHandler.d.ts.map +1 -0
  77. package/build/transport/http/{errorHandler.js → middlewares/errorHandler.js} +1 -1
  78. package/build/transport/http/middlewares/errorHandler.js.map +1 -0
  79. package/build/transport/http/middlewares/scopeAuthMiddleware.d.ts +42 -0
  80. package/build/transport/http/middlewares/scopeAuthMiddleware.d.ts.map +1 -0
  81. package/build/transport/http/middlewares/scopeAuthMiddleware.js +136 -0
  82. package/build/transport/http/middlewares/scopeAuthMiddleware.js.map +1 -0
  83. package/build/transport/http/middlewares/securityMiddleware.d.ts +30 -0
  84. package/build/transport/http/middlewares/securityMiddleware.d.ts.map +1 -0
  85. package/build/transport/http/middlewares/securityMiddleware.js +201 -0
  86. package/build/transport/http/middlewares/securityMiddleware.js.map +1 -0
  87. package/build/transport/http/middlewares/tagsExtractor.d.ts.map +1 -0
  88. package/build/transport/http/middlewares/tagsExtractor.js.map +1 -0
  89. package/build/transport/http/routes/oauthRoutes.d.ts +3 -13
  90. package/build/transport/http/routes/oauthRoutes.d.ts.map +1 -1
  91. package/build/transport/http/routes/oauthRoutes.js +459 -117
  92. package/build/transport/http/routes/oauthRoutes.js.map +1 -1
  93. package/build/transport/http/routes/sseRoutes.d.ts +2 -2
  94. package/build/transport/http/routes/sseRoutes.d.ts.map +1 -1
  95. package/build/transport/http/routes/sseRoutes.js +9 -7
  96. package/build/transport/http/routes/sseRoutes.js.map +1 -1
  97. package/build/transport/http/routes/streamableHttpRoutes.d.ts +2 -2
  98. package/build/transport/http/routes/streamableHttpRoutes.d.ts.map +1 -1
  99. package/build/transport/http/routes/streamableHttpRoutes.js +16 -10
  100. package/build/transport/http/routes/streamableHttpRoutes.js.map +1 -1
  101. package/build/transport/http/server.d.ts +3 -2
  102. package/build/transport/http/server.d.ts.map +1 -1
  103. package/build/transport/http/server.js +58 -21
  104. package/build/transport/http/server.js.map +1 -1
  105. package/build/transport/transportFactory.d.ts +9 -0
  106. package/build/transport/transportFactory.d.ts.map +1 -0
  107. package/build/transport/transportFactory.js +148 -0
  108. package/build/transport/transportFactory.js.map +1 -0
  109. package/build/utils/clientFiltering.d.ts +4 -4
  110. package/build/utils/clientFiltering.d.ts.map +1 -1
  111. package/build/utils/clientFiltering.js +14 -14
  112. package/build/utils/clientFiltering.js.map +1 -1
  113. package/build/utils/errorHandling.d.ts +0 -12
  114. package/build/utils/errorHandling.d.ts.map +1 -1
  115. package/build/utils/errorHandling.js +1 -42
  116. package/build/utils/errorHandling.js.map +1 -1
  117. package/build/utils/pagination.d.ts +2 -2
  118. package/build/utils/pagination.d.ts.map +1 -1
  119. package/build/utils/pagination.js +4 -4
  120. package/build/utils/pagination.js.map +1 -1
  121. package/build/utils/parsing.d.ts +13 -0
  122. package/build/utils/parsing.d.ts.map +1 -0
  123. package/build/utils/parsing.js +32 -0
  124. package/build/utils/parsing.js.map +1 -0
  125. package/build/utils/sanitization.d.ts +60 -0
  126. package/build/utils/sanitization.d.ts.map +1 -0
  127. package/build/utils/sanitization.js +149 -0
  128. package/build/utils/sanitization.js.map +1 -0
  129. package/build/utils/scopeValidation.d.ts +102 -0
  130. package/build/utils/scopeValidation.d.ts.map +1 -0
  131. package/build/utils/scopeValidation.js +244 -0
  132. package/build/utils/scopeValidation.js.map +1 -0
  133. package/package.json +20 -11
  134. package/build/auth/authManager.d.ts +0 -109
  135. package/build/auth/authManager.d.ts.map +0 -1
  136. package/build/auth/authManager.js +0 -173
  137. package/build/auth/authManager.js.map +0 -1
  138. package/build/auth/authMiddleware.d.ts +0 -16
  139. package/build/auth/authMiddleware.d.ts.map +0 -1
  140. package/build/auth/authMiddleware.js +0 -45
  141. package/build/auth/authMiddleware.js.map +0 -1
  142. package/build/auth/sessionManager.d.ts.map +0 -1
  143. package/build/auth/sessionManager.js.map +0 -1
  144. package/build/config/configManager.d.ts.map +0 -1
  145. package/build/config/configManager.js.map +0 -1
  146. package/build/core/server/serverConfig.d.ts.map +0 -1
  147. package/build/core/server/serverConfig.js +0 -117
  148. package/build/core/server/serverConfig.js.map +0 -1
  149. package/build/transport/config.d.ts +0 -7
  150. package/build/transport/config.d.ts.map +0 -1
  151. package/build/transport/config.js +0 -90
  152. package/build/transport/config.js.map +0 -1
  153. package/build/transport/http/errorHandler.d.ts.map +0 -1
  154. package/build/transport/http/errorHandler.js.map +0 -1
  155. package/build/transport/http/middleware/loggingMiddleware.d.ts.map +0 -1
  156. package/build/transport/http/middleware/loggingMiddleware.js.map +0 -1
  157. package/build/utils/tagsExtractor.d.ts.map +0 -1
  158. package/build/utils/tagsExtractor.js.map +0 -1
  159. /package/build/transport/http/{errorHandler.d.ts → middlewares/errorHandler.d.ts} +0 -0
  160. /package/build/{utils → transport/http/middlewares}/tagsExtractor.d.ts +0 -0
  161. /package/build/{utils → transport/http/middlewares}/tagsExtractor.js +0 -0
@@ -1 +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
+ {"version":3,"file":"clientManager.d.ts","sourceRoot":"","sources":["../../../src/core/client/clientManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AAQnE,OAAO,EAEL,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,mBAAmB,CAAC;AAG3B;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAkEnH;AA4DD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,GAAG,kBAAkB,CAM9F;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,mBAAmB,EAC5B,UAAU,EAAE,MAAM,EAClB,SAAS,EAAE,CAAC,UAAU,EAAE,kBAAkB,KAAK,OAAO,CAAC,CAAC,CAAC,EACzD,OAAO,GAAE,gBAAqB,EAC9B,kBAAkB,CAAC,EAAE,gBAAgB,GACpC,OAAO,CAAC,CAAC,CAAC,CAQZ;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,CAAC,EAC5C,MAAM,EAAE,iBAAiB,EACzB,SAAS,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,CAAC,CAAC,EACpD,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,CAAC,CAAC,CAEZ;AAED;;GAEG;AACH,qBAAa,kBAAmB,SAAQ,KAAK;IAElC,UAAU,EAAE,MAAM;IAClB,MAAM,EAAE,MAAM;gBADd,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM;CAKxB"}
@@ -1,79 +1,128 @@
1
1
  import { ErrorCode } from '@modelcontextprotocol/sdk/types.js';
2
+ import { UnauthorizedError } from '@modelcontextprotocol/sdk/client/auth.js';
2
3
  import createClient from './clientFactory.js';
3
4
  import logger from '../../logger/logger.js';
4
5
  import { CONNECTION_RETRY, MCP_SERVER_NAME } from '../../constants.js';
5
6
  import { ClientConnectionError, ClientNotFoundError, MCPError, CapabilityError } from '../../utils/errorTypes.js';
6
- import { ClientStatus } from '../types/index.js';
7
+ import { ClientStatus, } from '../types/index.js';
8
+ import { AgentConfigManager } from '../server/agentConfig.js';
7
9
  /**
8
10
  * Creates client instances for all transports with retry logic
9
11
  * @param transports Record of transport instances
10
12
  * @returns Record of client instances
11
13
  */
12
14
  export async function createClients(transports) {
13
- const clients = {};
15
+ const clients = new Map();
14
16
  for (const [name, transport] of Object.entries(transports)) {
15
17
  logger.info(`Creating client for ${name}`);
16
18
  try {
17
19
  const client = await createClient();
18
20
  // Connect with retry logic
19
- await connectWithRetry(client, transport, name);
20
- clients[name] = {
21
+ const connectedClient = await connectWithRetry(client, transport, name);
22
+ clients.set(name, {
21
23
  name,
22
24
  transport,
23
- client,
25
+ client: connectedClient,
24
26
  status: ClientStatus.Connected,
25
27
  lastConnected: new Date(),
26
- };
28
+ });
27
29
  logger.info(`Client created for ${name}`);
28
- client.onclose = () => {
29
- clients[name].status = ClientStatus.Disconnected;
30
+ connectedClient.onclose = () => {
31
+ const clientInfo = clients.get(name);
32
+ if (clientInfo) {
33
+ clientInfo.status = ClientStatus.Disconnected;
34
+ }
30
35
  logger.info(`Client ${name} disconnected`);
31
36
  };
32
37
  }
33
38
  catch (error) {
34
- logger.error(`Failed to create client for ${name}: ${error}`);
35
- clients[name] = {
36
- name,
37
- transport,
38
- client: await createClient(),
39
- status: ClientStatus.Error,
40
- lastError: error instanceof Error ? error : new Error(String(error)),
41
- };
39
+ if (error instanceof OAuthRequiredError) {
40
+ // Handle OAuth required - set client to AwaitingOAuth status
41
+ logger.info(`OAuth authorization required for ${name}`);
42
+ // Try to get authorization URL from OAuth provider
43
+ let authorizationUrl;
44
+ try {
45
+ // Extract OAuth provider from transport if available
46
+ const oauthProvider = transport.oauthProvider;
47
+ if (oauthProvider && typeof oauthProvider.getAuthorizationUrl === 'function') {
48
+ authorizationUrl = oauthProvider.getAuthorizationUrl();
49
+ }
50
+ }
51
+ catch (urlError) {
52
+ logger.warn(`Could not extract authorization URL for ${name}:`, urlError);
53
+ }
54
+ clients.set(name, {
55
+ name,
56
+ transport,
57
+ client: error.client,
58
+ status: ClientStatus.AwaitingOAuth,
59
+ authorizationUrl,
60
+ oauthStartTime: new Date(),
61
+ });
62
+ }
63
+ else {
64
+ logger.error(`Failed to create client for ${name}: ${error}`);
65
+ clients.set(name, {
66
+ name,
67
+ transport,
68
+ client: await createClient(),
69
+ status: ClientStatus.Error,
70
+ lastError: error instanceof Error ? error : new Error(String(error)),
71
+ });
72
+ }
42
73
  }
43
74
  }
44
- return Object.freeze(clients);
75
+ return clients;
45
76
  }
46
77
  /**
47
- * Connects a client to its transport with retry logic
78
+ * Connects a client to its transport with retry logic and OAuth support
48
79
  * @param client The client to connect
49
80
  * @param transport The transport to connect to
50
81
  * @param name The name of the client for logging
82
+ * @returns The connected client (may be a new instance after retries)
51
83
  */
52
84
  async function connectWithRetry(client, transport, name) {
53
85
  let retryDelay = CONNECTION_RETRY.INITIAL_DELAY_MS;
86
+ let currentClient = client;
54
87
  for (let i = 0; i < CONNECTION_RETRY.MAX_ATTEMPTS; i++) {
55
88
  try {
56
- await client.connect(transport);
57
- const sv = await client.getServerVersion();
89
+ await currentClient.connect(transport);
90
+ const sv = await currentClient.getServerVersion();
58
91
  if (sv?.name === MCP_SERVER_NAME) {
59
92
  throw new ClientConnectionError(name, new Error('Aborted to prevent circular dependency'));
60
93
  }
61
94
  logger.info(`Successfully connected to ${name} with server ${sv?.name} version ${sv?.version}`);
62
- return;
95
+ return currentClient;
63
96
  }
64
97
  catch (error) {
65
- logger.error(`Failed to connect to ${name}: ${error}`);
66
- if (i < CONNECTION_RETRY.MAX_ATTEMPTS - 1) {
67
- logger.info(`Retrying in ${retryDelay}ms...`);
68
- await new Promise((resolve) => setTimeout(resolve, retryDelay));
69
- retryDelay *= 2; // Exponential backoff
98
+ // Handle OAuth authorization flow (managed by SDK)
99
+ if (error instanceof UnauthorizedError) {
100
+ const serverConfig = AgentConfigManager.getInstance().getConfig();
101
+ logger.info(`OAuth authorization required for ${name}. Visit http://localhost:${serverConfig.port}/oauth to authorize`);
102
+ // Throw special error that includes OAuth info
103
+ throw new OAuthRequiredError(name, currentClient);
70
104
  }
105
+ // Handle other connection errors
71
106
  else {
72
- throw new ClientConnectionError(name, error instanceof Error ? error : new Error(String(error)));
107
+ const errorMessage = error instanceof Error ? error.message : String(error);
108
+ logger.error(`Failed to connect to ${name}: ${errorMessage}`);
109
+ if (i < CONNECTION_RETRY.MAX_ATTEMPTS - 1) {
110
+ logger.info(`Retrying in ${retryDelay}ms...`);
111
+ await new Promise((resolve) => setTimeout(resolve, retryDelay));
112
+ retryDelay *= 2; // Exponential backoff
113
+ // Create a new client for retry to avoid "already started" errors
114
+ currentClient = await createClient();
115
+ }
116
+ else {
117
+ throw new ClientConnectionError(name, error instanceof Error ? error : new Error(String(error)));
118
+ }
73
119
  }
74
120
  }
75
121
  }
122
+ // This should never be reached due to the throw in the else block above
123
+ throw new ClientConnectionError(name, new Error('Max retries exceeded'));
76
124
  }
125
+ // OAuth authorization flow is now handled by the SDK's built-in implementation
77
126
  /**
78
127
  * Gets a client by name with error handling
79
128
  * @param clients Record of client instances
@@ -82,7 +131,7 @@ async function connectWithRetry(client, transport, name) {
82
131
  * @throws ClientNotFoundError if the client is not found
83
132
  */
84
133
  export function getClient(clients, clientName) {
85
- const client = clients[clientName];
134
+ const client = clients.get(clientName);
86
135
  if (!client) {
87
136
  throw new ClientNotFoundError(clientName);
88
137
  }
@@ -144,4 +193,17 @@ export async function executeClientOperation(clients, clientName, operation, opt
144
193
  export async function executeServerOperation(server, operation, options = {}) {
145
194
  return executeOperation(() => operation(server), 'server', options);
146
195
  }
196
+ /**
197
+ * Custom error class for OAuth authorization required
198
+ */
199
+ export class OAuthRequiredError extends Error {
200
+ serverName;
201
+ client;
202
+ constructor(serverName, client) {
203
+ super(`OAuth authorization required for ${serverName}`);
204
+ this.serverName = serverName;
205
+ this.client = client;
206
+ this.name = 'OAuthRequiredError';
207
+ }
208
+ }
147
209
  //# sourceMappingURL=clientManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"clientManager.js","sourceRoot":"","sources":["../../../src/core/client/clientManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"clientManager.js","sourceRoot":"","sources":["../../../src/core/client/clientManager.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,12 @@
1
1
  /**
2
- * Configuration interface for server-specific settings.
2
+ * Configuration interface for agent-specific settings.
3
3
  *
4
4
  * Defines the structure for authentication and session management configuration
5
5
  * that can be customized via CLI arguments or environment variables.
6
6
  */
7
- export interface ServerConfig {
7
+ export interface AgentConfig {
8
+ host: string;
9
+ port: number;
8
10
  auth: {
9
11
  enabled: boolean;
10
12
  sessionTtlMinutes: number;
@@ -12,24 +14,33 @@ export interface ServerConfig {
12
14
  oauthCodeTtlMs: number;
13
15
  oauthTokenTtlMs: number;
14
16
  };
17
+ rateLimit: {
18
+ windowMs: number;
19
+ max: number;
20
+ };
21
+ features: {
22
+ auth: boolean;
23
+ scopeValidation: boolean;
24
+ enhancedSecurity: boolean;
25
+ };
15
26
  }
16
27
  /**
17
- * ServerConfigManager manages server-specific configuration settings.
28
+ * AgentConfigManager manages agent-specific configuration settings.
18
29
  *
19
30
  * This singleton class handles authentication and session configuration
20
31
  * that differs from the main MCP server configuration. It provides
21
- * centralized access to server settings with default values and
32
+ * centralized access to agent settings with default values and
22
33
  * runtime configuration updates.
23
34
  *
24
35
  * @example
25
36
  * ```typescript
26
- * const configManager = ServerConfigManager.getInstance();
37
+ * const configManager = AgentConfigManager.getInstance();
27
38
  * configManager.updateConfig({
28
39
  * auth: { enabled: true, sessionTtlMinutes: 60 }
29
40
  * });
30
41
  * ```
31
42
  */
32
- export declare class ServerConfigManager {
43
+ export declare class AgentConfigManager {
33
44
  private static instance;
34
45
  private config;
35
46
  /**
@@ -40,32 +51,32 @@ export declare class ServerConfigManager {
40
51
  */
41
52
  private constructor();
42
53
  /**
43
- * Gets the singleton instance of ServerConfigManager.
54
+ * Gets the singleton instance of AgentConfigManager.
44
55
  *
45
56
  * Creates a new instance if one doesn't exist, otherwise returns
46
57
  * the existing instance to ensure configuration consistency.
47
58
  *
48
- * @returns The singleton ServerConfigManager instance
59
+ * @returns The singleton AgentConfigManager instance
49
60
  */
50
- static getInstance(): ServerConfigManager;
61
+ static getInstance(): AgentConfigManager;
51
62
  /**
52
- * Updates the server configuration with new values.
63
+ * Updates the agent configuration with new values.
53
64
  *
54
65
  * Merges the provided updates with existing configuration, allowing
55
66
  * partial updates while preserving other settings.
56
67
  *
57
68
  * @param updates - Partial configuration object with new values
58
69
  */
59
- updateConfig(updates: Partial<ServerConfig>): void;
70
+ updateConfig(updates: Partial<AgentConfig>): void;
60
71
  /**
61
- * Gets a copy of the current server configuration.
72
+ * Gets a copy of the current agent configuration.
62
73
  *
63
74
  * Returns a deep copy to prevent external modification of the
64
75
  * internal configuration state.
65
76
  *
66
- * @returns Current server configuration
77
+ * @returns Current agent configuration
67
78
  */
68
- getConfig(): ServerConfig;
79
+ getConfig(): AgentConfig;
69
80
  /**
70
81
  * Checks if authentication is currently enabled.
71
82
  *
@@ -96,5 +107,29 @@ export declare class ServerConfigManager {
96
107
  * @returns OAuth token TTL in milliseconds
97
108
  */
98
109
  getOAuthTokenTtlMs(): number;
110
+ /**
111
+ * Gets the rate limit window in milliseconds.
112
+ *
113
+ * @returns Rate limit window in milliseconds
114
+ */
115
+ getRateLimitWindowMs(): number;
116
+ /**
117
+ * Gets the maximum number of requests per rate limit window.
118
+ *
119
+ * @returns Maximum requests per window
120
+ */
121
+ getRateLimitMax(): number;
122
+ /**
123
+ * Checks if scope validation is enabled.
124
+ *
125
+ * @returns True if tag-based scope validation is enabled, false otherwise
126
+ */
127
+ isScopeValidationEnabled(): boolean;
128
+ /**
129
+ * Checks if enhanced security middleware is enabled.
130
+ *
131
+ * @returns True if enhanced security middleware is enabled, false otherwise
132
+ */
133
+ isEnhancedSecurityEnabled(): boolean;
99
134
  }
100
- //# sourceMappingURL=serverConfig.d.ts.map
135
+ //# sourceMappingURL=agentConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentConfig.d.ts","sourceRoot":"","sources":["../../../src/core/server/agentConfig.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,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;IACF,SAAS,EAAE;QACT,QAAQ,EAAE,MAAM,CAAC;QACjB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC;IACF,QAAQ,EAAE;QACR,IAAI,EAAE,OAAO,CAAC;QACd,eAAe,EAAE,OAAO,CAAC;QACzB,gBAAgB,EAAE,OAAO,CAAC;KAC3B,CAAC;CACH;AAED;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqB;IAC5C,OAAO,CAAC,MAAM,CAAc;IAE5B;;;;;OAKG;IACH,OAAO;IAsBP;;;;;;;OAOG;WACW,WAAW,IAAI,kBAAkB;IAO/C;;;;;;;OAOG;IACI,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAaxD;;;;;;;OAOG;IACI,SAAS,IAAI,WAAW;IAI/B;;;;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;IAInC;;;;OAIG;IACI,oBAAoB,IAAI,MAAM;IAIrC;;;;OAIG;IACI,eAAe,IAAI,MAAM;IAIhC;;;;OAIG;IACI,wBAAwB,IAAI,OAAO;IAI1C;;;;OAIG;IACI,yBAAyB,IAAI,OAAO;CAG5C"}
@@ -0,0 +1,166 @@
1
+ import { AUTH_CONFIG, HOST, PORT, RATE_LIMIT_CONFIG } from '../../constants.js';
2
+ /**
3
+ * AgentConfigManager manages agent-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 agent settings with default values and
8
+ * runtime configuration updates.
9
+ *
10
+ * @example
11
+ * ```typescript
12
+ * const configManager = AgentConfigManager.getInstance();
13
+ * configManager.updateConfig({
14
+ * auth: { enabled: true, sessionTtlMinutes: 60 }
15
+ * });
16
+ * ```
17
+ */
18
+ export class AgentConfigManager {
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
+ host: HOST,
30
+ port: PORT,
31
+ auth: {
32
+ enabled: AUTH_CONFIG.SERVER.DEFAULT_ENABLED,
33
+ sessionTtlMinutes: AUTH_CONFIG.SERVER.SESSION.TTL_MINUTES,
34
+ oauthCodeTtlMs: AUTH_CONFIG.SERVER.OAUTH.CODE_TTL_MS,
35
+ oauthTokenTtlMs: AUTH_CONFIG.SERVER.OAUTH.TOKEN_TTL_MS,
36
+ },
37
+ rateLimit: {
38
+ windowMs: RATE_LIMIT_CONFIG.OAUTH.WINDOW_MS,
39
+ max: RATE_LIMIT_CONFIG.OAUTH.MAX,
40
+ },
41
+ features: {
42
+ auth: AUTH_CONFIG.SERVER.DEFAULT_ENABLED,
43
+ scopeValidation: AUTH_CONFIG.SERVER.DEFAULT_ENABLED,
44
+ enhancedSecurity: false,
45
+ },
46
+ };
47
+ }
48
+ /**
49
+ * Gets the singleton instance of AgentConfigManager.
50
+ *
51
+ * Creates a new instance if one doesn't exist, otherwise returns
52
+ * the existing instance to ensure configuration consistency.
53
+ *
54
+ * @returns The singleton AgentConfigManager instance
55
+ */
56
+ static getInstance() {
57
+ if (!AgentConfigManager.instance) {
58
+ AgentConfigManager.instance = new AgentConfigManager();
59
+ }
60
+ return AgentConfigManager.instance;
61
+ }
62
+ /**
63
+ * Updates the agent configuration with new values.
64
+ *
65
+ * Merges the provided updates with existing configuration, allowing
66
+ * partial updates while preserving other settings.
67
+ *
68
+ * @param updates - Partial configuration object with new values
69
+ */
70
+ updateConfig(updates) {
71
+ this.config = { ...this.config, ...updates };
72
+ if (updates.auth) {
73
+ this.config.auth = { ...this.config.auth, ...updates.auth };
74
+ }
75
+ if (updates.rateLimit) {
76
+ this.config.rateLimit = { ...this.config.rateLimit, ...updates.rateLimit };
77
+ }
78
+ if (updates.features) {
79
+ this.config.features = { ...this.config.features, ...updates.features };
80
+ }
81
+ }
82
+ /**
83
+ * Gets a copy of the current agent configuration.
84
+ *
85
+ * Returns a deep copy to prevent external modification of the
86
+ * internal configuration state.
87
+ *
88
+ * @returns Current agent configuration
89
+ */
90
+ getConfig() {
91
+ return { ...this.config };
92
+ }
93
+ /**
94
+ * Checks if authentication is currently enabled.
95
+ *
96
+ * @returns True if OAuth 2.1 authentication is enabled, false otherwise
97
+ */
98
+ isAuthEnabled() {
99
+ return this.config.features.auth;
100
+ }
101
+ /**
102
+ * Gets the session time-to-live in minutes.
103
+ *
104
+ * @returns Session TTL in minutes
105
+ */
106
+ getSessionTtlMinutes() {
107
+ return this.config.auth.sessionTtlMinutes;
108
+ }
109
+ /**
110
+ * Gets the custom session storage path if configured.
111
+ *
112
+ * @returns Custom session storage path or undefined if using default
113
+ */
114
+ getSessionStoragePath() {
115
+ return this.config.auth.sessionStoragePath;
116
+ }
117
+ /**
118
+ * Gets the OAuth authorization code time-to-live in milliseconds.
119
+ *
120
+ * @returns OAuth code TTL in milliseconds
121
+ */
122
+ getOAuthCodeTtlMs() {
123
+ return this.config.auth.oauthCodeTtlMs;
124
+ }
125
+ /**
126
+ * Gets the OAuth access token time-to-live in milliseconds.
127
+ *
128
+ * @returns OAuth token TTL in milliseconds
129
+ */
130
+ getOAuthTokenTtlMs() {
131
+ return this.config.auth.oauthTokenTtlMs;
132
+ }
133
+ /**
134
+ * Gets the rate limit window in milliseconds.
135
+ *
136
+ * @returns Rate limit window in milliseconds
137
+ */
138
+ getRateLimitWindowMs() {
139
+ return this.config.rateLimit.windowMs;
140
+ }
141
+ /**
142
+ * Gets the maximum number of requests per rate limit window.
143
+ *
144
+ * @returns Maximum requests per window
145
+ */
146
+ getRateLimitMax() {
147
+ return this.config.rateLimit.max;
148
+ }
149
+ /**
150
+ * Checks if scope validation is enabled.
151
+ *
152
+ * @returns True if tag-based scope validation is enabled, false otherwise
153
+ */
154
+ isScopeValidationEnabled() {
155
+ return this.config.features.scopeValidation;
156
+ }
157
+ /**
158
+ * Checks if enhanced security middleware is enabled.
159
+ *
160
+ * @returns True if enhanced security middleware is enabled, false otherwise
161
+ */
162
+ isEnhancedSecurityEnabled() {
163
+ return this.config.features.enhancedSecurity;
164
+ }
165
+ }
166
+ //# sourceMappingURL=agentConfig.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentConfig.js","sourceRoot":"","sources":["../../../src/core/server/agentConfig.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { Transport } from '@modelcontextprotocol/sdk/shared/transport.js';
2
- import { Clients, ServerInfo, ServerInfoExtra } from '../types/index.js';
2
+ import { OutboundConnections, InboundConnection, InboundConnectionConfig } from '../types/index.js';
3
+ import type { OutboundConnection } from '../types/client.js';
3
4
  export declare class ServerManager {
4
5
  private static instance;
5
6
  private servers;
@@ -15,18 +16,24 @@ export declare class ServerManager {
15
16
  version: string;
16
17
  }, capabilities: {
17
18
  capabilities: Record<string, unknown>;
18
- }, clients: Clients, transports: Record<string, Transport>): ServerManager;
19
+ }, clients: OutboundConnections, transports: Record<string, Transport>): ServerManager;
19
20
  static get current(): ServerManager;
20
21
  static resetInstance(): void;
21
- connectTransport(transport: Transport, sessionId: string, opts: ServerInfoExtra): Promise<void>;
22
+ connectTransport(transport: Transport, sessionId: string, opts: InboundConnectionConfig): Promise<void>;
22
23
  private performConnection;
23
24
  private doConnect;
24
25
  disconnectTransport(sessionId: string, forceClose?: boolean): void;
25
26
  getTransport(sessionId: string): Transport | undefined;
26
27
  getTransports(): Map<string, Transport>;
27
28
  getClientTransports(): Record<string, Transport>;
29
+ getClients(): OutboundConnections;
30
+ /**
31
+ * Safely get a client by name. Returns undefined if not found or not an own property.
32
+ * Encapsulates access to prevent prototype pollution and accidental key collisions.
33
+ */
34
+ getClient(serverName: string): OutboundConnection | undefined;
28
35
  getActiveTransportsCount(): number;
29
- getServer(sessionId: string): ServerInfo | undefined;
30
- updateClientsAndTransports(newClients: Clients, newTransports: Record<string, Transport>): void;
36
+ getServer(sessionId: string): InboundConnection | undefined;
37
+ updateClientsAndTransports(newClients: OutboundConnections, newTransports: Record<string, Transport>): void;
31
38
  }
32
39
  //# sourceMappingURL=serverManager.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"serverManager.d.ts","sourceRoot":"","sources":["../../../src/core/server/serverManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAK1E,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAEzE,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,OAAO,CAAsC;IACrD,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,kBAAkB,CAA4C;IAEtE,OAAO,CAAC,OAAO,CAAe;IAC9B,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,mBAAmB,CAAyC;IACpE,OAAO,CAAC,gBAAgB,CAA0B;IAElD,OAAO;WAYO,mBAAmB,CAC/B,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EACzC,YAAY,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EACvD,OAAO,EAAE,OAAO,EAChB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GACpC,aAAa;IAOhB,WAAkB,OAAO,IAAI,aAAa,CAEzC;WAGa,aAAa,IAAI,IAAI;IAatB,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;YA2B9F,iBAAiB;YAoBjB,SAAS;IA4BhB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,GAAE,OAAe,GAAG,IAAI;IA8BzE,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAItD,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;IAUvC,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;IAIhD,wBAAwB,IAAI,MAAM;IAIlC,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS;IAIpD,0BAA0B,CAAC,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;CAIvG"}
1
+ {"version":3,"file":"serverManager.d.ts","sourceRoot":"","sources":["../../../src/core/server/serverManager.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAK1E,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AACpG,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7D,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAgB;IACvC,OAAO,CAAC,OAAO,CAA6C;IAC5D,OAAO,CAAC,YAAY,CAAoC;IACxD,OAAO,CAAC,kBAAkB,CAA4C;IAEtE,OAAO,CAAC,OAAO,CAA8D;IAC7E,OAAO,CAAC,UAAU,CAAiC;IACnD,OAAO,CAAC,mBAAmB,CAAyC;IACpE,OAAO,CAAC,gBAAgB,CAA0B;IAElD,OAAO;WAYO,mBAAmB,CAC/B,MAAM,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EACzC,YAAY,EAAE;QAAE,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,EACvD,OAAO,EAAE,mBAAmB,EAC5B,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GACpC,aAAa;IAOhB,WAAkB,OAAO,IAAI,aAAa,CAEzC;WAGa,aAAa,IAAI,IAAI;IAatB,gBAAgB,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;YA2BtG,iBAAiB;YAwBjB,SAAS;IA4BhB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,GAAE,OAAe,GAAG,IAAI;IA8BzE,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,GAAG,SAAS;IAItD,aAAa,IAAI,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;IAUvC,mBAAmB,IAAI,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC;IAIhD,UAAU,IAAI,mBAAmB;IAIxC;;;OAGG;IACI,SAAS,CAAC,UAAU,EAAE,MAAM,GAAG,kBAAkB,GAAG,SAAS;IAI7D,wBAAwB,IAAI,MAAM;IAIlC,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS;IAI3D,0BAA0B,CAAC,UAAU,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,IAAI;CAInH"}
@@ -2,13 +2,13 @@ import { Server } from '@modelcontextprotocol/sdk/server/index.js';
2
2
  import logger from '../../logger/logger.js';
3
3
  import configReloadService from '../../services/configReloadService.js';
4
4
  import { setupCapabilities } from '../../capabilities/capabilityManager.js';
5
- import { enhanceServerWithLogging } from '../../transport/http/middleware/loggingMiddleware.js';
5
+ import { enhanceServerWithLogging } from '../../logger/mcpLoggingEnhancer.js';
6
6
  export class ServerManager {
7
7
  static instance;
8
8
  servers = new Map();
9
9
  serverConfig;
10
10
  serverCapabilities;
11
- clients = {};
11
+ clients = new Map();
12
12
  transports = {};
13
13
  connectionSemaphore = new Map();
14
14
  disconnectingIds = new Set();
@@ -145,6 +145,16 @@ export class ServerManager {
145
145
  getClientTransports() {
146
146
  return this.transports;
147
147
  }
148
+ getClients() {
149
+ return this.clients;
150
+ }
151
+ /**
152
+ * Safely get a client by name. Returns undefined if not found or not an own property.
153
+ * Encapsulates access to prevent prototype pollution and accidental key collisions.
154
+ */
155
+ getClient(serverName) {
156
+ return this.clients.get(serverName);
157
+ }
148
158
  getActiveTransportsCount() {
149
159
  return this.servers.size;
150
160
  }
@@ -1 +1 @@
1
- {"version":3,"file":"serverManager.js","sourceRoot":"","sources":["../../../src/core/server/serverManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"serverManager.js","sourceRoot":"","sources":["../../../src/core/server/serverManager.ts"],"names":[],"mappings":"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"}