This is the documentation for v2 — looking for the v1 documentation?
Skip to content

MCP TypeScript SDK (V2) / @modelcontextprotocol/server / server/scopeChallenge

server/scopeChallenge ​

Interfaces ​

ScopeChallenge ​

Defined in: packages/server/src/server/scopeChallenge.ts:8

OAuth scopes to request before handling an MCP request.

Properties ​

errorDescription? ​

optional errorDescription?: string

Defined in: packages/server/src/server/scopeChallenge.ts:12

Optional human-readable detail satisfying the RFC 6750 error-description grammar.

scopes ​

scopes: readonly [string, string]

Defined in: packages/server/src/server/scopeChallenge.ts:10

The exact, complete scope set to include in the challenge. Each scope must satisfy the OAuth scope-token grammar.

Type Aliases ​

ScopeChallengeHandler ​

ScopeChallengeHandler = (context) => ScopeChallenge | undefined | Promise<ScopeChallenge | undefined>

Defined in: packages/server/src/server/scopeChallenge.ts:16

Determines whether an MCP request needs an OAuth scope challenge.

Parameters ​

context ​
authInfo? ​

AuthInfo

request ​

JSONRPCRequest

Returns ​

ScopeChallenge | undefined | Promise<ScopeChallenge | undefined>

Functions ​

createScopeChallengeResponse() ​

createScopeChallengeResponse(challenge, resourceMetadataUrl): Response

Defined in: packages/server/src/server/scopeChallenge.ts:113

Internal

Parameters ​

challenge ​

ScopeChallenge

resourceMetadataUrl ​

string | undefined

Returns ​

Response


findScopeChallenge() ​

findScopeChallenge(requests, authInfo, resolve): Promise<ScopeChallenge | undefined>

Defined in: packages/server/src/server/scopeChallenge.ts:77

Internal

Parameters ​

requests ​

readonly object[]

authInfo ​

AuthInfo | undefined

resolve ​

ScopeChallengeHandler

Returns ​

Promise<ScopeChallenge | undefined>


requireScopes() ​

requireScopes(...scopes): ScopeChallengeHandler

Defined in: packages/server/src/server/scopeChallenge.ts:60

Creates a handler that requires every supplied scope exactly.

Requests without authentication are left to the server's authentication gate.

Parameters ​

scopes ​

...readonly [string, string]

Returns ​

ScopeChallengeHandler


scopeChallengeResourceMetadataUrl() ​

scopeChallengeResourceMetadataUrl(authInfo): string | undefined

Defined in: packages/server/src/server/scopeChallenge.ts:102

Internal

The RFC 9728 Protected Resource Metadata URL to advertise on a scope challenge, derived from the verified AuthInfo: the URL the authentication gate stamped (authInfo.resourceMetadataUrl, set by the bearer-auth helpers from their resourceMetadataUrl option), falling back to the well-known location for an HTTP(S) RFC 8707 resource identifier, or undefined when neither is available (the resource_metadata parameter is then omitted, matching the bearer-auth challenges).

Parameters ​

authInfo ​

AuthInfo | undefined

Returns ​

string | undefined


supportsScopeChallengeResolver() ​

supportsScopeChallengeResolver(transport): transport is { setScopeChallengeResolver: any }

Defined in: packages/server/src/server/scopeChallenge.ts:22

Internal

Parameters ​

transport ​

unknown

Returns ​

transport is { setScopeChallengeResolver: any }