@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.
- package/README.md +22 -37
- package/build/auth/sdkOAuthClientProvider.d.ts +93 -0
- package/build/auth/sdkOAuthClientProvider.d.ts.map +1 -0
- package/build/auth/sdkOAuthClientProvider.js +204 -0
- package/build/auth/sdkOAuthClientProvider.js.map +1 -0
- package/build/auth/sdkOAuthServerProvider.d.ts +64 -0
- package/build/auth/sdkOAuthServerProvider.d.ts.map +1 -0
- package/build/auth/sdkOAuthServerProvider.js +359 -0
- package/build/auth/sdkOAuthServerProvider.js.map +1 -0
- package/build/auth/sessionTypes.d.ts +38 -0
- package/build/auth/sessionTypes.d.ts.map +1 -0
- package/build/auth/sessionTypes.js +3 -0
- package/build/auth/sessionTypes.js.map +1 -0
- package/build/auth/storage/authCodeRepository.d.ts +25 -0
- package/build/auth/storage/authCodeRepository.d.ts.map +1 -0
- package/build/auth/storage/authCodeRepository.js +50 -0
- package/build/auth/storage/authCodeRepository.js.map +1 -0
- package/build/auth/storage/authRequestRepository.d.ts +25 -0
- package/build/auth/storage/authRequestRepository.d.ts.map +1 -0
- package/build/auth/storage/authRequestRepository.js +51 -0
- package/build/auth/storage/authRequestRepository.js.map +1 -0
- package/build/auth/storage/clientDataRepository.d.ts +25 -0
- package/build/auth/storage/clientDataRepository.d.ts.map +1 -0
- package/build/auth/storage/clientDataRepository.js +45 -0
- package/build/auth/storage/clientDataRepository.js.map +1 -0
- package/build/auth/storage/clientSessionRepository.d.ts +77 -0
- package/build/auth/storage/clientSessionRepository.d.ts.map +1 -0
- package/build/auth/storage/clientSessionRepository.js +120 -0
- package/build/auth/storage/clientSessionRepository.js.map +1 -0
- package/build/auth/storage/fileStorageService.d.ts +68 -0
- package/build/auth/storage/fileStorageService.d.ts.map +1 -0
- package/build/auth/storage/fileStorageService.js +262 -0
- package/build/auth/storage/fileStorageService.js.map +1 -0
- package/build/auth/storage/oauthStorageService.d.ts +57 -0
- package/build/auth/storage/oauthStorageService.d.ts.map +1 -0
- package/build/auth/storage/oauthStorageService.js +131 -0
- package/build/auth/storage/oauthStorageService.js.map +1 -0
- package/build/auth/storage/sessionRepository.d.ts +29 -0
- package/build/auth/storage/sessionRepository.d.ts.map +1 -0
- package/build/auth/storage/sessionRepository.js +64 -0
- package/build/auth/storage/sessionRepository.js.map +1 -0
- package/build/capabilities/capabilityManager.d.ts +2 -2
- package/build/capabilities/capabilityManager.d.ts.map +1 -1
- package/build/capabilities/capabilityManager.js +1 -1
- package/build/capabilities/capabilityManager.js.map +1 -1
- package/build/config/{configManager.d.ts → mcpConfigManager.d.ts} +11 -6
- package/build/config/mcpConfigManager.d.ts.map +1 -0
- package/build/config/{configManager.js → mcpConfigManager.js} +26 -8
- package/build/config/mcpConfigManager.js.map +1 -0
- package/build/constants.d.ts +51 -14
- package/build/constants.d.ts.map +1 -1
- package/build/constants.js +61 -17
- package/build/constants.js.map +1 -1
- package/build/core/client/clientManager.d.ts +14 -6
- package/build/core/client/clientManager.d.ts.map +1 -1
- package/build/core/client/clientManager.js +90 -28
- package/build/core/client/clientManager.js.map +1 -1
- package/build/core/server/{serverConfig.d.ts → agentConfig.d.ts} +50 -15
- package/build/core/server/agentConfig.d.ts.map +1 -0
- package/build/core/server/agentConfig.js +166 -0
- package/build/core/server/agentConfig.js.map +1 -0
- package/build/core/server/serverManager.d.ts +12 -5
- package/build/core/server/serverManager.d.ts.map +1 -1
- package/build/core/server/serverManager.js +12 -2
- package/build/core/server/serverManager.js.map +1 -1
- package/build/core/types/client.d.ts +22 -9
- package/build/core/types/client.d.ts.map +1 -1
- package/build/core/types/client.js +2 -0
- package/build/core/types/client.js.map +1 -1
- package/build/core/types/server.d.ts +3 -3
- package/build/core/types/server.d.ts.map +1 -1
- package/build/core/types/transport.d.ts +58 -0
- package/build/core/types/transport.d.ts.map +1 -1
- package/build/core/types/transport.js +10 -0
- package/build/core/types/transport.js.map +1 -1
- package/build/handlers/notificationHandlers.d.ts +3 -3
- package/build/handlers/notificationHandlers.d.ts.map +1 -1
- package/build/handlers/notificationHandlers.js +2 -2
- package/build/handlers/notificationHandlers.js.map +1 -1
- package/build/handlers/requestHandlers.d.ts +2 -2
- package/build/handlers/requestHandlers.d.ts.map +1 -1
- package/build/handlers/requestHandlers.js +4 -3
- package/build/handlers/requestHandlers.js.map +1 -1
- package/build/index.js +47 -7
- package/build/index.js.map +1 -1
- package/build/{transport/http/middleware/loggingMiddleware.d.ts → logger/mcpLoggingEnhancer.d.ts} +1 -1
- package/build/logger/mcpLoggingEnhancer.d.ts.map +1 -0
- package/build/{transport/http/middleware/loggingMiddleware.js → logger/mcpLoggingEnhancer.js} +2 -2
- package/build/logger/mcpLoggingEnhancer.js.map +1 -0
- package/build/server.js +4 -4
- package/build/server.js.map +1 -1
- package/build/services/configReloadService.d.ts +2 -2
- package/build/services/configReloadService.d.ts.map +1 -1
- package/build/services/configReloadService.js +4 -4
- package/build/services/configReloadService.js.map +1 -1
- package/build/transport/http/middlewares/errorHandler.d.ts.map +1 -0
- package/build/transport/http/{errorHandler.js → middlewares/errorHandler.js} +1 -1
- package/build/transport/http/middlewares/errorHandler.js.map +1 -0
- package/build/transport/http/middlewares/scopeAuthMiddleware.d.ts +39 -0
- package/build/transport/http/middlewares/scopeAuthMiddleware.d.ts.map +1 -0
- package/build/transport/http/middlewares/scopeAuthMiddleware.js +129 -0
- package/build/transport/http/middlewares/scopeAuthMiddleware.js.map +1 -0
- package/build/transport/http/middlewares/securityMiddleware.d.ts +30 -0
- package/build/transport/http/middlewares/securityMiddleware.d.ts.map +1 -0
- package/build/transport/http/middlewares/securityMiddleware.js +201 -0
- package/build/transport/http/middlewares/securityMiddleware.js.map +1 -0
- package/build/transport/http/middlewares/tagsExtractor.d.ts.map +1 -0
- package/build/transport/http/middlewares/tagsExtractor.js.map +1 -0
- package/build/transport/http/routes/oauthRoutes.d.ts +5 -11
- package/build/transport/http/routes/oauthRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/oauthRoutes.js +460 -122
- package/build/transport/http/routes/oauthRoutes.js.map +1 -1
- package/build/transport/http/routes/sseRoutes.d.ts +3 -2
- package/build/transport/http/routes/sseRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/sseRoutes.js +10 -7
- package/build/transport/http/routes/sseRoutes.js.map +1 -1
- package/build/transport/http/routes/streamableHttpRoutes.d.ts +3 -2
- package/build/transport/http/routes/streamableHttpRoutes.d.ts.map +1 -1
- package/build/transport/http/routes/streamableHttpRoutes.js +17 -10
- package/build/transport/http/routes/streamableHttpRoutes.js.map +1 -1
- package/build/transport/http/server.d.ts +3 -2
- package/build/transport/http/server.d.ts.map +1 -1
- package/build/transport/http/server.js +58 -21
- package/build/transport/http/server.js.map +1 -1
- package/build/transport/transportFactory.d.ts +9 -0
- package/build/transport/transportFactory.d.ts.map +1 -0
- package/build/transport/transportFactory.js +148 -0
- package/build/transport/transportFactory.js.map +1 -0
- package/build/utils/clientFiltering.d.ts +4 -4
- package/build/utils/clientFiltering.d.ts.map +1 -1
- package/build/utils/clientFiltering.js +54 -19
- package/build/utils/clientFiltering.js.map +1 -1
- package/build/utils/errorHandling.d.ts +0 -12
- package/build/utils/errorHandling.d.ts.map +1 -1
- package/build/utils/errorHandling.js +1 -42
- package/build/utils/errorHandling.js.map +1 -1
- package/build/utils/pagination.d.ts +2 -2
- package/build/utils/pagination.d.ts.map +1 -1
- package/build/utils/pagination.js +4 -4
- package/build/utils/pagination.js.map +1 -1
- package/build/utils/parsing.d.ts +13 -0
- package/build/utils/parsing.d.ts.map +1 -0
- package/build/utils/parsing.js +32 -0
- package/build/utils/parsing.js.map +1 -0
- package/build/utils/sanitization.d.ts +60 -0
- package/build/utils/sanitization.d.ts.map +1 -0
- package/build/utils/sanitization.js +149 -0
- package/build/utils/sanitization.js.map +1 -0
- package/build/utils/scopeValidation.d.ts +102 -0
- package/build/utils/scopeValidation.d.ts.map +1 -0
- package/build/utils/scopeValidation.js +244 -0
- package/build/utils/scopeValidation.js.map +1 -0
- package/package.json +20 -11
- package/build/auth/authManager.d.ts +0 -109
- package/build/auth/authManager.d.ts.map +0 -1
- package/build/auth/authManager.js +0 -173
- package/build/auth/authManager.js.map +0 -1
- package/build/auth/authMiddleware.d.ts +0 -16
- package/build/auth/authMiddleware.d.ts.map +0 -1
- package/build/auth/authMiddleware.js +0 -45
- package/build/auth/authMiddleware.js.map +0 -1
- package/build/auth/sessionManager.d.ts +0 -197
- package/build/auth/sessionManager.d.ts.map +0 -1
- package/build/auth/sessionManager.js +0 -408
- package/build/auth/sessionManager.js.map +0 -1
- package/build/config/configManager.d.ts.map +0 -1
- package/build/config/configManager.js.map +0 -1
- package/build/core/server/serverConfig.d.ts.map +0 -1
- package/build/core/server/serverConfig.js +0 -117
- package/build/core/server/serverConfig.js.map +0 -1
- package/build/transport/config.d.ts +0 -7
- package/build/transport/config.d.ts.map +0 -1
- package/build/transport/config.js +0 -90
- package/build/transport/config.js.map +0 -1
- package/build/transport/http/errorHandler.d.ts.map +0 -1
- package/build/transport/http/errorHandler.js.map +0 -1
- package/build/transport/http/middleware/loggingMiddleware.d.ts.map +0 -1
- package/build/transport/http/middleware/loggingMiddleware.js.map +0 -1
- package/build/utils/tagsExtractor.d.ts.map +0 -1
- package/build/utils/tagsExtractor.js.map +0 -1
- /package/build/transport/http/{errorHandler.d.ts → middlewares/errorHandler.d.ts} +0 -0
- /package/build/{utils → transport/http/middlewares}/tagsExtractor.d.ts +0 -0
- /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":"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"}
|
|
@@ -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 {
|
|
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:
|
|
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,
|
|
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
|
|
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":"AACA,OAAO,MAAM,MAAM,qBAAqB,CAAC;AACzC,OAAO,EACL,gCAAgC,EAChC,gCAAgC,GACjC,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAGzE;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,
|
|
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
|
-
*
|
|
10
|
+
* MCP configuration manager that handles loading, watching, and reloading MCP server configurations
|
|
11
11
|
*/
|
|
12
|
-
export declare class
|
|
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
|
|
25
|
+
* Get the singleton instance of McpConfigManager
|
|
26
26
|
* @param configFilePath - Optional path to the config file
|
|
27
27
|
*/
|
|
28
|
-
static getInstance(configFilePath?: string):
|
|
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
|
|
60
|
-
//# sourceMappingURL=
|
|
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
|
-
*
|
|
14
|
+
* MCP configuration manager that handles loading, watching, and reloading MCP server configurations
|
|
15
15
|
*/
|
|
16
|
-
export class
|
|
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
|
|
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 (!
|
|
39
|
-
|
|
38
|
+
if (!McpConfigManager.instance) {
|
|
39
|
+
McpConfigManager.instance = new McpConfigManager(configFilePath);
|
|
40
40
|
}
|
|
41
|
-
return
|
|
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
|
|
153
|
-
//# sourceMappingURL=
|
|
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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"}
|
package/build/constants.d.ts
CHANGED
|
@@ -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 = "
|
|
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
|
+
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
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
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: {
|
package/build/constants.d.ts.map
CHANGED
|
@@ -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
|
|
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"}
|
package/build/constants.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
// Server configuration
|
|
5
5
|
export const PORT = 3050;
|
|
6
|
-
export const HOST = '
|
|
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.
|
|
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
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
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, //
|
|
66
|
-
MAX:
|
|
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
|
};
|
package/build/constants.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,uBAAuB;AACvB,MAAM,CAAC,MAAM,IAAI,GAAG,IAAI,CAAC;AACzB,MAAM,CAAC,MAAM,IAAI,GAAG,WAAW,CAAC;AAEhC,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,CAAC;AACnC,MAAM,CAAC,MAAM,iBAAiB,GAAG,WAAW,CAAC;AAC7C,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAE/C,gBAAgB;AAChB,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAAC;AAC1C,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AACtC,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC;AAE3C,MAAM,CAAC,MAAM,iBAAiB,GAAG,QAAQ,CAAC;AAE1C,sBAAsB;AACtB,MAAM,CAAC,MAAM,eAAe,GAAG,MAAM,CAAC;AACtC,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,UAAU,EAAE,EAAE;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;IAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IACxD,CAAC;IAED,MAAM,SAAS,GACb,OAAO,CAAC,QAAQ,KAAK,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,OAAO;QAC3D,CAAC,CAAC,GAAG,OAAO,YAAY,eAAe,EAAE;QACzC,CAAC,CAAC,GAAG,OAAO,oBAAoB,eAAe,EAAE,CAAC;IAEtD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB;IACjC,OAAO,GAAG,kBAAkB,EAAE,IAAI,eAAe,EAAE,CAAC;AACtD,CAAC;AAED,4BAA4B;AAC5B,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,YAAY,EAAE,CAAC;IACf,gBAAgB,EAAE,IAAI;CACvB,CAAC;AAEF,sCAAsC;AACtC,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,eAAe,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
|