mcp4openapi 0.3.1 → 0.3.4
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 +7 -0
- package/dist/src/auth/oauth-provider.d.ts +1 -0
- package/dist/src/auth/oauth-provider.d.ts.map +1 -1
- package/dist/src/auth/oauth-provider.js +17 -0
- package/dist/src/auth/oauth-provider.js.map +1 -1
- package/dist/src/core/cli-config.d.ts.map +1 -1
- package/dist/src/core/cli-config.js +2 -0
- package/dist/src/core/cli-config.js.map +1 -1
- package/dist/src/core/index.d.ts.map +1 -1
- package/dist/src/core/index.js +18 -3
- package/dist/src/core/index.js.map +1 -1
- package/dist/src/index.js +0 -0
- package/dist/src/profile/profile-allowlist.d.ts +18 -0
- package/dist/src/profile/profile-allowlist.d.ts.map +1 -0
- package/dist/src/profile/profile-allowlist.js +68 -0
- package/dist/src/profile/profile-allowlist.js.map +1 -0
- package/dist/src/profile/profile-registry.d.ts +5 -0
- package/dist/src/profile/profile-registry.d.ts.map +1 -1
- package/dist/src/profile/profile-registry.js +38 -14
- package/dist/src/profile/profile-registry.js.map +1 -1
- package/dist/src/security/ssrf-validator.d.ts +31 -0
- package/dist/src/security/ssrf-validator.d.ts.map +1 -0
- package/dist/src/security/ssrf-validator.js +190 -0
- package/dist/src/security/ssrf-validator.js.map +1 -0
- package/package.json +2 -2
- package/profiles/gitlab/developer-profile-oauth.json +445 -81
- package/profiles/gitlab/developer-profile-oauth.test.json +1037 -12
- package/profiles/gitlab/openapi.yaml +1420 -165
- package/profiles/gitlab/profile-optimized-oauth.json +928 -0
- package/profiles/gitlab/profile-optimized-oauth.test.json +1606 -0
- package/profiles/grafana/openapi.json +28078 -0
- package/profiles/grafana/profile.json +1083 -0
- package/profiles/grafana/profile.test.json +235 -0
- package/profiles/mattermost/openapi.yaml +27434 -0
- package/profiles/mattermost/profile.json +463 -0
- package/profiles/mattermost/profile.test.json +607 -0
- package/profiles/n8n/profile-optimized.json +1002 -364
- package/profiles/n8n/profile-optimized.test.json +43 -43
- package/dist/src/argument-normalizer.d.ts +0 -5
- package/dist/src/argument-normalizer.d.ts.map +0 -1
- package/dist/src/argument-normalizer.js +0 -61
- package/dist/src/argument-normalizer.js.map +0 -1
- package/dist/src/cli-config.d.ts +0 -9
- package/dist/src/cli-config.d.ts.map +0 -1
- package/dist/src/cli-config.js +0 -111
- package/dist/src/cli-config.js.map +0 -1
- package/dist/src/composite-executor.d.ts +0 -77
- package/dist/src/composite-executor.d.ts.map +0 -1
- package/dist/src/composite-executor.js +0 -193
- package/dist/src/composite-executor.js.map +0 -1
- package/dist/src/constants.d.ts +0 -85
- package/dist/src/constants.d.ts.map +0 -1
- package/dist/src/constants.js +0 -85
- package/dist/src/constants.js.map +0 -1
- package/dist/src/dag-executor.d.ts +0 -49
- package/dist/src/dag-executor.d.ts.map +0 -1
- package/dist/src/dag-executor.js +0 -138
- package/dist/src/dag-executor.js.map +0 -1
- package/dist/src/errors.d.ts +0 -59
- package/dist/src/errors.d.ts.map +0 -1
- package/dist/src/errors.js +0 -119
- package/dist/src/errors.js.map +0 -1
- package/dist/src/filtering.d.ts +0 -19
- package/dist/src/filtering.d.ts.map +0 -1
- package/dist/src/filtering.js +0 -292
- package/dist/src/filtering.js.map +0 -1
- package/dist/src/http-client-factory.d.ts +0 -62
- package/dist/src/http-client-factory.d.ts.map +0 -1
- package/dist/src/http-client-factory.js +0 -133
- package/dist/src/http-client-factory.js.map +0 -1
- package/dist/src/http-transport-config.d.ts +0 -6
- package/dist/src/http-transport-config.d.ts.map +0 -1
- package/dist/src/http-transport-config.js +0 -47
- package/dist/src/http-transport-config.js.map +0 -1
- package/dist/src/http-transport.d.ts +0 -316
- package/dist/src/http-transport.d.ts.map +0 -1
- package/dist/src/http-transport.js +0 -2412
- package/dist/src/http-transport.js.map +0 -1
- package/dist/src/interceptors.d.ts +0 -116
- package/dist/src/interceptors.d.ts.map +0 -1
- package/dist/src/interceptors.js +0 -392
- package/dist/src/interceptors.js.map +0 -1
- package/dist/src/jsonrpc-validator.d.ts +0 -27
- package/dist/src/jsonrpc-validator.d.ts.map +0 -1
- package/dist/src/jsonrpc-validator.js +0 -58
- package/dist/src/jsonrpc-validator.js.map +0 -1
- package/dist/src/logger.d.ts +0 -59
- package/dist/src/logger.d.ts.map +0 -1
- package/dist/src/logger.js +0 -177
- package/dist/src/logger.js.map +0 -1
- package/dist/src/mcp-server-manager.d.ts +0 -20
- package/dist/src/mcp-server-manager.d.ts.map +0 -1
- package/dist/src/mcp-server-manager.js +0 -38
- package/dist/src/mcp-server-manager.js.map +0 -1
- package/dist/src/mcp-server.d.ts +0 -203
- package/dist/src/mcp-server.d.ts.map +0 -1
- package/dist/src/mcp-server.js +0 -1369
- package/dist/src/mcp-server.js.map +0 -1
- package/dist/src/metrics.d.ts +0 -97
- package/dist/src/metrics.d.ts.map +0 -1
- package/dist/src/metrics.js +0 -273
- package/dist/src/metrics.js.map +0 -1
- package/dist/src/naming-warnings.d.ts +0 -23
- package/dist/src/naming-warnings.d.ts.map +0 -1
- package/dist/src/naming-warnings.js +0 -83
- package/dist/src/naming-warnings.js.map +0 -1
- package/dist/src/naming.d.ts +0 -58
- package/dist/src/naming.d.ts.map +0 -1
- package/dist/src/naming.js +0 -510
- package/dist/src/naming.js.map +0 -1
- package/dist/src/oauth-provider.d.ts +0 -131
- package/dist/src/oauth-provider.d.ts.map +0 -1
- package/dist/src/oauth-provider.js +0 -836
- package/dist/src/oauth-provider.js.map +0 -1
- package/dist/src/openapi-parser.d.ts +0 -70
- package/dist/src/openapi-parser.d.ts.map +0 -1
- package/dist/src/openapi-parser.js +0 -436
- package/dist/src/openapi-parser.js.map +0 -1
- package/dist/src/profile-loader.d.ts +0 -78
- package/dist/src/profile-loader.d.ts.map +0 -1
- package/dist/src/profile-loader.js +0 -483
- package/dist/src/profile-loader.js.map +0 -1
- package/dist/src/profile-registry.d.ts +0 -18
- package/dist/src/profile-registry.d.ts.map +0 -1
- package/dist/src/profile-registry.js +0 -26
- package/dist/src/profile-registry.js.map +0 -1
- package/dist/src/profile-resolver.d.ts +0 -19
- package/dist/src/profile-resolver.d.ts.map +0 -1
- package/dist/src/profile-resolver.js +0 -167
- package/dist/src/profile-resolver.js.map +0 -1
- package/dist/src/proxy-executor.d.ts +0 -86
- package/dist/src/proxy-executor.d.ts.map +0 -1
- package/dist/src/proxy-executor.js +0 -497
- package/dist/src/proxy-executor.js.map +0 -1
- package/dist/src/schema-validator.d.ts +0 -30
- package/dist/src/schema-validator.d.ts.map +0 -1
- package/dist/src/schema-validator.js +0 -128
- package/dist/src/schema-validator.js.map +0 -1
- package/dist/src/startup-profile.d.ts +0 -17
- package/dist/src/startup-profile.d.ts.map +0 -1
- package/dist/src/startup-profile.js +0 -30
- package/dist/src/startup-profile.js.map +0 -1
- package/dist/src/startup-validation.d.ts +0 -11
- package/dist/src/startup-validation.d.ts.map +0 -1
- package/dist/src/startup-validation.js +0 -21
- package/dist/src/startup-validation.js.map +0 -1
- package/dist/src/tool-filter.d.ts +0 -65
- package/dist/src/tool-filter.d.ts.map +0 -1
- package/dist/src/tool-filter.js +0 -471
- package/dist/src/tool-filter.js.map +0 -1
- package/dist/src/tool-generator.d.ts +0 -67
- package/dist/src/tool-generator.d.ts.map +0 -1
- package/dist/src/tool-generator.js +0 -182
- package/dist/src/tool-generator.js.map +0 -1
- package/dist/src/validation-utils.d.ts +0 -49
- package/dist/src/validation-utils.d.ts.map +0 -1
- package/dist/src/validation-utils.js +0 -138
- package/dist/src/validation-utils.js.map +0 -1
- package/profiles/gitlab/developer-profile.json +0 -1508
- package/profiles/gitlab/developer-profile.test.json +0 -3432
|
@@ -1,131 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* OAuth 2.0 Provider Adapter
|
|
3
|
-
*
|
|
4
|
-
* Implements MCP SDK OAuthServerProvider interface to integrate with external
|
|
5
|
-
* OAuth 2.0 authorization servers (e.g., GitLab, GitHub, etc.)
|
|
6
|
-
*
|
|
7
|
-
* Architecture:
|
|
8
|
-
* - This server acts as an OAuth client to the external provider (Proxy/Gateway)
|
|
9
|
-
* - Implements "Callback Mode":
|
|
10
|
-
* 1. Client -> MCP (Authorize) -> MCP redirects to Provider (with MCP callback URL)
|
|
11
|
-
* 2. Provider -> MCP (Callback) -> MCP exchanges code for tokens
|
|
12
|
-
* 3. MCP redirects to Client (with Internal Code)
|
|
13
|
-
* 4. Client -> MCP (Token) -> MCP returns stored tokens
|
|
14
|
-
*/
|
|
15
|
-
import { Request, Response } from 'express';
|
|
16
|
-
import type { OAuthServerProvider, AuthorizationParams } from '@modelcontextprotocol/sdk/server/auth/provider.js';
|
|
17
|
-
import type { OAuthRegisteredClientsStore } from '@modelcontextprotocol/sdk/server/auth/clients.js';
|
|
18
|
-
import type { OAuthClientInformationFull, OAuthTokens, OAuthTokenRevocationRequest } from '@modelcontextprotocol/sdk/shared/auth.js';
|
|
19
|
-
import type { AuthInfo } from '@modelcontextprotocol/sdk/server/auth/types.js';
|
|
20
|
-
import type { OAuthConfig } from './types/profile.js';
|
|
21
|
-
import type { Logger } from './logger.js';
|
|
22
|
-
/**
|
|
23
|
-
* In-memory store for OAuth client registrations
|
|
24
|
-
*/
|
|
25
|
-
export declare class InMemoryClientsStore implements OAuthRegisteredClientsStore {
|
|
26
|
-
private clients;
|
|
27
|
-
getClient(clientId: string): Promise<OAuthClientInformationFull | undefined>;
|
|
28
|
-
registerClient(clientMetadata: OAuthClientInformationFull): Promise<OAuthClientInformationFull>;
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* OAuth Provider Adapter for external OAuth servers
|
|
32
|
-
*/
|
|
33
|
-
export declare class ExternalOAuthProvider implements OAuthServerProvider {
|
|
34
|
-
private config;
|
|
35
|
-
private logger;
|
|
36
|
-
private _clientsStore;
|
|
37
|
-
private authorizationCodes;
|
|
38
|
-
private accessTokens;
|
|
39
|
-
private stateStore;
|
|
40
|
-
private endpointsInitialized;
|
|
41
|
-
private initializationPromise;
|
|
42
|
-
constructor(config: OAuthConfig, logger: Logger);
|
|
43
|
-
/**
|
|
44
|
-
* Lazy initialization of OAuth endpoints (async)
|
|
45
|
-
* Public method to allow HttpTransport to ensure initialization before client validation
|
|
46
|
-
*/
|
|
47
|
-
ensureEndpointsInitialized(): Promise<void>;
|
|
48
|
-
get clientsStore(): OAuthRegisteredClientsStore;
|
|
49
|
-
get authorizationEndpoint(): string | undefined;
|
|
50
|
-
get redirectUri(): string | undefined;
|
|
51
|
-
get scopes(): string[];
|
|
52
|
-
/**
|
|
53
|
-
* Fetch OAuth Authorization Server Metadata (RFC 8414)
|
|
54
|
-
*/
|
|
55
|
-
private fetchOAuthMetadata;
|
|
56
|
-
/**
|
|
57
|
-
* Resolve environment variable references in OAuth config
|
|
58
|
-
*/
|
|
59
|
-
private resolveEnvVars;
|
|
60
|
-
/**
|
|
61
|
-
* Derive OAuth endpoints from issuer if needed
|
|
62
|
-
*/
|
|
63
|
-
private deriveEndpointsFromIssuer;
|
|
64
|
-
/**
|
|
65
|
-
* Check if redirect URI host is allowed
|
|
66
|
-
* Prevents open redirect vulnerabilities (CWE-601)
|
|
67
|
-
*/
|
|
68
|
-
private isAllowedRedirectHost;
|
|
69
|
-
/**
|
|
70
|
-
* Match hostname against allowlist entry
|
|
71
|
-
*
|
|
72
|
-
* Supports:
|
|
73
|
-
* - Exact hostnames
|
|
74
|
-
* - Wildcard subdomains (*.example.com)
|
|
75
|
-
* - IPv4 exact matches
|
|
76
|
-
* - IPv4 CIDR ranges (e.g., 10.0.0.0/8)
|
|
77
|
-
* - IPv6 exact matches
|
|
78
|
-
* - IPv6 CIDR ranges (e.g., 2001:db8::/32)
|
|
79
|
-
*/
|
|
80
|
-
private matchRedirectHost;
|
|
81
|
-
/**
|
|
82
|
-
* Check if IP address is within CIDR range
|
|
83
|
-
*
|
|
84
|
-
* Example: '192.168.1.50' matches '192.168.1.0/24'
|
|
85
|
-
* '2001:db8::1' matches '2001:db8::/32'
|
|
86
|
-
*/
|
|
87
|
-
private matchCIDR;
|
|
88
|
-
/**
|
|
89
|
-
* Convert IPv4 address to 32-bit integer
|
|
90
|
-
*/
|
|
91
|
-
private ipv4ToInt;
|
|
92
|
-
/**
|
|
93
|
-
* Convert IPv6 address to 128-bit BigInt
|
|
94
|
-
*/
|
|
95
|
-
private ipv6ToBigInt;
|
|
96
|
-
private ipv6Mask;
|
|
97
|
-
private stripIpv6Brackets;
|
|
98
|
-
/**
|
|
99
|
-
* Begin authorization flow
|
|
100
|
-
* Stores state and redirects to External Provider with MCP Callback URI
|
|
101
|
-
*/
|
|
102
|
-
authorize(client: OAuthClientInformationFull, params: AuthorizationParams, res: Response): Promise<void>;
|
|
103
|
-
/**
|
|
104
|
-
* Handle callback from External Provider
|
|
105
|
-
* Exchanges code for tokens and redirects to Client with Internal Code
|
|
106
|
-
*/
|
|
107
|
-
handleCallback(req: Request, res: Response): Promise<void>;
|
|
108
|
-
/**
|
|
109
|
-
* Get code challenge for authorization code (Internal)
|
|
110
|
-
*/
|
|
111
|
-
challengeForAuthorizationCode(client: OAuthClientInformationFull, authorizationCode: string): Promise<string>;
|
|
112
|
-
/**
|
|
113
|
-
* Exchange authorization code for access token (Internal)
|
|
114
|
-
*/
|
|
115
|
-
exchangeAuthorizationCode(client: OAuthClientInformationFull, authorizationCode: string, codeVerifier?: string, redirectUri?: string, resource?: URL): Promise<OAuthTokens>;
|
|
116
|
-
/**
|
|
117
|
-
* Exchange authorization code with external OAuth provider
|
|
118
|
-
*/
|
|
119
|
-
private exchangeCodeWithProvider;
|
|
120
|
-
exchangeRefreshToken(client: OAuthClientInformationFull, refreshToken: string, scopes?: string[], resource?: URL): Promise<OAuthTokens>;
|
|
121
|
-
verifyAccessToken(token: string): Promise<AuthInfo>;
|
|
122
|
-
private introspectToken;
|
|
123
|
-
revokeToken(client: OAuthClientInformationFull, request: OAuthTokenRevocationRequest): Promise<void>;
|
|
124
|
-
private revokeTokenWithProvider;
|
|
125
|
-
/**
|
|
126
|
-
* Cleanup expired states, codes, and tokens
|
|
127
|
-
* Called periodically by HttpTransport
|
|
128
|
-
*/
|
|
129
|
-
cleanup(): void;
|
|
130
|
-
}
|
|
131
|
-
//# sourceMappingURL=oauth-provider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-provider.d.ts","sourceRoot":"","sources":["../../src/oauth-provider.ts"],"names":[],"mappings":"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"}
|