@modelcontextprotocol/sdk 1.15.1 → 1.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +43 -7
- package/dist/cjs/client/auth.d.ts +69 -12
- package/dist/cjs/client/auth.d.ts.map +1 -1
- package/dist/cjs/client/auth.js +216 -39
- package/dist/cjs/client/auth.js.map +1 -1
- package/dist/cjs/client/index.d.ts +63 -63
- package/dist/cjs/client/sse.js +3 -3
- package/dist/cjs/client/sse.js.map +1 -1
- package/dist/cjs/client/streamableHttp.d.ts.map +1 -1
- package/dist/cjs/client/streamableHttp.js +18 -18
- package/dist/cjs/client/streamableHttp.js.map +1 -1
- package/dist/cjs/server/auth/clients.d.ts +1 -1
- package/dist/cjs/server/auth/clients.d.ts.map +1 -1
- package/dist/cjs/server/auth/errors.d.ts +33 -18
- package/dist/cjs/server/auth/errors.d.ts.map +1 -1
- package/dist/cjs/server/auth/errors.js +55 -51
- package/dist/cjs/server/auth/errors.js.map +1 -1
- package/dist/cjs/server/auth/handlers/register.d.ts +7 -1
- package/dist/cjs/server/auth/handlers/register.d.ts.map +1 -1
- package/dist/cjs/server/auth/handlers/register.js +5 -4
- package/dist/cjs/server/auth/handlers/register.js.map +1 -1
- package/dist/cjs/server/auth/providers/proxyProvider.d.ts +6 -0
- package/dist/cjs/server/auth/providers/proxyProvider.d.ts.map +1 -1
- package/dist/cjs/server/auth/providers/proxyProvider.js +9 -4
- package/dist/cjs/server/auth/providers/proxyProvider.js.map +1 -1
- package/dist/cjs/server/auth/router.js +1 -1
- package/dist/cjs/server/auth/router.js.map +1 -1
- package/dist/cjs/server/index.d.ts +6 -6
- package/dist/cjs/shared/auth.d.ts +290 -0
- package/dist/cjs/shared/auth.d.ts.map +1 -1
- package/dist/cjs/shared/auth.js +59 -1
- package/dist/cjs/shared/auth.js.map +1 -1
- package/dist/cjs/shared/protocol.d.ts +8 -0
- package/dist/cjs/shared/protocol.d.ts.map +1 -1
- package/dist/cjs/shared/protocol.js +37 -0
- package/dist/cjs/shared/protocol.js.map +1 -1
- package/dist/cjs/types.d.ts +687 -687
- package/dist/cjs/types.d.ts.map +1 -1
- package/dist/cjs/types.js +19 -3
- package/dist/cjs/types.js.map +1 -1
- package/dist/esm/client/auth.d.ts +69 -12
- package/dist/esm/client/auth.d.ts.map +1 -1
- package/dist/esm/client/auth.js +208 -34
- package/dist/esm/client/auth.js.map +1 -1
- package/dist/esm/client/index.d.ts +63 -63
- package/dist/esm/client/sse.js +3 -3
- package/dist/esm/client/sse.js.map +1 -1
- package/dist/esm/client/streamableHttp.d.ts.map +1 -1
- package/dist/esm/client/streamableHttp.js +18 -18
- package/dist/esm/client/streamableHttp.js.map +1 -1
- package/dist/esm/server/auth/clients.d.ts +1 -1
- package/dist/esm/server/auth/clients.d.ts.map +1 -1
- package/dist/esm/server/auth/errors.d.ts +33 -18
- package/dist/esm/server/auth/errors.d.ts.map +1 -1
- package/dist/esm/server/auth/errors.js +52 -49
- package/dist/esm/server/auth/errors.js.map +1 -1
- package/dist/esm/server/auth/handlers/register.d.ts +7 -1
- package/dist/esm/server/auth/handlers/register.d.ts.map +1 -1
- package/dist/esm/server/auth/handlers/register.js +5 -4
- package/dist/esm/server/auth/handlers/register.js.map +1 -1
- package/dist/esm/server/auth/providers/proxyProvider.d.ts +6 -0
- package/dist/esm/server/auth/providers/proxyProvider.d.ts.map +1 -1
- package/dist/esm/server/auth/providers/proxyProvider.js +9 -4
- package/dist/esm/server/auth/providers/proxyProvider.js.map +1 -1
- package/dist/esm/server/auth/router.js +1 -1
- package/dist/esm/server/auth/router.js.map +1 -1
- package/dist/esm/server/index.d.ts +6 -6
- package/dist/esm/shared/auth.d.ts +290 -0
- package/dist/esm/shared/auth.d.ts.map +1 -1
- package/dist/esm/shared/auth.js +58 -0
- package/dist/esm/shared/auth.js.map +1 -1
- package/dist/esm/shared/protocol.d.ts +8 -0
- package/dist/esm/shared/protocol.d.ts.map +1 -1
- package/dist/esm/shared/protocol.js +37 -0
- package/dist/esm/shared/protocol.js.map +1 -1
- package/dist/esm/types.d.ts +687 -687
- package/dist/esm/types.d.ts.map +1 -1
- package/dist/esm/types.js +19 -3
- package/dist/esm/types.js.map +1 -1
- package/package.json +3 -2
package/dist/esm/client/auth.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import pkceChallenge from "pkce-challenge";
|
|
2
2
|
import { LATEST_PROTOCOL_VERSION } from "../types.js";
|
|
3
|
+
import { OAuthErrorResponseSchema, OpenIdProviderDiscoveryMetadataSchema } from "../shared/auth.js";
|
|
3
4
|
import { OAuthClientInformationFullSchema, OAuthMetadataSchema, OAuthProtectedResourceMetadataSchema, OAuthTokensSchema } from "../shared/auth.js";
|
|
4
5
|
import { checkResourceAllowed, resourceUrlFromServerUrl } from "../shared/auth-utils.js";
|
|
6
|
+
import { InvalidClientError, InvalidGrantError, OAUTH_ERRORS, OAuthError, ServerError, UnauthorizedClientError } from "../server/auth/errors.js";
|
|
5
7
|
export class UnauthorizedError extends Error {
|
|
6
8
|
constructor(message) {
|
|
7
9
|
super(message !== null && message !== void 0 ? message : "Unauthorized");
|
|
@@ -93,17 +95,62 @@ function applyPostAuth(clientId, clientSecret, params) {
|
|
|
93
95
|
function applyPublicAuth(clientId, params) {
|
|
94
96
|
params.set("client_id", clientId);
|
|
95
97
|
}
|
|
98
|
+
/**
|
|
99
|
+
* Parses an OAuth error response from a string or Response object.
|
|
100
|
+
*
|
|
101
|
+
* If the input is a standard OAuth2.0 error response, it will be parsed according to the spec
|
|
102
|
+
* and an instance of the appropriate OAuthError subclass will be returned.
|
|
103
|
+
* If parsing fails, it falls back to a generic ServerError that includes
|
|
104
|
+
* the response status (if available) and original content.
|
|
105
|
+
*
|
|
106
|
+
* @param input - A Response object or string containing the error response
|
|
107
|
+
* @returns A Promise that resolves to an OAuthError instance
|
|
108
|
+
*/
|
|
109
|
+
export async function parseErrorResponse(input) {
|
|
110
|
+
const statusCode = input instanceof Response ? input.status : undefined;
|
|
111
|
+
const body = input instanceof Response ? await input.text() : input;
|
|
112
|
+
try {
|
|
113
|
+
const result = OAuthErrorResponseSchema.parse(JSON.parse(body));
|
|
114
|
+
const { error, error_description, error_uri } = result;
|
|
115
|
+
const errorClass = OAUTH_ERRORS[error] || ServerError;
|
|
116
|
+
return new errorClass(error_description || '', error_uri);
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
// Not a valid OAuth error response, but try to inform the user of the raw data anyway
|
|
120
|
+
const errorMessage = `${statusCode ? `HTTP ${statusCode}: ` : ''}Invalid OAuth error response: ${error}. Raw body: ${body}`;
|
|
121
|
+
return new ServerError(errorMessage);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
96
124
|
/**
|
|
97
125
|
* Orchestrates the full auth flow with a server.
|
|
98
126
|
*
|
|
99
127
|
* This can be used as a single entry point for all authorization functionality,
|
|
100
128
|
* instead of linking together the other lower-level functions in this module.
|
|
101
129
|
*/
|
|
102
|
-
export async function auth(provider,
|
|
130
|
+
export async function auth(provider, options) {
|
|
131
|
+
var _a, _b;
|
|
132
|
+
try {
|
|
133
|
+
return await authInternal(provider, options);
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
// Handle recoverable error types by invalidating credentials and retrying
|
|
137
|
+
if (error instanceof InvalidClientError || error instanceof UnauthorizedClientError) {
|
|
138
|
+
await ((_a = provider.invalidateCredentials) === null || _a === void 0 ? void 0 : _a.call(provider, 'all'));
|
|
139
|
+
return await authInternal(provider, options);
|
|
140
|
+
}
|
|
141
|
+
else if (error instanceof InvalidGrantError) {
|
|
142
|
+
await ((_b = provider.invalidateCredentials) === null || _b === void 0 ? void 0 : _b.call(provider, 'tokens'));
|
|
143
|
+
return await authInternal(provider, options);
|
|
144
|
+
}
|
|
145
|
+
// Throw otherwise
|
|
146
|
+
throw error;
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
async function authInternal(provider, { serverUrl, authorizationCode, scope, resourceMetadataUrl, fetchFn, }) {
|
|
103
150
|
let resourceMetadata;
|
|
104
|
-
let authorizationServerUrl
|
|
151
|
+
let authorizationServerUrl;
|
|
105
152
|
try {
|
|
106
|
-
resourceMetadata = await discoverOAuthProtectedResourceMetadata(serverUrl, { resourceMetadataUrl });
|
|
153
|
+
resourceMetadata = await discoverOAuthProtectedResourceMetadata(serverUrl, { resourceMetadataUrl }, fetchFn);
|
|
107
154
|
if (resourceMetadata.authorization_servers && resourceMetadata.authorization_servers.length > 0) {
|
|
108
155
|
authorizationServerUrl = resourceMetadata.authorization_servers[0];
|
|
109
156
|
}
|
|
@@ -111,9 +158,16 @@ export async function auth(provider, { serverUrl, authorizationCode, scope, reso
|
|
|
111
158
|
catch (_a) {
|
|
112
159
|
// Ignore errors and fall back to /.well-known/oauth-authorization-server
|
|
113
160
|
}
|
|
161
|
+
/**
|
|
162
|
+
* If we don't get a valid authorization server metadata from protected resource metadata,
|
|
163
|
+
* fallback to the legacy MCP spec's implementation (version 2025-03-26): MCP server acts as the Authorization server.
|
|
164
|
+
*/
|
|
165
|
+
if (!authorizationServerUrl) {
|
|
166
|
+
authorizationServerUrl = serverUrl;
|
|
167
|
+
}
|
|
114
168
|
const resource = await selectResourceURL(serverUrl, provider, resourceMetadata);
|
|
115
|
-
const metadata = await
|
|
116
|
-
|
|
169
|
+
const metadata = await discoverAuthorizationServerMetadata(authorizationServerUrl, {
|
|
170
|
+
fetchFn,
|
|
117
171
|
});
|
|
118
172
|
// Handle client registration if needed
|
|
119
173
|
let clientInformation = await Promise.resolve(provider.clientInformation());
|
|
@@ -142,6 +196,7 @@ export async function auth(provider, { serverUrl, authorizationCode, scope, reso
|
|
|
142
196
|
redirectUri: provider.redirectUrl,
|
|
143
197
|
resource,
|
|
144
198
|
addClientAuthentication: provider.addClientAuthentication,
|
|
199
|
+
fetchFn: fetchFn,
|
|
145
200
|
});
|
|
146
201
|
await provider.saveTokens(tokens);
|
|
147
202
|
return "AUTHORIZED";
|
|
@@ -161,8 +216,15 @@ export async function auth(provider, { serverUrl, authorizationCode, scope, reso
|
|
|
161
216
|
await provider.saveTokens(newTokens);
|
|
162
217
|
return "AUTHORIZED";
|
|
163
218
|
}
|
|
164
|
-
catch (
|
|
165
|
-
//
|
|
219
|
+
catch (error) {
|
|
220
|
+
// If this is a ServerError, or an unknown type, log it out and try to continue. Otherwise, escalate so we can fix things and retry.
|
|
221
|
+
if (!(error instanceof OAuthError) || error instanceof ServerError) {
|
|
222
|
+
// Could not refresh OAuth tokens
|
|
223
|
+
}
|
|
224
|
+
else {
|
|
225
|
+
// Refresh failed for another reason, re-throw
|
|
226
|
+
throw error;
|
|
227
|
+
}
|
|
166
228
|
}
|
|
167
229
|
}
|
|
168
230
|
const state = provider.state ? await provider.state() : undefined;
|
|
@@ -226,8 +288,8 @@ export function extractResourceMetadataUrl(res) {
|
|
|
226
288
|
* If the server returns a 404 for the well-known endpoint, this function will
|
|
227
289
|
* return `undefined`. Any other errors will be thrown as exceptions.
|
|
228
290
|
*/
|
|
229
|
-
export async function discoverOAuthProtectedResourceMetadata(serverUrl, opts) {
|
|
230
|
-
const response = await discoverMetadataWithFallback(serverUrl, 'oauth-protected-resource', {
|
|
291
|
+
export async function discoverOAuthProtectedResourceMetadata(serverUrl, opts, fetchFn = fetch) {
|
|
292
|
+
const response = await discoverMetadataWithFallback(serverUrl, 'oauth-protected-resource', fetchFn, {
|
|
231
293
|
protocolVersion: opts === null || opts === void 0 ? void 0 : opts.protocolVersion,
|
|
232
294
|
metadataUrl: opts === null || opts === void 0 ? void 0 : opts.resourceMetadataUrl,
|
|
233
295
|
});
|
|
@@ -242,15 +304,15 @@ export async function discoverOAuthProtectedResourceMetadata(serverUrl, opts) {
|
|
|
242
304
|
/**
|
|
243
305
|
* Helper function to handle fetch with CORS retry logic
|
|
244
306
|
*/
|
|
245
|
-
async function fetchWithCorsRetry(url, headers) {
|
|
307
|
+
async function fetchWithCorsRetry(url, headers, fetchFn = fetch) {
|
|
246
308
|
try {
|
|
247
|
-
return await
|
|
309
|
+
return await fetchFn(url, { headers });
|
|
248
310
|
}
|
|
249
311
|
catch (error) {
|
|
250
312
|
if (error instanceof TypeError) {
|
|
251
313
|
if (headers) {
|
|
252
314
|
// CORS errors come back as TypeError, retry without headers
|
|
253
|
-
return fetchWithCorsRetry(url);
|
|
315
|
+
return fetchWithCorsRetry(url, undefined, fetchFn);
|
|
254
316
|
}
|
|
255
317
|
else {
|
|
256
318
|
// We're getting CORS errors on retry too, return undefined
|
|
@@ -261,24 +323,25 @@ async function fetchWithCorsRetry(url, headers) {
|
|
|
261
323
|
}
|
|
262
324
|
}
|
|
263
325
|
/**
|
|
264
|
-
* Constructs the well-known path for
|
|
326
|
+
* Constructs the well-known path for auth-related metadata discovery
|
|
265
327
|
*/
|
|
266
|
-
function buildWellKnownPath(wellKnownPrefix, pathname) {
|
|
267
|
-
|
|
328
|
+
function buildWellKnownPath(wellKnownPrefix, pathname = '', options = {}) {
|
|
329
|
+
// Strip trailing slash from pathname to avoid double slashes
|
|
268
330
|
if (pathname.endsWith('/')) {
|
|
269
|
-
|
|
270
|
-
wellKnownPath = wellKnownPath.slice(0, -1);
|
|
331
|
+
pathname = pathname.slice(0, -1);
|
|
271
332
|
}
|
|
272
|
-
return
|
|
333
|
+
return options.prependPathname
|
|
334
|
+
? `${pathname}/.well-known/${wellKnownPrefix}`
|
|
335
|
+
: `/.well-known/${wellKnownPrefix}${pathname}`;
|
|
273
336
|
}
|
|
274
337
|
/**
|
|
275
338
|
* Tries to discover OAuth metadata at a specific URL
|
|
276
339
|
*/
|
|
277
|
-
async function tryMetadataDiscovery(url, protocolVersion) {
|
|
340
|
+
async function tryMetadataDiscovery(url, protocolVersion, fetchFn = fetch) {
|
|
278
341
|
const headers = {
|
|
279
342
|
"MCP-Protocol-Version": protocolVersion
|
|
280
343
|
};
|
|
281
|
-
return await fetchWithCorsRetry(url, headers);
|
|
344
|
+
return await fetchWithCorsRetry(url, headers, fetchFn);
|
|
282
345
|
}
|
|
283
346
|
/**
|
|
284
347
|
* Determines if fallback to root discovery should be attempted
|
|
@@ -289,7 +352,7 @@ function shouldAttemptFallback(response, pathname) {
|
|
|
289
352
|
/**
|
|
290
353
|
* Generic function for discovering OAuth metadata with fallback support
|
|
291
354
|
*/
|
|
292
|
-
async function discoverMetadataWithFallback(serverUrl, wellKnownType, opts) {
|
|
355
|
+
async function discoverMetadataWithFallback(serverUrl, wellKnownType, fetchFn, opts) {
|
|
293
356
|
var _a, _b;
|
|
294
357
|
const issuer = new URL(serverUrl);
|
|
295
358
|
const protocolVersion = (_a = opts === null || opts === void 0 ? void 0 : opts.protocolVersion) !== null && _a !== void 0 ? _a : LATEST_PROTOCOL_VERSION;
|
|
@@ -303,11 +366,11 @@ async function discoverMetadataWithFallback(serverUrl, wellKnownType, opts) {
|
|
|
303
366
|
url = new URL(wellKnownPath, (_b = opts === null || opts === void 0 ? void 0 : opts.metadataServerUrl) !== null && _b !== void 0 ? _b : issuer);
|
|
304
367
|
url.search = issuer.search;
|
|
305
368
|
}
|
|
306
|
-
let response = await tryMetadataDiscovery(url, protocolVersion);
|
|
369
|
+
let response = await tryMetadataDiscovery(url, protocolVersion, fetchFn);
|
|
307
370
|
// If path-aware discovery fails with 404 and we're not already at root, try fallback to root discovery
|
|
308
371
|
if (!(opts === null || opts === void 0 ? void 0 : opts.metadataUrl) && shouldAttemptFallback(response, issuer.pathname)) {
|
|
309
372
|
const rootUrl = new URL(`/.well-known/${wellKnownType}`, issuer);
|
|
310
|
-
response = await tryMetadataDiscovery(rootUrl, protocolVersion);
|
|
373
|
+
response = await tryMetadataDiscovery(rootUrl, protocolVersion, fetchFn);
|
|
311
374
|
}
|
|
312
375
|
return response;
|
|
313
376
|
}
|
|
@@ -316,8 +379,10 @@ async function discoverMetadataWithFallback(serverUrl, wellKnownType, opts) {
|
|
|
316
379
|
*
|
|
317
380
|
* If the server returns a 404 for the well-known endpoint, this function will
|
|
318
381
|
* return `undefined`. Any other errors will be thrown as exceptions.
|
|
382
|
+
*
|
|
383
|
+
* @deprecated This function is deprecated in favor of `discoverAuthorizationServerMetadata`.
|
|
319
384
|
*/
|
|
320
|
-
export async function discoverOAuthMetadata(issuer, { authorizationServerUrl, protocolVersion, } = {}) {
|
|
385
|
+
export async function discoverOAuthMetadata(issuer, { authorizationServerUrl, protocolVersion, } = {}, fetchFn = fetch) {
|
|
321
386
|
if (typeof issuer === 'string') {
|
|
322
387
|
issuer = new URL(issuer);
|
|
323
388
|
}
|
|
@@ -328,7 +393,7 @@ export async function discoverOAuthMetadata(issuer, { authorizationServerUrl, pr
|
|
|
328
393
|
authorizationServerUrl = new URL(authorizationServerUrl);
|
|
329
394
|
}
|
|
330
395
|
protocolVersion !== null && protocolVersion !== void 0 ? protocolVersion : (protocolVersion = LATEST_PROTOCOL_VERSION);
|
|
331
|
-
const response = await discoverMetadataWithFallback(
|
|
396
|
+
const response = await discoverMetadataWithFallback(authorizationServerUrl, 'oauth-authorization-server', fetchFn, {
|
|
332
397
|
protocolVersion,
|
|
333
398
|
metadataServerUrl: authorizationServerUrl,
|
|
334
399
|
});
|
|
@@ -340,6 +405,108 @@ export async function discoverOAuthMetadata(issuer, { authorizationServerUrl, pr
|
|
|
340
405
|
}
|
|
341
406
|
return OAuthMetadataSchema.parse(await response.json());
|
|
342
407
|
}
|
|
408
|
+
/**
|
|
409
|
+
* Builds a list of discovery URLs to try for authorization server metadata.
|
|
410
|
+
* URLs are returned in priority order:
|
|
411
|
+
* 1. OAuth metadata at the given URL
|
|
412
|
+
* 2. OAuth metadata at root (if URL has path)
|
|
413
|
+
* 3. OIDC metadata endpoints
|
|
414
|
+
*/
|
|
415
|
+
export function buildDiscoveryUrls(authorizationServerUrl) {
|
|
416
|
+
const url = typeof authorizationServerUrl === 'string' ? new URL(authorizationServerUrl) : authorizationServerUrl;
|
|
417
|
+
const hasPath = url.pathname !== '/';
|
|
418
|
+
const urlsToTry = [];
|
|
419
|
+
if (!hasPath) {
|
|
420
|
+
// Root path: https://example.com/.well-known/oauth-authorization-server
|
|
421
|
+
urlsToTry.push({
|
|
422
|
+
url: new URL('/.well-known/oauth-authorization-server', url.origin),
|
|
423
|
+
type: 'oauth'
|
|
424
|
+
});
|
|
425
|
+
// OIDC: https://example.com/.well-known/openid-configuration
|
|
426
|
+
urlsToTry.push({
|
|
427
|
+
url: new URL(`/.well-known/openid-configuration`, url.origin),
|
|
428
|
+
type: 'oidc'
|
|
429
|
+
});
|
|
430
|
+
return urlsToTry;
|
|
431
|
+
}
|
|
432
|
+
// Strip trailing slash from pathname to avoid double slashes
|
|
433
|
+
let pathname = url.pathname;
|
|
434
|
+
if (pathname.endsWith('/')) {
|
|
435
|
+
pathname = pathname.slice(0, -1);
|
|
436
|
+
}
|
|
437
|
+
// 1. OAuth metadata at the given URL
|
|
438
|
+
// Insert well-known before the path: https://example.com/.well-known/oauth-authorization-server/tenant1
|
|
439
|
+
urlsToTry.push({
|
|
440
|
+
url: new URL(`/.well-known/oauth-authorization-server${pathname}`, url.origin),
|
|
441
|
+
type: 'oauth'
|
|
442
|
+
});
|
|
443
|
+
// Root path: https://example.com/.well-known/oauth-authorization-server
|
|
444
|
+
urlsToTry.push({
|
|
445
|
+
url: new URL('/.well-known/oauth-authorization-server', url.origin),
|
|
446
|
+
type: 'oauth'
|
|
447
|
+
});
|
|
448
|
+
// 3. OIDC metadata endpoints
|
|
449
|
+
// RFC 8414 style: Insert /.well-known/openid-configuration before the path
|
|
450
|
+
urlsToTry.push({
|
|
451
|
+
url: new URL(`/.well-known/openid-configuration${pathname}`, url.origin),
|
|
452
|
+
type: 'oidc'
|
|
453
|
+
});
|
|
454
|
+
// OIDC Discovery 1.0 style: Append /.well-known/openid-configuration after the path
|
|
455
|
+
urlsToTry.push({
|
|
456
|
+
url: new URL(`${pathname}/.well-known/openid-configuration`, url.origin),
|
|
457
|
+
type: 'oidc'
|
|
458
|
+
});
|
|
459
|
+
return urlsToTry;
|
|
460
|
+
}
|
|
461
|
+
/**
|
|
462
|
+
* Discovers authorization server metadata with support for RFC 8414 OAuth 2.0 Authorization Server Metadata
|
|
463
|
+
* and OpenID Connect Discovery 1.0 specifications.
|
|
464
|
+
*
|
|
465
|
+
* This function implements a fallback strategy for authorization server discovery:
|
|
466
|
+
* 1. Attempts RFC 8414 OAuth metadata discovery first
|
|
467
|
+
* 2. If OAuth discovery fails, falls back to OpenID Connect Discovery
|
|
468
|
+
*
|
|
469
|
+
* @param authorizationServerUrl - The authorization server URL obtained from the MCP Server's
|
|
470
|
+
* protected resource metadata, or the MCP server's URL if the
|
|
471
|
+
* metadata was not found.
|
|
472
|
+
* @param options - Configuration options
|
|
473
|
+
* @param options.fetchFn - Optional fetch function for making HTTP requests, defaults to global fetch
|
|
474
|
+
* @param options.protocolVersion - MCP protocol version to use, defaults to LATEST_PROTOCOL_VERSION
|
|
475
|
+
* @returns Promise resolving to authorization server metadata, or undefined if discovery fails
|
|
476
|
+
*/
|
|
477
|
+
export async function discoverAuthorizationServerMetadata(authorizationServerUrl, { fetchFn = fetch, protocolVersion = LATEST_PROTOCOL_VERSION, } = {}) {
|
|
478
|
+
var _a;
|
|
479
|
+
const headers = { 'MCP-Protocol-Version': protocolVersion };
|
|
480
|
+
// Get the list of URLs to try
|
|
481
|
+
const urlsToTry = buildDiscoveryUrls(authorizationServerUrl);
|
|
482
|
+
// Try each URL in order
|
|
483
|
+
for (const { url: endpointUrl, type } of urlsToTry) {
|
|
484
|
+
const response = await fetchWithCorsRetry(endpointUrl, headers, fetchFn);
|
|
485
|
+
if (!response) {
|
|
486
|
+
throw new Error(`CORS error trying to load ${type === 'oauth' ? 'OAuth' : 'OpenID provider'} metadata from ${endpointUrl}`);
|
|
487
|
+
}
|
|
488
|
+
if (!response.ok) {
|
|
489
|
+
// Continue looking for any 4xx response code.
|
|
490
|
+
if (response.status >= 400 && response.status < 500) {
|
|
491
|
+
continue; // Try next URL
|
|
492
|
+
}
|
|
493
|
+
throw new Error(`HTTP ${response.status} trying to load ${type === 'oauth' ? 'OAuth' : 'OpenID provider'} metadata from ${endpointUrl}`);
|
|
494
|
+
}
|
|
495
|
+
// Parse and validate based on type
|
|
496
|
+
if (type === 'oauth') {
|
|
497
|
+
return OAuthMetadataSchema.parse(await response.json());
|
|
498
|
+
}
|
|
499
|
+
else {
|
|
500
|
+
const metadata = OpenIdProviderDiscoveryMetadataSchema.parse(await response.json());
|
|
501
|
+
// MCP spec requires OIDC providers to support S256 PKCE
|
|
502
|
+
if (!((_a = metadata.code_challenge_methods_supported) === null || _a === void 0 ? void 0 : _a.includes('S256'))) {
|
|
503
|
+
throw new Error(`Incompatible OIDC provider at ${endpointUrl}: does not support S256 code challenge method required by MCP specification`);
|
|
504
|
+
}
|
|
505
|
+
return metadata;
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
return undefined;
|
|
509
|
+
}
|
|
343
510
|
/**
|
|
344
511
|
* Begins the authorization flow with the given server, by generating a PKCE challenge and constructing the authorization URL.
|
|
345
512
|
*/
|
|
@@ -375,6 +542,12 @@ export async function startAuthorization(authorizationServerUrl, { metadata, cli
|
|
|
375
542
|
if (scope) {
|
|
376
543
|
authorizationUrl.searchParams.set("scope", scope);
|
|
377
544
|
}
|
|
545
|
+
if (scope === null || scope === void 0 ? void 0 : scope.includes("offline_access")) {
|
|
546
|
+
// if the request includes the OIDC-only "offline_access" scope,
|
|
547
|
+
// we need to set the prompt to "consent" to ensure the user is prompted to grant offline access
|
|
548
|
+
// https://openid.net/specs/openid-connect-core-1_0.html#OfflineAccess
|
|
549
|
+
authorizationUrl.searchParams.append("prompt", "consent");
|
|
550
|
+
}
|
|
378
551
|
if (resource) {
|
|
379
552
|
authorizationUrl.searchParams.set("resource", resource.href);
|
|
380
553
|
}
|
|
@@ -392,7 +565,7 @@ export async function startAuthorization(authorizationServerUrl, { metadata, cli
|
|
|
392
565
|
* @returns Promise resolving to OAuth tokens
|
|
393
566
|
* @throws {Error} When token exchange fails or authentication is invalid
|
|
394
567
|
*/
|
|
395
|
-
export async function exchangeAuthorization(authorizationServerUrl, { metadata, clientInformation, authorizationCode, codeVerifier, redirectUri, resource, addClientAuthentication }) {
|
|
568
|
+
export async function exchangeAuthorization(authorizationServerUrl, { metadata, clientInformation, authorizationCode, codeVerifier, redirectUri, resource, addClientAuthentication, fetchFn, }) {
|
|
396
569
|
var _a;
|
|
397
570
|
const grantType = "authorization_code";
|
|
398
571
|
const tokenUrl = (metadata === null || metadata === void 0 ? void 0 : metadata.token_endpoint)
|
|
@@ -405,6 +578,7 @@ export async function exchangeAuthorization(authorizationServerUrl, { metadata,
|
|
|
405
578
|
// Exchange code for tokens
|
|
406
579
|
const headers = new Headers({
|
|
407
580
|
"Content-Type": "application/x-www-form-urlencoded",
|
|
581
|
+
"Accept": "application/json",
|
|
408
582
|
});
|
|
409
583
|
const params = new URLSearchParams({
|
|
410
584
|
grant_type: grantType,
|
|
@@ -424,13 +598,13 @@ export async function exchangeAuthorization(authorizationServerUrl, { metadata,
|
|
|
424
598
|
if (resource) {
|
|
425
599
|
params.set("resource", resource.href);
|
|
426
600
|
}
|
|
427
|
-
const response = await fetch(tokenUrl, {
|
|
601
|
+
const response = await (fetchFn !== null && fetchFn !== void 0 ? fetchFn : fetch)(tokenUrl, {
|
|
428
602
|
method: "POST",
|
|
429
603
|
headers,
|
|
430
604
|
body: params,
|
|
431
605
|
});
|
|
432
606
|
if (!response.ok) {
|
|
433
|
-
throw
|
|
607
|
+
throw await parseErrorResponse(response);
|
|
434
608
|
}
|
|
435
609
|
return OAuthTokensSchema.parse(await response.json());
|
|
436
610
|
}
|
|
@@ -446,7 +620,7 @@ export async function exchangeAuthorization(authorizationServerUrl, { metadata,
|
|
|
446
620
|
* @returns Promise resolving to OAuth tokens (preserves original refresh_token if not replaced)
|
|
447
621
|
* @throws {Error} When token refresh fails or authentication is invalid
|
|
448
622
|
*/
|
|
449
|
-
export async function refreshAuthorization(authorizationServerUrl, { metadata, clientInformation, refreshToken, resource, addClientAuthentication, }) {
|
|
623
|
+
export async function refreshAuthorization(authorizationServerUrl, { metadata, clientInformation, refreshToken, resource, addClientAuthentication, fetchFn, }) {
|
|
450
624
|
var _a;
|
|
451
625
|
const grantType = "refresh_token";
|
|
452
626
|
let tokenUrl;
|
|
@@ -480,20 +654,20 @@ export async function refreshAuthorization(authorizationServerUrl, { metadata, c
|
|
|
480
654
|
if (resource) {
|
|
481
655
|
params.set("resource", resource.href);
|
|
482
656
|
}
|
|
483
|
-
const response = await fetch(tokenUrl, {
|
|
657
|
+
const response = await (fetchFn !== null && fetchFn !== void 0 ? fetchFn : fetch)(tokenUrl, {
|
|
484
658
|
method: "POST",
|
|
485
659
|
headers,
|
|
486
660
|
body: params,
|
|
487
661
|
});
|
|
488
662
|
if (!response.ok) {
|
|
489
|
-
throw
|
|
663
|
+
throw await parseErrorResponse(response);
|
|
490
664
|
}
|
|
491
665
|
return OAuthTokensSchema.parse({ refresh_token: refreshToken, ...(await response.json()) });
|
|
492
666
|
}
|
|
493
667
|
/**
|
|
494
668
|
* Performs OAuth 2.0 Dynamic Client Registration according to RFC 7591.
|
|
495
669
|
*/
|
|
496
|
-
export async function registerClient(authorizationServerUrl, { metadata, clientMetadata, }) {
|
|
670
|
+
export async function registerClient(authorizationServerUrl, { metadata, clientMetadata, fetchFn, }) {
|
|
497
671
|
let registrationUrl;
|
|
498
672
|
if (metadata) {
|
|
499
673
|
if (!metadata.registration_endpoint) {
|
|
@@ -504,7 +678,7 @@ export async function registerClient(authorizationServerUrl, { metadata, clientM
|
|
|
504
678
|
else {
|
|
505
679
|
registrationUrl = new URL("/register", authorizationServerUrl);
|
|
506
680
|
}
|
|
507
|
-
const response = await fetch(registrationUrl, {
|
|
681
|
+
const response = await (fetchFn !== null && fetchFn !== void 0 ? fetchFn : fetch)(registrationUrl, {
|
|
508
682
|
method: "POST",
|
|
509
683
|
headers: {
|
|
510
684
|
"Content-Type": "application/json",
|
|
@@ -512,7 +686,7 @@ export async function registerClient(authorizationServerUrl, { metadata, clientM
|
|
|
512
686
|
body: JSON.stringify(clientMetadata),
|
|
513
687
|
});
|
|
514
688
|
if (!response.ok) {
|
|
515
|
-
throw
|
|
689
|
+
throw await parseErrorResponse(response);
|
|
516
690
|
}
|
|
517
691
|
return OAuthClientInformationFullSchema.parse(await response.json());
|
|
518
692
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/client/auth.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/client/auth.ts"],"names":[],"mappings":"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"}
|