@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
@@ -1,132 +1,470 @@
1
- import bodyParser from 'body-parser';
2
- import { randomUUID } from 'node:crypto';
3
- import logger from '../../../logger/logger.js';
4
- import { ServerConfigManager } from '../../../core/server/serverConfig.js';
5
- import { AUTH_CONFIG, RATE_LIMIT_CONFIG } from '../../../constants.js';
1
+ import { Router } from 'express';
6
2
  import rateLimit from 'express-rate-limit';
3
+ import logger from '../../../logger/logger.js';
4
+ import { ServerManager } from '../../../core/server/serverManager.js';
5
+ import { ClientStatus } from '../../../core/types/index.js';
6
+ import { OAuthRequiredError } from '../../../core/client/clientManager.js';
7
+ import createClient from '../../../core/client/clientFactory.js';
8
+ import { RATE_LIMIT_CONFIG, AUTH_CONFIG } from '../../../constants.js';
9
+ import { AgentConfigManager } from '../../../core/server/agentConfig.js';
10
+ import { escapeHtml, sanitizeUrlParam, sanitizeErrorMessage, sanitizeServerNameForContext, } from '../../../utils/sanitization.js';
11
+ import { validateScopes } from '../../../utils/scopeValidation.js';
12
+ import { sensitiveOperationLimiter } from '../middlewares/securityMiddleware.js';
7
13
  /**
8
- * Sets up OAuth 2.1 and related endpoints on the Express app.
9
- *
10
- * This function registers all OAuth 2.1 endpoints (authorization, token, metadata, registration)
11
- * and MCP resource metadata endpoints on the provided Express application. It uses the provided
12
- * AuthManager for all authentication and token operations.
13
- *
14
- * @param app - The Express application instance
15
- * @param authManager - The AuthManager instance for OAuth/session logic
14
+ * Creates OAuth routes with the provided OAuth provider
16
15
  */
17
- export function setupOAuthRoutes(app, authManager) {
18
- const configManager = ServerConfigManager.getInstance();
19
- const DEFAULT_REDIRECT_PATH = '/oauth/callback';
20
- // Rate limiter: 10 requests per minute per IP for sensitive endpoints
21
- const oauthLimiter = rateLimit({
22
- windowMs: RATE_LIMIT_CONFIG.OAUTH.WINDOW_MS,
23
- max: RATE_LIMIT_CONFIG.OAUTH.MAX,
24
- standardHeaders: true,
25
- legacyHeaders: false,
26
- message: RATE_LIMIT_CONFIG.OAUTH.MESSAGE,
27
- });
16
+ export function createOAuthRoutes(oauthProvider) {
17
+ const router = Router();
18
+ // Rate limiter for OAuth endpoints
19
+ const createOAuthLimiter = () => {
20
+ const serverConfig = AgentConfigManager.getInstance();
21
+ return rateLimit({
22
+ windowMs: serverConfig.getRateLimitWindowMs(),
23
+ max: serverConfig.getRateLimitMax(),
24
+ standardHeaders: true,
25
+ legacyHeaders: false,
26
+ message: RATE_LIMIT_CONFIG.OAUTH.MESSAGE,
27
+ });
28
+ };
29
+ router.use(createOAuthLimiter());
28
30
  /**
29
- * Helper to build the OAuth issuer URL from the incoming request.
30
- * Uses protocol and host headers for correct environment support.
31
+ * Check if a server requires OAuth based on runtime behavior
32
+ * A server requires OAuth if it has ever thrown UnauthorizedError (indicated by authorizationUrl or oauthStartTime)
31
33
  */
32
- function getIssuer(req) {
33
- // X-Forwarded-Proto/Host for proxies, fallback to req.protocol/host
34
- const proto = req.headers['x-forwarded-proto'] || req.protocol;
35
- const host = req.headers['x-forwarded-host'] || req.get('host');
36
- return `${proto}://${host}`;
34
+ function requiresOAuth(service) {
35
+ // The most reliable indicator: server has ever had an authorization URL
36
+ // This means the server threw UnauthorizedError and we captured the OAuth URL
37
+ if (service.authorizationUrl) {
38
+ return true;
39
+ }
40
+ // Secondary indicator: server has ever been in AwaitingOAuth status
41
+ // This means the server threw UnauthorizedError at some point
42
+ if (service.oauthStartTime) {
43
+ return true;
44
+ }
45
+ // If currently awaiting OAuth, it definitely requires OAuth
46
+ if (service.status === ClientStatus.AwaitingOAuth) {
47
+ return true;
48
+ }
49
+ return false;
37
50
  }
38
- // /authorize endpoint (auto-approve)
39
- app.get('/authorize', oauthLimiter, (req, res) => {
40
- logger.info('[OAuth] /authorize request', { query: req.query, headers: req.headers });
41
- const { response_type, client_id, redirect_uri, state, resource, code_challenge: _code_challenge, code_challenge_method: _code_challenge_method, } = req.query;
42
- if (response_type !== 'code' || !client_id) {
43
- logger.warn('[OAuth] /authorize invalid request', { response_type, client_id });
44
- res.status(400).json({ error: 'invalid_request' });
45
- return;
46
- }
47
- // Accept S256 or plain for code_challenge_method (not enforced for local dev)
48
- // Use default redirect URI if not provided
49
- const issuer = getIssuer(req);
50
- const defaultRedirect = `${issuer}${DEFAULT_REDIRECT_PATH}`;
51
- const redirect = typeof redirect_uri === 'string' ? redirect_uri : defaultRedirect;
52
- const code = authManager.createAuthCode(client_id, redirect, typeof resource === 'string' ? resource : '');
53
- // Build redirect URL
54
- const url = new URL(redirect);
55
- url.searchParams.set('code', code);
56
- if (state)
57
- url.searchParams.set('state', state);
58
- logger.info('[OAuth] /authorize success', { client_id, code, redirect: url.toString() });
59
- res.redirect(url.toString());
60
- });
61
- // /token endpoint
62
- app.post('/token', oauthLimiter, bodyParser.urlencoded({ extended: false }), (req, res) => {
63
- logger.info('[OAuth] /token request', { body: req.body, headers: req.headers });
64
- const { grant_type, code, client_id, redirect_uri, resource } = req.body;
65
- if (grant_type !== 'authorization_code' || !code || !client_id) {
66
- logger.warn('[OAuth] /token invalid request', { grant_type, code: !!code, client_id });
67
- res.status(400).json({ error: 'invalid_request' });
68
- return;
69
- }
70
- const accessToken = authManager.exchangeCodeForToken(code, client_id, redirect_uri, resource);
71
- if (!accessToken) {
72
- logger.warn('[OAuth] /token invalid grant', { code, client_id });
73
- res.status(400).json({ error: 'invalid_grant' });
74
- return;
75
- }
76
- const ttlMs = configManager.getOAuthTokenTtlMs();
77
- logger.info('[OAuth] /token success', { client_id, accessToken });
78
- res.json({
79
- access_token: accessToken,
80
- token_type: 'Bearer',
81
- expires_in: ttlMs / 1000,
82
- scope: '',
83
- });
84
- });
85
- // OAuth 2.0 Authorization Server Metadata (RFC8414)
86
- app.get('/.well-known/oauth-authorization-server', (req, res) => {
87
- logger.info('[OAuth] metadata request', { url: req.url });
88
- const issuer = getIssuer(req);
89
- res.json({
90
- issuer,
91
- authorization_endpoint: `${issuer}/authorize`,
92
- token_endpoint: `${issuer}/token`,
93
- registration_endpoint: `${issuer}/register`,
94
- response_types_supported: ['code'],
95
- grant_types_supported: ['authorization_code'],
96
- code_challenge_methods_supported: ['S256', 'plain'],
97
- token_endpoint_auth_methods_supported: ['none'],
98
- });
99
- });
100
- // MCP Resource Metadata (RFC9728)
101
- app.get('/mcp-resource-metadata', (req, res) => {
102
- logger.info('[OAuth] resource metadata request', { url: req.url });
103
- const issuer = getIssuer(req);
104
- res.json({
105
- authorization_servers: [`${issuer}/.well-known/oauth-authorization-server`],
106
- resource: issuer,
107
- });
108
- });
109
- // OAuth 2.0 Protected Resource Metadata (RFC9728) well-known endpoint
110
- app.get('/.well-known/oauth-protected-resource', (req, res) => {
111
- logger.info('[OAuth] protected resource metadata request', { url: req.url });
112
- const issuer = getIssuer(req);
113
- res.json({
114
- authorization_servers: [`${issuer}/.well-known/oauth-authorization-server`],
115
- resource: issuer,
116
- });
51
+ /**
52
+ * OAuth Dashboard - Shows all services and their OAuth status
53
+ */
54
+ router.get('/', async (req, res) => {
55
+ try {
56
+ const serverManager = ServerManager.current;
57
+ const clients = serverManager.getClients();
58
+ const services = Array.from(clients.entries()).map(([name, clientInfo]) => ({
59
+ name,
60
+ status: clientInfo.status,
61
+ authorizationUrl: clientInfo.authorizationUrl,
62
+ oauthStartTime: clientInfo.oauthStartTime,
63
+ lastError: clientInfo.lastError?.message,
64
+ lastConnected: clientInfo.lastConnected,
65
+ }));
66
+ const html = generateOAuthDashboard(services, req);
67
+ res.setHeader('Content-Type', 'text/html');
68
+ res.send(html);
69
+ }
70
+ catch (error) {
71
+ logger.error('Error serving OAuth dashboard:', error);
72
+ res.status(500).json({ error: 'Internal server error' });
73
+ }
117
74
  });
118
- // OAuth 2.0 Dynamic Client Registration (RFC7591)
119
- app.post('/register', oauthLimiter, bodyParser.json(), (req, res) => {
120
- logger.info('[OAuth] client registration request', { body: req.body });
121
- // Accept any registration, auto-approve
122
- const clientId = AUTH_CONFIG.PREFIXES.CLIENT_ID + randomUUID();
123
- logger.info('[OAuth] client registration success', { clientId });
124
- res.status(201).json({
125
- client_id: clientId,
126
- client_id_issued_at: Math.floor(Date.now() / 1000),
127
- token_endpoint_auth_method: 'none',
128
- ...req.body,
129
- });
75
+ /**
76
+ * Start OAuth authorization for a specific service
77
+ */
78
+ const authorizeHandler = async (req, res) => {
79
+ try {
80
+ const { serverName } = req.params;
81
+ const serverManager = ServerManager.current;
82
+ const clientInfo = serverManager.getClient(serverName);
83
+ if (!clientInfo) {
84
+ res.status(404).json({ error: 'Service not found' });
85
+ return;
86
+ }
87
+ if (clientInfo.authorizationUrl) {
88
+ // Redirect to existing authorization URL
89
+ res.redirect(clientInfo.authorizationUrl);
90
+ return;
91
+ }
92
+ else {
93
+ // Generate new authorization URL by attempting connection
94
+ await initiateOAuth(serverName);
95
+ // Get updated client info
96
+ const updatedClients = serverManager.getClients();
97
+ const updatedClientInfo = updatedClients.get(serverName);
98
+ if (updatedClientInfo?.authorizationUrl) {
99
+ res.redirect(updatedClientInfo.authorizationUrl);
100
+ return;
101
+ }
102
+ else {
103
+ res.status(500).json({ error: 'Failed to generate OAuth URL' });
104
+ return;
105
+ }
106
+ }
107
+ }
108
+ catch (error) {
109
+ logger.error(`Error starting OAuth for ${req.params.serverName}:`, error);
110
+ res.status(500).json({ error: 'Failed to start OAuth flow' });
111
+ }
112
+ };
113
+ router.get('/authorize/:serverName', authorizeHandler);
114
+ function hasFinishAuth(transport) {
115
+ return typeof transport === 'object' && transport !== null && typeof transport.finishAuth === 'function';
116
+ }
117
+ /**
118
+ * Handle OAuth callback and trigger reconnection
119
+ */
120
+ router.get('/callback/:serverName', async (req, res) => {
121
+ const { serverName } = req.params;
122
+ const { code, error } = req.query;
123
+ try {
124
+ if (error) {
125
+ logger.error(`OAuth error for ${serverName}:`, error);
126
+ return res.redirect(`/oauth?error=${encodeURIComponent(String(error))}`);
127
+ }
128
+ if (!code) {
129
+ logger.error(`OAuth callback missing authorization code for ${serverName}`);
130
+ return res.redirect(`/oauth?error=missing_code`);
131
+ }
132
+ const serverManager = ServerManager.current;
133
+ const clientInfo = serverManager.getClient(serverName);
134
+ if (!clientInfo) {
135
+ logger.error(`Client ${serverName} not found in OAuth callback`);
136
+ return res.redirect(`/oauth?error=client_not_found`);
137
+ }
138
+ // Use type guard for transport with finishAuth
139
+ if (!hasFinishAuth(clientInfo.transport)) {
140
+ logger.error(`Transport for ${serverName} does not support finishAuth`);
141
+ return res.redirect(`/oauth?error=invalid_oauth_transport`);
142
+ }
143
+ // Complete the OAuth flow with the authorization code
144
+ await clientInfo.transport.finishAuth(String(code));
145
+ clientInfo.status = ClientStatus.Connected;
146
+ clientInfo.lastConnected = new Date();
147
+ clientInfo.lastError = undefined;
148
+ // Redirect back to dashboard with success
149
+ res.redirect('/oauth?success=1');
150
+ }
151
+ catch (error) {
152
+ logger.error(`Error handling OAuth callback for ${serverName}:`, error);
153
+ res.redirect(`/oauth?error=callback_failed`);
154
+ }
130
155
  });
156
+ /**
157
+ * Restart OAuth flow for a service
158
+ */
159
+ const restartHandler = async (req, res) => {
160
+ const { serverName } = req.params;
161
+ try {
162
+ const serverManager = ServerManager.current;
163
+ const clientInfo = serverManager.getClient(serverName);
164
+ if (!clientInfo) {
165
+ res.status(404).json({ error: 'Service not found' });
166
+ return;
167
+ }
168
+ // Clear existing OAuth data and restart flow
169
+ await restartOAuthFlow(serverName);
170
+ res.json({ success: true, message: 'OAuth flow restarted' });
171
+ }
172
+ catch (error) {
173
+ logger.error(`Error restarting OAuth for ${serverName}:`, error);
174
+ res.status(500).json({ error: 'Failed to restart OAuth flow' });
175
+ }
176
+ };
177
+ router.post('/restart/:serverName', restartHandler);
178
+ /**
179
+ * Handle consent form submission for OAuth authorization
180
+ */
181
+ const consentHandler = async (req, res) => {
182
+ try {
183
+ const { auth_request_id, action, scopes } = req.body;
184
+ // Validate required fields
185
+ if (!auth_request_id || !action) {
186
+ res.status(400).json({
187
+ error: 'invalid_request',
188
+ error_description: 'Missing required parameters',
189
+ });
190
+ return;
191
+ }
192
+ // Use the OAuth provider's storage service to ensure consistent storage directory
193
+ const authRequest = oauthProvider.oauthStorage.getAuthorizationRequest(auth_request_id);
194
+ if (!authRequest) {
195
+ res.status(400).json({
196
+ error: 'invalid_request',
197
+ error_description: 'Invalid or expired authorization request',
198
+ });
199
+ return;
200
+ }
201
+ // Get client data using the OAuth provider's storage service
202
+ const clientKey = `${AUTH_CONFIG.CLIENT.PREFIXES.CLIENT}${authRequest.clientId}`;
203
+ const client = oauthProvider.oauthStorage.clientDataRepository.get(clientKey);
204
+ if (!client) {
205
+ res.status(400).json({
206
+ error: 'invalid_client',
207
+ error_description: 'Client not found',
208
+ });
209
+ return;
210
+ }
211
+ // Client validation passed - we have a valid client
212
+ if (action === 'deny') {
213
+ // Use the service layer for denial processing
214
+ const redirectUrl = await oauthProvider.oauthStorage.processConsentDenial(auth_request_id);
215
+ res.redirect(redirectUrl.toString());
216
+ return;
217
+ }
218
+ if (action === 'approve') {
219
+ // User approved the authorization
220
+ const selectedScopes = Array.isArray(scopes) ? scopes : scopes ? [scopes] : [];
221
+ // Validate selected scopes
222
+ const validation = validateScopes(selectedScopes);
223
+ if (!validation.isValid) {
224
+ res.status(400).json({
225
+ error: 'invalid_scope',
226
+ error_description: `Invalid scopes: ${validation.errors.join(', ')}`,
227
+ });
228
+ return;
229
+ }
230
+ // Use the service layer for approval processing
231
+ const { redirectUrl } = await oauthProvider.oauthStorage.processConsentApproval(auth_request_id, validation.validScopes);
232
+ res.redirect(redirectUrl.toString());
233
+ return;
234
+ }
235
+ // Invalid action
236
+ res.status(400).json({
237
+ error: 'invalid_request',
238
+ error_description: 'Invalid action',
239
+ });
240
+ }
241
+ catch (error) {
242
+ logger.error('Error handling consent form:', error);
243
+ res.status(500).json({
244
+ error: 'server_error',
245
+ error_description: 'Internal server error',
246
+ });
247
+ }
248
+ };
249
+ router.post('/consent', sensitiveOperationLimiter, consentHandler);
250
+ /**
251
+ * Initiate OAuth flow for a service
252
+ */
253
+ async function initiateOAuth(serverName) {
254
+ const serverManager = ServerManager.current;
255
+ const clientInfo = serverManager.getClient(serverName);
256
+ if (!clientInfo) {
257
+ throw new Error(`Service ${serverName} not found`);
258
+ }
259
+ try {
260
+ // Create new client and attempt connection to trigger OAuth
261
+ const newClient = await createClient();
262
+ await newClient.connect(clientInfo.transport);
263
+ }
264
+ catch (error) {
265
+ if (error instanceof OAuthRequiredError) {
266
+ // Update client info with OAuth status
267
+ clientInfo.status = ClientStatus.AwaitingOAuth;
268
+ clientInfo.oauthStartTime = new Date();
269
+ // Try to get authorization URL from OAuth provider
270
+ try {
271
+ const oauthProvider = clientInfo.transport.oauthProvider;
272
+ if (oauthProvider && typeof oauthProvider.getAuthorizationUrl === 'function') {
273
+ clientInfo.authorizationUrl = oauthProvider.getAuthorizationUrl();
274
+ }
275
+ }
276
+ catch (urlError) {
277
+ logger.warn(`Could not extract authorization URL for ${serverName}:`, urlError);
278
+ }
279
+ logger.info(`OAuth initiated for ${serverName}`);
280
+ }
281
+ else {
282
+ throw error; // Re-throw non-OAuth errors
283
+ }
284
+ }
285
+ }
286
+ /**
287
+ * Restart OAuth flow for a service
288
+ */
289
+ async function restartOAuthFlow(serverName) {
290
+ const serverManager = ServerManager.current;
291
+ const clientInfo = serverManager.getClient(serverName);
292
+ if (!clientInfo) {
293
+ throw new Error(`Service ${serverName} not found`);
294
+ }
295
+ // Clear OAuth state
296
+ clientInfo.authorizationUrl = undefined;
297
+ clientInfo.oauthStartTime = undefined;
298
+ clientInfo.status = ClientStatus.Disconnected;
299
+ // Initiate new OAuth flow
300
+ await initiateOAuth(serverName);
301
+ }
302
+ /**
303
+ * Generate OAuth dashboard HTML
304
+ */
305
+ function generateOAuthDashboard(services, req) {
306
+ const servicesHtml = services
307
+ .map((service) => {
308
+ const statusIcon = getStatusIcon(service.status);
309
+ const statusText = getStatusText(service.status);
310
+ const actionButton = getActionButton(service);
311
+ return `
312
+ <tr>
313
+ <td>${sanitizeServerNameForContext(service.name, 'html')}</td>
314
+ <td>${statusIcon} ${statusText}</td>
315
+ <td>${service.lastConnected ? escapeHtml(new Date(service.lastConnected).toLocaleString()) : 'Never'}</td>
316
+ <td>${service.lastError ? sanitizeErrorMessage(service.lastError) : '-'}</td>
317
+ <td>${actionButton}</td>
318
+ </tr>
319
+ `;
320
+ })
321
+ .join('');
322
+ return `
323
+ <!DOCTYPE html>
324
+ <html lang="en">
325
+ <head>
326
+ <meta charset="UTF-8">
327
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
328
+ <title>1MCP OAuth Management</title>
329
+ <style>
330
+ body { font-family: Arial, sans-serif; margin: 20px; background-color: #f5f5f5; }
331
+ .container { max-width: 1200px; margin: 0 auto; background: white; padding: 20px; border-radius: 8px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); }
332
+ h1 { color: #333; text-align: center; margin-bottom: 30px; }
333
+ table { width: 100%; border-collapse: collapse; margin-top: 20px; }
334
+ th, td { padding: 12px; text-align: left; border-bottom: 1px solid #ddd; }
335
+ th { background-color: #f8f9fa; font-weight: bold; }
336
+ .status-connected { color: #28a745; }
337
+ .status-awaiting { color: #ffc107; }
338
+ .status-error { color: #dc3545; }
339
+ .status-disconnected { color: #6c757d; }
340
+ .btn { padding: 8px 16px; border: none; border-radius: 4px; cursor: pointer; text-decoration: none; display: inline-block; font-size: 14px; }
341
+ .btn-primary { background-color: #007bff; color: white; }
342
+ .btn-warning { background-color: #ffc107; color: black; }
343
+ .btn-success { background-color: #28a745; color: white; }
344
+ .btn:hover { opacity: 0.8; }
345
+ .alert { padding: 15px; margin: 20px 0; border-radius: 4px; }
346
+ .alert-success { background-color: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
347
+ .alert-error { background-color: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }
348
+ .refresh-btn { float: right; margin-bottom: 20px; }
349
+ </style>
350
+ </head>
351
+ <body>
352
+ <div class="container">
353
+ <h1>🔐 1MCP OAuth Management</h1>
354
+
355
+ ${getAlertHtml(req)}
356
+
357
+ <button class="btn btn-primary refresh-btn" onclick="window.location.reload()">🔄 Refresh</button>
358
+
359
+ <table>
360
+ <thead>
361
+ <tr>
362
+ <th>Service</th>
363
+ <th>Status</th>
364
+ <th>Last Connected</th>
365
+ <th>Error</th>
366
+ <th>Actions</th>
367
+ </tr>
368
+ </thead>
369
+ <tbody>
370
+ ${servicesHtml}
371
+ </tbody>
372
+ </table>
373
+
374
+ <div style="margin-top: 30px; padding: 20px; background-color: #f8f9fa; border-radius: 4px;">
375
+ <h3>Instructions:</h3>
376
+ <ul>
377
+ <li><strong>Connected:</strong> Service is working properly (no authentication required)</li>
378
+ <li><strong>Authorized:</strong> Service is working properly (OAuth authentication completed)</li>
379
+ <li><strong>Awaiting OAuth:</strong> Click "Authorize" to complete authentication</li>
380
+ <li><strong>Error:</strong> Check error message and try "Restart OAuth" if needed</li>
381
+ <li><strong>Disconnected:</strong> Service is not connected</li>
382
+ </ul>
383
+ </div>
384
+ </div>
385
+
386
+ <script>
387
+ // Auto-refresh every 30 seconds
388
+ setTimeout(() => window.location.reload(), 30000);
389
+
390
+ function restartOAuth(serverName) {
391
+ fetch(\`/oauth/restart/\${serverName}\`, { method: 'POST' })
392
+ .then(response => response.json())
393
+ .then(data => {
394
+ if (data.success) {
395
+ window.location.reload();
396
+ } else {
397
+ alert('Failed to restart OAuth: ' + (data.error || 'Unknown error'));
398
+ }
399
+ })
400
+ .catch(error => {
401
+ alert('Failed to restart OAuth: ' + error.message);
402
+ });
403
+ }
404
+ </script>
405
+ </body>
406
+ </html>
407
+ `;
408
+ }
409
+ function getStatusIcon(status) {
410
+ switch (status) {
411
+ case ClientStatus.Connected:
412
+ return '✅';
413
+ case ClientStatus.AwaitingOAuth:
414
+ return '⏳';
415
+ case ClientStatus.Error:
416
+ return '❌';
417
+ case ClientStatus.Disconnected:
418
+ return '🔌';
419
+ default:
420
+ return '❓';
421
+ }
422
+ }
423
+ function getStatusText(status) {
424
+ switch (status) {
425
+ case ClientStatus.Connected:
426
+ return '<span class="status-connected">Connected</span>';
427
+ case ClientStatus.AwaitingOAuth:
428
+ return '<span class="status-awaiting">Awaiting OAuth</span>';
429
+ case ClientStatus.Error:
430
+ return '<span class="status-error">Error</span>';
431
+ case ClientStatus.Disconnected:
432
+ return '<span class="status-disconnected">Disconnected</span>';
433
+ default:
434
+ return '<span class="status-disconnected">Unknown</span>';
435
+ }
436
+ }
437
+ function getActionButton(service) {
438
+ switch (service.status) {
439
+ case ClientStatus.Connected:
440
+ // Check if server requires OAuth based on runtime behavior
441
+ if (requiresOAuth(service)) {
442
+ return '<span class="status-connected">✓ Authorized</span>';
443
+ }
444
+ else {
445
+ return '<span class="status-connected">✓ Connected</span>';
446
+ }
447
+ case ClientStatus.AwaitingOAuth:
448
+ return `<a href="/oauth/authorize/${sanitizeUrlParam(service.name)}" class="btn btn-warning">🔐 Authorize</a>`;
449
+ case ClientStatus.Error:
450
+ case ClientStatus.Disconnected:
451
+ return `<button onclick="restartOAuth('${sanitizeServerNameForContext(service.name, 'html')}')" class="btn btn-primary">🔄 Restart OAuth</button>`;
452
+ default:
453
+ return `<button onclick="restartOAuth('${sanitizeServerNameForContext(service.name, 'html')}')" class="btn btn-primary">🔄 Start OAuth</button>`;
454
+ }
455
+ }
456
+ function getAlertHtml(req) {
457
+ if (req.query.success) {
458
+ return '<div class="alert alert-success">✅ OAuth authorization completed successfully!</div>';
459
+ }
460
+ if (req.query.error) {
461
+ const error = req.query.error;
462
+ return `<div class="alert alert-error">❌ OAuth error: ${sanitizeErrorMessage(String(error))}</div>`;
463
+ }
464
+ return '';
465
+ }
466
+ return router;
131
467
  }
468
+ // Export the factory function as default
469
+ export default createOAuthRoutes;
132
470
  //# sourceMappingURL=oauthRoutes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauthRoutes.js","sourceRoot":"","sources":["../../../../src/transport/http/routes/oauthRoutes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauthRoutes.js","sourceRoot":"","sources":["../../../../src/transport/http/routes/oauthRoutes.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import express from 'express';
1
+ import { Router } from 'express';
2
2
  import { ServerManager } from '../../../core/server/serverManager.js';
3
- export declare function setupSseRoutes(app: express.Application, serverManager: ServerManager, authMiddleware: express.RequestHandler): void;
3
+ import { SDKOAuthServerProvider } from '../../../auth/sdkOAuthServerProvider.js';
4
+ export declare function setupSseRoutes(router: Router, serverManager: ServerManager, oauthProvider?: SDKOAuthServerProvider): void;
4
5
  //# sourceMappingURL=sseRoutes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sseRoutes.d.ts","sourceRoot":"","sources":["../../../../src/transport/http/routes/sseRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,SAAS,CAAC;AAK9B,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAGtE,wBAAgB,cAAc,CAC5B,GAAG,EAAE,OAAO,CAAC,WAAW,EACxB,aAAa,EAAE,aAAa,EAC5B,cAAc,EAAE,OAAO,CAAC,cAAc,GACrC,IAAI,CA8DN"}
1
+ {"version":3,"file":"sseRoutes.d.ts","sourceRoot":"","sources":["../../../../src/transport/http/routes/sseRoutes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAqB,MAAM,SAAS,CAAC;AAKpD,OAAO,EAAE,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAItE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAEjF,wBAAgB,cAAc,CAC5B,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,aAAa,EAC5B,aAAa,CAAC,EAAE,sBAAsB,GACrC,IAAI,CA+DN"}