@1mcp/agent 0.12.0 → 0.13.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 (183) hide show
  1. package/README.md +22 -37
  2. package/build/auth/sdkOAuthClientProvider.d.ts +93 -0
  3. package/build/auth/sdkOAuthClientProvider.d.ts.map +1 -0
  4. package/build/auth/sdkOAuthClientProvider.js +204 -0
  5. package/build/auth/sdkOAuthClientProvider.js.map +1 -0
  6. package/build/auth/sdkOAuthServerProvider.d.ts +64 -0
  7. package/build/auth/sdkOAuthServerProvider.d.ts.map +1 -0
  8. package/build/auth/sdkOAuthServerProvider.js +359 -0
  9. package/build/auth/sdkOAuthServerProvider.js.map +1 -0
  10. package/build/auth/sessionTypes.d.ts +38 -0
  11. package/build/auth/sessionTypes.d.ts.map +1 -0
  12. package/build/auth/sessionTypes.js +3 -0
  13. package/build/auth/sessionTypes.js.map +1 -0
  14. package/build/auth/storage/authCodeRepository.d.ts +25 -0
  15. package/build/auth/storage/authCodeRepository.d.ts.map +1 -0
  16. package/build/auth/storage/authCodeRepository.js +50 -0
  17. package/build/auth/storage/authCodeRepository.js.map +1 -0
  18. package/build/auth/storage/authRequestRepository.d.ts +25 -0
  19. package/build/auth/storage/authRequestRepository.d.ts.map +1 -0
  20. package/build/auth/storage/authRequestRepository.js +51 -0
  21. package/build/auth/storage/authRequestRepository.js.map +1 -0
  22. package/build/auth/storage/clientDataRepository.d.ts +25 -0
  23. package/build/auth/storage/clientDataRepository.d.ts.map +1 -0
  24. package/build/auth/storage/clientDataRepository.js +45 -0
  25. package/build/auth/storage/clientDataRepository.js.map +1 -0
  26. package/build/auth/storage/clientSessionRepository.d.ts +77 -0
  27. package/build/auth/storage/clientSessionRepository.d.ts.map +1 -0
  28. package/build/auth/storage/clientSessionRepository.js +120 -0
  29. package/build/auth/storage/clientSessionRepository.js.map +1 -0
  30. package/build/auth/storage/fileStorageService.d.ts +68 -0
  31. package/build/auth/storage/fileStorageService.d.ts.map +1 -0
  32. package/build/auth/storage/fileStorageService.js +262 -0
  33. package/build/auth/storage/fileStorageService.js.map +1 -0
  34. package/build/auth/storage/oauthStorageService.d.ts +57 -0
  35. package/build/auth/storage/oauthStorageService.d.ts.map +1 -0
  36. package/build/auth/storage/oauthStorageService.js +131 -0
  37. package/build/auth/storage/oauthStorageService.js.map +1 -0
  38. package/build/auth/storage/sessionRepository.d.ts +29 -0
  39. package/build/auth/storage/sessionRepository.d.ts.map +1 -0
  40. package/build/auth/storage/sessionRepository.js +64 -0
  41. package/build/auth/storage/sessionRepository.js.map +1 -0
  42. package/build/capabilities/capabilityManager.d.ts +2 -2
  43. package/build/capabilities/capabilityManager.d.ts.map +1 -1
  44. package/build/capabilities/capabilityManager.js +1 -1
  45. package/build/capabilities/capabilityManager.js.map +1 -1
  46. package/build/config/{configManager.d.ts → mcpConfigManager.d.ts} +11 -6
  47. package/build/config/mcpConfigManager.d.ts.map +1 -0
  48. package/build/config/{configManager.js → mcpConfigManager.js} +26 -8
  49. package/build/config/mcpConfigManager.js.map +1 -0
  50. package/build/constants.d.ts +51 -14
  51. package/build/constants.d.ts.map +1 -1
  52. package/build/constants.js +61 -17
  53. package/build/constants.js.map +1 -1
  54. package/build/core/client/clientManager.d.ts +14 -6
  55. package/build/core/client/clientManager.d.ts.map +1 -1
  56. package/build/core/client/clientManager.js +90 -28
  57. package/build/core/client/clientManager.js.map +1 -1
  58. package/build/core/server/{serverConfig.d.ts → agentConfig.d.ts} +50 -15
  59. package/build/core/server/agentConfig.d.ts.map +1 -0
  60. package/build/core/server/agentConfig.js +166 -0
  61. package/build/core/server/agentConfig.js.map +1 -0
  62. package/build/core/server/serverManager.d.ts +12 -5
  63. package/build/core/server/serverManager.d.ts.map +1 -1
  64. package/build/core/server/serverManager.js +12 -2
  65. package/build/core/server/serverManager.js.map +1 -1
  66. package/build/core/types/client.d.ts +22 -9
  67. package/build/core/types/client.d.ts.map +1 -1
  68. package/build/core/types/client.js +2 -0
  69. package/build/core/types/client.js.map +1 -1
  70. package/build/core/types/server.d.ts +3 -3
  71. package/build/core/types/server.d.ts.map +1 -1
  72. package/build/core/types/transport.d.ts +58 -0
  73. package/build/core/types/transport.d.ts.map +1 -1
  74. package/build/core/types/transport.js +10 -0
  75. package/build/core/types/transport.js.map +1 -1
  76. package/build/handlers/notificationHandlers.d.ts +3 -3
  77. package/build/handlers/notificationHandlers.d.ts.map +1 -1
  78. package/build/handlers/notificationHandlers.js +2 -2
  79. package/build/handlers/notificationHandlers.js.map +1 -1
  80. package/build/handlers/requestHandlers.d.ts +2 -2
  81. package/build/handlers/requestHandlers.d.ts.map +1 -1
  82. package/build/handlers/requestHandlers.js +4 -3
  83. package/build/handlers/requestHandlers.js.map +1 -1
  84. package/build/index.js +47 -7
  85. package/build/index.js.map +1 -1
  86. package/build/{transport/http/middleware/loggingMiddleware.d.ts → logger/mcpLoggingEnhancer.d.ts} +1 -1
  87. package/build/logger/mcpLoggingEnhancer.d.ts.map +1 -0
  88. package/build/{transport/http/middleware/loggingMiddleware.js → logger/mcpLoggingEnhancer.js} +2 -2
  89. package/build/logger/mcpLoggingEnhancer.js.map +1 -0
  90. package/build/server.js +4 -4
  91. package/build/server.js.map +1 -1
  92. package/build/services/configReloadService.d.ts +2 -2
  93. package/build/services/configReloadService.d.ts.map +1 -1
  94. package/build/services/configReloadService.js +4 -4
  95. package/build/services/configReloadService.js.map +1 -1
  96. package/build/transport/http/middlewares/errorHandler.d.ts.map +1 -0
  97. package/build/transport/http/{errorHandler.js → middlewares/errorHandler.js} +1 -1
  98. package/build/transport/http/middlewares/errorHandler.js.map +1 -0
  99. package/build/transport/http/middlewares/scopeAuthMiddleware.d.ts +39 -0
  100. package/build/transport/http/middlewares/scopeAuthMiddleware.d.ts.map +1 -0
  101. package/build/transport/http/middlewares/scopeAuthMiddleware.js +129 -0
  102. package/build/transport/http/middlewares/scopeAuthMiddleware.js.map +1 -0
  103. package/build/transport/http/middlewares/securityMiddleware.d.ts +30 -0
  104. package/build/transport/http/middlewares/securityMiddleware.d.ts.map +1 -0
  105. package/build/transport/http/middlewares/securityMiddleware.js +201 -0
  106. package/build/transport/http/middlewares/securityMiddleware.js.map +1 -0
  107. package/build/transport/http/middlewares/tagsExtractor.d.ts.map +1 -0
  108. package/build/transport/http/middlewares/tagsExtractor.js.map +1 -0
  109. package/build/transport/http/routes/oauthRoutes.d.ts +5 -11
  110. package/build/transport/http/routes/oauthRoutes.d.ts.map +1 -1
  111. package/build/transport/http/routes/oauthRoutes.js +460 -122
  112. package/build/transport/http/routes/oauthRoutes.js.map +1 -1
  113. package/build/transport/http/routes/sseRoutes.d.ts +3 -2
  114. package/build/transport/http/routes/sseRoutes.d.ts.map +1 -1
  115. package/build/transport/http/routes/sseRoutes.js +10 -7
  116. package/build/transport/http/routes/sseRoutes.js.map +1 -1
  117. package/build/transport/http/routes/streamableHttpRoutes.d.ts +3 -2
  118. package/build/transport/http/routes/streamableHttpRoutes.d.ts.map +1 -1
  119. package/build/transport/http/routes/streamableHttpRoutes.js +17 -10
  120. package/build/transport/http/routes/streamableHttpRoutes.js.map +1 -1
  121. package/build/transport/http/server.d.ts +3 -2
  122. package/build/transport/http/server.d.ts.map +1 -1
  123. package/build/transport/http/server.js +58 -21
  124. package/build/transport/http/server.js.map +1 -1
  125. package/build/transport/transportFactory.d.ts +9 -0
  126. package/build/transport/transportFactory.d.ts.map +1 -0
  127. package/build/transport/transportFactory.js +148 -0
  128. package/build/transport/transportFactory.js.map +1 -0
  129. package/build/utils/clientFiltering.d.ts +4 -4
  130. package/build/utils/clientFiltering.d.ts.map +1 -1
  131. package/build/utils/clientFiltering.js +54 -19
  132. package/build/utils/clientFiltering.js.map +1 -1
  133. package/build/utils/errorHandling.d.ts +0 -12
  134. package/build/utils/errorHandling.d.ts.map +1 -1
  135. package/build/utils/errorHandling.js +1 -42
  136. package/build/utils/errorHandling.js.map +1 -1
  137. package/build/utils/pagination.d.ts +2 -2
  138. package/build/utils/pagination.d.ts.map +1 -1
  139. package/build/utils/pagination.js +4 -4
  140. package/build/utils/pagination.js.map +1 -1
  141. package/build/utils/parsing.d.ts +13 -0
  142. package/build/utils/parsing.d.ts.map +1 -0
  143. package/build/utils/parsing.js +32 -0
  144. package/build/utils/parsing.js.map +1 -0
  145. package/build/utils/sanitization.d.ts +60 -0
  146. package/build/utils/sanitization.d.ts.map +1 -0
  147. package/build/utils/sanitization.js +149 -0
  148. package/build/utils/sanitization.js.map +1 -0
  149. package/build/utils/scopeValidation.d.ts +102 -0
  150. package/build/utils/scopeValidation.d.ts.map +1 -0
  151. package/build/utils/scopeValidation.js +244 -0
  152. package/build/utils/scopeValidation.js.map +1 -0
  153. package/package.json +20 -11
  154. package/build/auth/authManager.d.ts +0 -109
  155. package/build/auth/authManager.d.ts.map +0 -1
  156. package/build/auth/authManager.js +0 -173
  157. package/build/auth/authManager.js.map +0 -1
  158. package/build/auth/authMiddleware.d.ts +0 -16
  159. package/build/auth/authMiddleware.d.ts.map +0 -1
  160. package/build/auth/authMiddleware.js +0 -45
  161. package/build/auth/authMiddleware.js.map +0 -1
  162. package/build/auth/sessionManager.d.ts +0 -197
  163. package/build/auth/sessionManager.d.ts.map +0 -1
  164. package/build/auth/sessionManager.js +0 -408
  165. package/build/auth/sessionManager.js.map +0 -1
  166. package/build/config/configManager.d.ts.map +0 -1
  167. package/build/config/configManager.js.map +0 -1
  168. package/build/core/server/serverConfig.d.ts.map +0 -1
  169. package/build/core/server/serverConfig.js +0 -117
  170. package/build/core/server/serverConfig.js.map +0 -1
  171. package/build/transport/config.d.ts +0 -7
  172. package/build/transport/config.d.ts.map +0 -1
  173. package/build/transport/config.js +0 -90
  174. package/build/transport/config.js.map +0 -1
  175. package/build/transport/http/errorHandler.d.ts.map +0 -1
  176. package/build/transport/http/errorHandler.js.map +0 -1
  177. package/build/transport/http/middleware/loggingMiddleware.d.ts.map +0 -1
  178. package/build/transport/http/middleware/loggingMiddleware.js.map +0 -1
  179. package/build/utils/tagsExtractor.d.ts.map +0 -1
  180. package/build/utils/tagsExtractor.js.map +0 -1
  181. /package/build/transport/http/{errorHandler.d.ts → middlewares/errorHandler.d.ts} +0 -0
  182. /package/build/{utils → transport/http/middlewares}/tagsExtractor.d.ts +0 -0
  183. /package/build/{utils → transport/http/middlewares}/tagsExtractor.js +0 -0
@@ -0,0 +1,131 @@
1
+ import logger from '../../logger/logger.js';
2
+ import { AUTH_CONFIG } from '../../constants.js';
3
+ import { FileStorageService } from './fileStorageService.js';
4
+ import { SessionRepository } from './sessionRepository.js';
5
+ import { AuthCodeRepository } from './authCodeRepository.js';
6
+ import { AuthRequestRepository } from './authRequestRepository.js';
7
+ import { ClientDataRepository } from './clientDataRepository.js';
8
+ import { auditScopeOperation } from '../../utils/scopeValidation.js';
9
+ /**
10
+ * High-level OAuth storage service providing business operations
11
+ *
12
+ * This service orchestrates the lower-level repositories to provide
13
+ * high-level business operations for OAuth flows. It encapsulates
14
+ * the complexity of coordinating multiple data types and provides
15
+ * clean APIs for route handlers.
16
+ */
17
+ export class OAuthStorageService {
18
+ storage;
19
+ sessions;
20
+ authCodes;
21
+ authRequests;
22
+ clientData;
23
+ constructor(storageDir) {
24
+ this.storage = new FileStorageService(storageDir);
25
+ this.sessions = new SessionRepository(this.storage);
26
+ this.authCodes = new AuthCodeRepository(this.storage);
27
+ this.authRequests = new AuthRequestRepository(this.storage);
28
+ this.clientData = new ClientDataRepository(this.storage);
29
+ }
30
+ /**
31
+ * Processes user consent approval
32
+ *
33
+ * Creates an authorization code with the selected scopes and builds
34
+ * the redirect URL for the client. Cleans up the temporary auth request.
35
+ */
36
+ async processConsentApproval(authRequestId, selectedScopes) {
37
+ const authRequest = this.authRequests.get(authRequestId);
38
+ if (!authRequest) {
39
+ throw new Error('Invalid or expired authorization request');
40
+ }
41
+ // Create authorization code with selected scopes
42
+ const authCode = this.authCodes.create(authRequest.clientId, authRequest.redirectUri, authRequest.resource || '', selectedScopes, AUTH_CONFIG.SERVER.AUTH_CODE.TTL_MS, authRequest.codeChallenge);
43
+ // Clean up the temporary auth request
44
+ this.authRequests.delete(authRequestId);
45
+ // Build redirect URL
46
+ const redirectUrl = new URL(authRequest.redirectUri);
47
+ redirectUrl.searchParams.set('code', authCode);
48
+ if (authRequest.state) {
49
+ redirectUrl.searchParams.set('state', authRequest.state);
50
+ }
51
+ // Audit the operation
52
+ auditScopeOperation('authorization_granted', {
53
+ clientId: authRequest.clientId,
54
+ requestedScopes: authRequest.scopes || [],
55
+ grantedScopes: selectedScopes,
56
+ success: true,
57
+ });
58
+ logger.info(`OAuth authorization granted for client ${authRequest.clientId}`, {
59
+ clientId: authRequest.clientId,
60
+ redirectUri: authRequest.redirectUri,
61
+ grantedScopes: selectedScopes,
62
+ });
63
+ return { authCode, redirectUrl };
64
+ }
65
+ /**
66
+ * Processes user consent denial
67
+ *
68
+ * Builds an error redirect URL and cleans up the temporary auth request.
69
+ */
70
+ async processConsentDenial(authRequestId) {
71
+ const authRequest = this.authRequests.get(authRequestId);
72
+ if (!authRequest) {
73
+ throw new Error('Invalid or expired authorization request');
74
+ }
75
+ // Clean up the auth request
76
+ this.authRequests.delete(authRequestId);
77
+ // Build error redirect URL
78
+ const redirectUrl = new URL(authRequest.redirectUri);
79
+ redirectUrl.searchParams.set('error', 'access_denied');
80
+ redirectUrl.searchParams.set('error_description', 'User denied the request');
81
+ if (authRequest.state) {
82
+ redirectUrl.searchParams.set('state', authRequest.state);
83
+ }
84
+ // Audit the operation
85
+ auditScopeOperation('authorization_denied', {
86
+ clientId: authRequest.clientId,
87
+ success: false,
88
+ error: 'User denied authorization',
89
+ });
90
+ logger.info(`OAuth authorization denied by user for client ${authRequest.clientId}`);
91
+ return redirectUrl;
92
+ }
93
+ /**
94
+ * Creates a temporary authorization request for the consent flow
95
+ */
96
+ createAuthorizationRequest(clientId, redirectUri, codeChallenge, state, resource, scopes) {
97
+ return this.authRequests.create(clientId, redirectUri, codeChallenge, state, resource, scopes);
98
+ }
99
+ /**
100
+ * Retrieves an authorization request
101
+ */
102
+ getAuthorizationRequest(authRequestId) {
103
+ return this.authRequests.get(authRequestId);
104
+ }
105
+ // Expose repositories for direct access when needed (with getters for encapsulation)
106
+ get sessionRepository() {
107
+ return this.sessions;
108
+ }
109
+ get authCodeRepository() {
110
+ return this.authCodes;
111
+ }
112
+ get authRequestRepository() {
113
+ return this.authRequests;
114
+ }
115
+ get clientDataRepository() {
116
+ return this.clientData;
117
+ }
118
+ /**
119
+ * Gets the storage directory path
120
+ */
121
+ getStorageDir() {
122
+ return this.storage.getStorageDir();
123
+ }
124
+ /**
125
+ * Graceful shutdown
126
+ */
127
+ shutdown() {
128
+ this.storage.shutdown();
129
+ }
130
+ }
131
+ //# sourceMappingURL=oauthStorageService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauthStorageService.js","sourceRoot":"","sources":["../../../src/auth/storage/oauthStorageService.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,gCAAgC,CAAC;AAErE;;;;;;;GAOG;AACH,MAAM,OAAO,mBAAmB;IACtB,OAAO,CAAqB;IAC5B,QAAQ,CAAoB;IAC5B,SAAS,CAAqB;IAC9B,YAAY,CAAwB;IACpC,UAAU,CAAuB;IAEzC,YAAY,UAAmB;QAC7B,IAAI,CAAC,OAAO,GAAG,IAAI,kBAAkB,CAAC,UAAU,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,YAAY,GAAG,IAAI,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,sBAAsB,CAC1B,aAAqB,EACrB,cAAwB;QAExB,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QAED,iDAAiD;QACjD,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CACpC,WAAW,CAAC,QAAQ,EACpB,WAAW,CAAC,WAAW,EACvB,WAAW,CAAC,QAAQ,IAAI,EAAE,EAC1B,cAAc,EACd,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,EACnC,WAAW,CAAC,aAAa,CAC1B,CAAC;QAEF,sCAAsC;QACtC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAExC,qBAAqB;QACrB,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACrD,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;QAC/C,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;YACtB,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC;QAED,sBAAsB;QACtB,mBAAmB,CAAC,uBAAuB,EAAE;YAC3C,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,eAAe,EAAE,WAAW,CAAC,MAAM,IAAI,EAAE;YACzC,aAAa,EAAE,cAAc;YAC7B,OAAO,EAAE,IAAI;SACd,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,0CAA0C,WAAW,CAAC,QAAQ,EAAE,EAAE;YAC5E,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,WAAW,EAAE,WAAW,CAAC,WAAW;YACpC,aAAa,EAAE,cAAc;SAC9B,CAAC,CAAC;QAEH,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,oBAAoB,CAAC,aAAqB;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACzD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;QAC9D,CAAC;QAED,4BAA4B;QAC5B,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAExC,2BAA2B;QAC3B,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;QACrD,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACvD,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,mBAAmB,EAAE,yBAAyB,CAAC,CAAC;QAC7E,IAAI,WAAW,CAAC,KAAK,EAAE,CAAC;YACtB,WAAW,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,EAAE,WAAW,CAAC,KAAK,CAAC,CAAC;QAC3D,CAAC;QAED,sBAAsB;QACtB,mBAAmB,CAAC,sBAAsB,EAAE;YAC1C,QAAQ,EAAE,WAAW,CAAC,QAAQ;YAC9B,OAAO,EAAE,KAAK;YACd,KAAK,EAAE,2BAA2B;SACnC,CAAC,CAAC;QAEH,MAAM,CAAC,IAAI,CAAC,iDAAiD,WAAW,CAAC,QAAQ,EAAE,CAAC,CAAC;QAErF,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,0BAA0B,CACxB,QAAgB,EAChB,WAAmB,EACnB,aAAsB,EACtB,KAAc,EACd,QAAiB,EACjB,MAAiB;QAEjB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACjG,CAAC;IAED;;OAEG;IACH,uBAAuB,CAAC,aAAqB;QAC3C,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IAC9C,CAAC;IAED,qFAAqF;IACrF,IAAI,iBAAiB;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,IAAI,kBAAkB;QACpB,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,IAAI,qBAAqB;QACvB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,IAAI,oBAAoB;QACtB,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED;;OAEG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;IAC1B,CAAC;CACF"}
@@ -0,0 +1,29 @@
1
+ import { SessionData } from '../sessionTypes.js';
2
+ import { FileStorageService } from './fileStorageService.js';
3
+ /**
4
+ * Repository for session operations
5
+ *
6
+ * Manages OAuth 2.1 sessions with automatic expiration and cleanup.
7
+ * Sessions store user authorization state and granted scopes.
8
+ */
9
+ export declare class SessionRepository {
10
+ private storage;
11
+ constructor(storage: FileStorageService);
12
+ /**
13
+ * Creates a new session
14
+ */
15
+ create(clientId: string, resource: string, scopes: string[], ttlMs: number): string;
16
+ /**
17
+ * Creates a session with a specific token ID (for access tokens)
18
+ */
19
+ createWithId(tokenId: string, clientId: string, resource: string, scopes: string[], ttlMs: number): string;
20
+ /**
21
+ * Retrieves a session by ID
22
+ */
23
+ get(sessionId: string): SessionData | null;
24
+ /**
25
+ * Deletes a session by ID
26
+ */
27
+ delete(sessionId: string): boolean;
28
+ }
29
+ //# sourceMappingURL=sessionRepository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionRepository.d.ts","sourceRoot":"","sources":["../../../src/auth/storage/sessionRepository.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D;;;;;GAKG;AACH,qBAAa,iBAAiB;IAChB,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,kBAAkB;IAE/C;;OAEG;IACH,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAenF;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM;IAe1G;;OAEG;IACH,GAAG,CAAC,SAAS,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI;IAI1C;;OAEG;IACH,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;CAOnC"}
@@ -0,0 +1,64 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import logger from '../../logger/logger.js';
3
+ import { AUTH_CONFIG } from '../../constants.js';
4
+ /**
5
+ * Repository for session operations
6
+ *
7
+ * Manages OAuth 2.1 sessions with automatic expiration and cleanup.
8
+ * Sessions store user authorization state and granted scopes.
9
+ */
10
+ export class SessionRepository {
11
+ storage;
12
+ constructor(storage) {
13
+ this.storage = storage;
14
+ }
15
+ /**
16
+ * Creates a new session
17
+ */
18
+ create(clientId, resource, scopes, ttlMs) {
19
+ const sessionId = AUTH_CONFIG.SERVER.SESSION.ID_PREFIX + randomUUID();
20
+ const sessionData = {
21
+ clientId,
22
+ resource,
23
+ scopes,
24
+ expires: Date.now() + ttlMs,
25
+ createdAt: Date.now(),
26
+ };
27
+ this.storage.writeData(AUTH_CONFIG.SERVER.SESSION.FILE_PREFIX, sessionId, sessionData);
28
+ logger.info(`Created session: ${sessionId} for client: ${clientId}`);
29
+ return sessionId;
30
+ }
31
+ /**
32
+ * Creates a session with a specific token ID (for access tokens)
33
+ */
34
+ createWithId(tokenId, clientId, resource, scopes, ttlMs) {
35
+ const sessionId = AUTH_CONFIG.SERVER.SESSION.ID_PREFIX + tokenId;
36
+ const sessionData = {
37
+ clientId,
38
+ resource,
39
+ scopes,
40
+ expires: Date.now() + ttlMs,
41
+ createdAt: Date.now(),
42
+ };
43
+ this.storage.writeData(AUTH_CONFIG.SERVER.SESSION.FILE_PREFIX, sessionId, sessionData);
44
+ logger.info(`Created session with ID: ${sessionId} for client: ${clientId}`);
45
+ return sessionId;
46
+ }
47
+ /**
48
+ * Retrieves a session by ID
49
+ */
50
+ get(sessionId) {
51
+ return this.storage.readData(AUTH_CONFIG.SERVER.SESSION.FILE_PREFIX, sessionId);
52
+ }
53
+ /**
54
+ * Deletes a session by ID
55
+ */
56
+ delete(sessionId) {
57
+ const result = this.storage.deleteData(AUTH_CONFIG.SERVER.SESSION.FILE_PREFIX, sessionId);
58
+ if (result) {
59
+ logger.info(`Deleted session: ${sessionId}`);
60
+ }
61
+ return result;
62
+ }
63
+ }
64
+ //# sourceMappingURL=sessionRepository.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sessionRepository.js","sourceRoot":"","sources":["../../../src/auth/storage/sessionRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,MAAM,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAIjD;;;;;GAKG;AACH,MAAM,OAAO,iBAAiB;IACR;IAApB,YAAoB,OAA2B;QAA3B,YAAO,GAAP,OAAO,CAAoB;IAAG,CAAC;IAEnD;;OAEG;IACH,MAAM,CAAC,QAAgB,EAAE,QAAgB,EAAE,MAAgB,EAAE,KAAa;QACxE,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,UAAU,EAAE,CAAC;QACtE,MAAM,WAAW,GAAgB;YAC/B,QAAQ;YACR,QAAQ;YACR,MAAM;YACN,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;YAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QACvF,MAAM,CAAC,IAAI,CAAC,oBAAoB,SAAS,gBAAgB,QAAQ,EAAE,CAAC,CAAC;QACrE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,OAAe,EAAE,QAAgB,EAAE,QAAgB,EAAE,MAAgB,EAAE,KAAa;QAC/F,MAAM,SAAS,GAAG,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,GAAG,OAAO,CAAC;QACjE,MAAM,WAAW,GAAgB;YAC/B,QAAQ;YACR,QAAQ;YACR,MAAM;YACN,OAAO,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK;YAC3B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;SACtB,CAAC;QAEF,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;QACvF,MAAM,CAAC,IAAI,CAAC,4BAA4B,SAAS,gBAAgB,QAAQ,EAAE,CAAC,CAAC;QAC7E,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACH,GAAG,CAAC,SAAiB;QACnB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAc,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;IAC/F,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,SAAiB;QACtB,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;QAC1F,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,IAAI,CAAC,oBAAoB,SAAS,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { Clients, ServerInfo } from '../core/types/index.js';
1
+ import { OutboundConnections, InboundConnection } from '../core/types/index.js';
2
2
  /**
3
3
  * Collects capabilities from all clients and registers them with the server
4
4
  * @param clients Record of client instances
@@ -6,7 +6,7 @@ import { Clients, ServerInfo } from '../core/types/index.js';
6
6
  * @param tags Array of tags to filter clients by
7
7
  * @returns The combined server capabilities
8
8
  */
9
- export declare function setupCapabilities(clients: Clients, serverInfo: ServerInfo): Promise<{
9
+ export declare function setupCapabilities(clients: OutboundConnections, serverInfo: InboundConnection): Promise<{
10
10
  [x: string]: unknown;
11
11
  experimental?: {
12
12
  [x: string]: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"capabilityManager.d.ts","sourceRoot":"","sources":["../../src/capabilities/capabilityManager.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAE7D;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;GAY/E"}
1
+ {"version":3,"file":"capabilityManager.d.ts","sourceRoot":"","sources":["../../src/capabilities/capabilityManager.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAEhF;;;;;;GAMG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;GAYlG"}
@@ -25,7 +25,7 @@ export async function setupCapabilities(clients, serverInfo) {
25
25
  */
26
26
  function collectCapabilities(clients) {
27
27
  const capabilities = {};
28
- for (const [name, clientInfo] of Object.entries(clients)) {
28
+ for (const [name, clientInfo] of clients.entries()) {
29
29
  try {
30
30
  const serverCapabilities = clientInfo.client.getServerCapabilities() || {};
31
31
  logger.debug(`Capabilities from ${name}: ${JSON.stringify(serverCapabilities)}`);
@@ -1 +1 @@
1
- {"version":3,"file":"capabilityManager.js","sourceRoot":"","sources":["../../src/capabilities/capabilityManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"capabilityManager.js","sourceRoot":"","sources":["../../src/capabilities/capabilityManager.ts"],"names":[],"mappings":"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"}
@@ -7,9 +7,9 @@ export declare enum ConfigChangeEvent {
7
7
  TRANSPORT_CONFIG_CHANGED = "transportConfigChanged"
8
8
  }
9
9
  /**
10
- * Configuration manager that handles loading, watching, and reloading configuration
10
+ * MCP configuration manager that handles loading, watching, and reloading MCP server configurations
11
11
  */
12
- export declare class ConfigManager extends EventEmitter {
12
+ export declare class McpConfigManager extends EventEmitter {
13
13
  private static instance;
14
14
  private configWatcher;
15
15
  private transportConfig;
@@ -22,10 +22,10 @@ export declare class ConfigManager extends EventEmitter {
22
22
  */
23
23
  private constructor();
24
24
  /**
25
- * Get the singleton instance of ConfigManager
25
+ * Get the singleton instance of McpConfigManager
26
26
  * @param configFilePath - Optional path to the config file
27
27
  */
28
- static getInstance(configFilePath?: string): ConfigManager;
28
+ static getInstance(configFilePath?: string): McpConfigManager;
29
29
  /**
30
30
  * Ensure the config directory and file exist
31
31
  */
@@ -55,6 +55,11 @@ export declare class ConfigManager extends EventEmitter {
55
55
  * @returns The current transport configuration
56
56
  */
57
57
  getTransportConfig(): Record<string, MCPServerParams>;
58
+ /**
59
+ * Get all available tags from the configured servers
60
+ * @returns Array of unique tags from all servers
61
+ */
62
+ getAvailableTags(): string[];
58
63
  }
59
- export default ConfigManager;
60
- //# sourceMappingURL=configManager.d.ts.map
64
+ export default McpConfigManager;
65
+ //# sourceMappingURL=mcpConfigManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpConfigManager.d.ts","sourceRoot":"","sources":["../../src/config/mcpConfigManager.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,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAmB;IAC1C,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,gBAAgB;IAOpE;;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;IAI5D;;;OAGG;IACI,gBAAgB,IAAI,MAAM,EAAE;CAiBpC;AAED,eAAe,gBAAgB,CAAC"}
@@ -11,9 +11,9 @@ export var ConfigChangeEvent;
11
11
  ConfigChangeEvent["TRANSPORT_CONFIG_CHANGED"] = "transportConfigChanged";
12
12
  })(ConfigChangeEvent || (ConfigChangeEvent = {}));
13
13
  /**
14
- * Configuration manager that handles loading, watching, and reloading configuration
14
+ * MCP configuration manager that handles loading, watching, and reloading MCP server configurations
15
15
  */
16
- export class ConfigManager extends EventEmitter {
16
+ export class McpConfigManager extends EventEmitter {
17
17
  static instance;
18
18
  configWatcher = null;
19
19
  transportConfig = {};
@@ -31,14 +31,14 @@ export class ConfigManager extends EventEmitter {
31
31
  this.loadConfig();
32
32
  }
33
33
  /**
34
- * Get the singleton instance of ConfigManager
34
+ * Get the singleton instance of McpConfigManager
35
35
  * @param configFilePath - Optional path to the config file
36
36
  */
37
37
  static getInstance(configFilePath) {
38
- if (!ConfigManager.instance) {
39
- ConfigManager.instance = new ConfigManager(configFilePath);
38
+ if (!McpConfigManager.instance) {
39
+ McpConfigManager.instance = new McpConfigManager(configFilePath);
40
40
  }
41
- return ConfigManager.instance;
41
+ return McpConfigManager.instance;
42
42
  }
43
43
  /**
44
44
  * Ensure the config directory and file exist
@@ -148,6 +148,24 @@ export class ConfigManager extends EventEmitter {
148
148
  getTransportConfig() {
149
149
  return { ...this.transportConfig };
150
150
  }
151
+ /**
152
+ * Get all available tags from the configured servers
153
+ * @returns Array of unique tags from all servers
154
+ */
155
+ getAvailableTags() {
156
+ const tags = new Set();
157
+ for (const [_serverName, serverParams] of Object.entries(this.transportConfig)) {
158
+ // Skip disabled servers
159
+ if (serverParams.disabled) {
160
+ continue;
161
+ }
162
+ // Add tags from server configuration
163
+ if (serverParams.tags && Array.isArray(serverParams.tags)) {
164
+ serverParams.tags.forEach((tag) => tags.add(tag));
165
+ }
166
+ }
167
+ return Array.from(tags).sort();
168
+ }
151
169
  }
152
- export default ConfigManager;
153
- //# sourceMappingURL=configManager.js.map
170
+ export default McpConfigManager;
171
+ //# sourceMappingURL=mcpConfigManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mcpConfigManager.js","sourceRoot":"","sources":["../../src/config/mcpConfigManager.ts"],"names":[],"mappings":"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"}
@@ -3,13 +3,13 @@
3
3
  */
4
4
  import { ClientCapabilities, ServerCapabilities } from '@modelcontextprotocol/sdk/types.js';
5
5
  export declare const PORT = 3050;
6
- export declare const HOST = "127.0.0.1";
6
+ export declare const HOST = "localhost";
7
7
  export declare const SSE_ENDPOINT = "/sse";
8
8
  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.12.0";
12
+ export declare const MCP_SERVER_VERSION = "0.13.1";
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: {
@@ -28,18 +28,55 @@ export declare const CONNECTION_RETRY: {
28
28
  INITIAL_DELAY_MS: number;
29
29
  };
30
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;
31
+ SERVER: {
32
+ DEFAULT_ENABLED: boolean;
33
+ STORAGE: {
34
+ DIR: string;
35
+ FILE_EXTENSION: string;
36
+ };
37
+ SESSION: {
38
+ TTL_MINUTES: number;
39
+ ID_PREFIX: string;
40
+ FILE_PREFIX: string;
41
+ };
42
+ AUTH_CODE: {
43
+ TTL_MS: number;
44
+ ID_PREFIX: string;
45
+ FILE_PREFIX: string;
46
+ };
47
+ AUTH_REQUEST: {
48
+ TTL_MS: number;
49
+ ID_PREFIX: string;
50
+ FILE_PREFIX: string;
51
+ };
52
+ TOKEN: {
53
+ TTL_MS: number;
54
+ ID_PREFIX: string;
55
+ };
56
+ CLIENT: {
57
+ ID_PREFIX: string;
58
+ };
59
+ };
60
+ CLIENT: {
61
+ OAUTH: {
62
+ TTL_MS: number;
63
+ CODE_VERIFIER_TTL_MS: number;
64
+ STATE_TTL_MS: number;
65
+ DEFAULT_TOKEN_EXPIRY_SECONDS: number;
66
+ DEFAULT_CALLBACK_PATH: string;
67
+ DEFAULT_SCOPES: never[];
68
+ };
69
+ SESSION: {
70
+ TTL_MS: number;
71
+ ID_PREFIX: string;
72
+ FILE_PREFIX: string;
73
+ };
74
+ PREFIXES: {
75
+ CLIENT: string;
76
+ TOKENS: string;
77
+ VERIFIER: string;
78
+ STATE: string;
79
+ };
43
80
  };
44
81
  };
45
82
  export declare const RATE_LIMIT_CONFIG: {
@@ -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;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"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEvB,CAAC;AAGF,eAAO,MAAM,iBAAiB;;;;;;;;CAM7B,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,kBAYrC,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,kBAUrC,CAAC"}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  // Server configuration
5
5
  export const PORT = 3050;
6
- export const HOST = '127.0.0.1';
6
+ export const HOST = 'localhost';
7
7
  // API endpoints
8
8
  export const SSE_ENDPOINT = '/sse';
9
9
  export const MESSAGES_ENDPOINT = '/messages';
@@ -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.12.0';
14
+ export const MCP_SERVER_VERSION = '0.13.1';
15
15
  export const MCP_URI_SEPARATOR = '_1mcp_';
16
16
  // Global config paths
17
17
  export const CONFIG_DIR_NAME = '1mcp';
@@ -44,26 +44,70 @@ export const CONNECTION_RETRY = {
44
44
  };
45
45
  // Authentication and session settings
46
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-',
47
+ // Server-side authentication
48
+ SERVER: {
49
+ DEFAULT_ENABLED: false,
50
+ // File storage configuration
51
+ STORAGE: {
52
+ DIR: 'sessions',
53
+ FILE_EXTENSION: '.json',
54
+ },
55
+ // Session management
56
+ SESSION: {
57
+ TTL_MINUTES: 24 * 60, // 24 hours
58
+ ID_PREFIX: 'sess-',
59
+ FILE_PREFIX: 'session_',
60
+ },
61
+ // OAuth authorization codes (permanent, for token exchange)
62
+ AUTH_CODE: {
63
+ TTL_MS: 60 * 1000, // 1 minute
64
+ ID_PREFIX: 'code-',
65
+ FILE_PREFIX: 'auth_code_',
66
+ },
67
+ // OAuth authorization requests (temporary, for consent flow)
68
+ AUTH_REQUEST: {
69
+ TTL_MS: 10 * 60 * 1000, // 10 minutes
70
+ ID_PREFIX: 'code-', // Same as auth codes for compatibility
71
+ FILE_PREFIX: 'auth_request_',
72
+ },
73
+ // OAuth tokens
74
+ TOKEN: {
75
+ TTL_MS: 24 * 60 * 60 * 1000, // 24 hours
76
+ ID_PREFIX: 'tk-',
77
+ },
78
+ // Client management
79
+ CLIENT: {
80
+ ID_PREFIX: 'client-',
81
+ },
82
+ },
83
+ // Client-side authentication
84
+ CLIENT: {
85
+ OAUTH: {
86
+ TTL_MS: 30 * 24 * 60 * 60 * 1000, // 30 days
87
+ CODE_VERIFIER_TTL_MS: 10 * 60 * 1000, // 10 minutes
88
+ STATE_TTL_MS: 10 * 60 * 1000, // 10 minutes
89
+ DEFAULT_TOKEN_EXPIRY_SECONDS: 3600, // 1 hour
90
+ DEFAULT_CALLBACK_PATH: '/oauth/callback',
91
+ DEFAULT_SCOPES: [],
92
+ },
93
+ SESSION: {
94
+ TTL_MS: 30 * 24 * 60 * 60 * 1000, // 30 days
95
+ ID_PREFIX: 'oauth_',
96
+ FILE_PREFIX: '',
97
+ },
98
+ PREFIXES: {
99
+ CLIENT: 'cli_',
100
+ TOKENS: 'tok_',
101
+ VERIFIER: 'ver_',
102
+ STATE: 'sta_',
103
+ },
60
104
  },
61
105
  };
62
106
  // Rate limiting configuration for OAuth endpoints
63
107
  export const RATE_LIMIT_CONFIG = {
64
108
  OAUTH: {
65
- WINDOW_MS: 60 * 1000, // 1 minute
66
- MAX: 10, // max requests per window per IP
109
+ WINDOW_MS: 15 * 60 * 1000, // 15 minutes
110
+ MAX: 100, // max requests per window per IP
67
111
  MESSAGE: { error: 'Too many requests, please try again later.' },
68
112
  },
69
113
  };
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
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,sCAAsC;AACtC,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,6BAA6B;IAC7B,MAAM,EAAE;QACN,eAAe,EAAE,KAAK;QAEtB,6BAA6B;QAC7B,OAAO,EAAE;YACP,GAAG,EAAE,UAAU;YACf,cAAc,EAAE,OAAO;SACxB;QAED,qBAAqB;QACrB,OAAO,EAAE;YACP,WAAW,EAAE,EAAE,GAAG,EAAE,EAAE,WAAW;YACjC,SAAS,EAAE,OAAO;YAClB,WAAW,EAAE,UAAU;SACxB;QAED,4DAA4D;QAC5D,SAAS,EAAE;YACT,MAAM,EAAE,EAAE,GAAG,IAAI,EAAE,WAAW;YAC9B,SAAS,EAAE,OAAO;YAClB,WAAW,EAAE,YAAY;SAC1B;QAED,6DAA6D;QAC7D,YAAY,EAAE;YACZ,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;YACrC,SAAS,EAAE,OAAO,EAAE,uCAAuC;YAC3D,WAAW,EAAE,eAAe;SAC7B;QAED,eAAe;QACf,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,WAAW;YACxC,SAAS,EAAE,KAAK;SACjB;QAED,oBAAoB;QACpB,MAAM,EAAE;YACN,SAAS,EAAE,SAAS;SACrB;KACF;IAED,6BAA6B;IAC7B,MAAM,EAAE;QACN,KAAK,EAAE;YACL,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,UAAU;YAC5C,oBAAoB,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;YACnD,YAAY,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;YAC3C,4BAA4B,EAAE,IAAI,EAAE,SAAS;YAC7C,qBAAqB,EAAE,iBAAiB;YACxC,cAAc,EAAE,EAAE;SACnB;QACD,OAAO,EAAE;YACP,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,UAAU;YAC5C,SAAS,EAAE,QAAQ;YACnB,WAAW,EAAE,EAAE;SAChB;QACD,QAAQ,EAAE;YACR,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,MAAM;YACd,QAAQ,EAAE,MAAM;YAChB,KAAK,EAAE,MAAM;SACd;KACF;CACF,CAAC;AAEF,kDAAkD;AAClD,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,KAAK,EAAE;QACL,SAAS,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,aAAa;QACxC,GAAG,EAAE,GAAG,EAAE,iCAAiC;QAC3C,OAAO,EAAE,EAAE,KAAK,EAAE,4CAA4C,EAAE;KACjE;CACF,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAuB;IACzD,WAAW,EAAE,EAAE;IACf,SAAS,EAAE;QACT,WAAW,EAAE,KAAK;KACnB;IACD,KAAK,EAAE;QACL,WAAW,EAAE,KAAK;KACnB;IACD,OAAO,EAAE;QACP,WAAW,EAAE,KAAK;KACnB;IACD,OAAO,EAAE,EAAE;CACZ,CAAC;AAEF,MAAM,CAAC,MAAM,uBAAuB,GAAuB;IACzD,KAAK,EAAE;QACL,WAAW,EAAE,KAAK;KACnB;IACD,QAAQ,EAAE;QACR,WAAW,EAAE,KAAK;KACnB;IACD,WAAW,EAAE;QACX,WAAW,EAAE,KAAK;KACnB;CACF,CAAC"}