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?
optionalerrorDescription?: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?
request
Returns
ScopeChallenge | undefined | Promise<ScopeChallenge | undefined>
Functions
createScopeChallengeResponse()
createScopeChallengeResponse(
challenge,resourceMetadataUrl):Response
Defined in: packages/server/src/server/scopeChallenge.ts:113
Internal
Parameters
challenge
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
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
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 }