Skip to content

Documentation / @agentick/mcp / DefaultOAuthProvider

Class: DefaultOAuthProvider ​

Defined in: client/oauth.ts:204

Default OAuth provider for automatic auth on HTTP transports.

Uses in-memory storage for tokens, client info, PKCE, and discovery. When authorization is needed, calls onAuthorizationNeeded (or logs the URL if no callback is provided).

For production use, implement OAuthProvider directly with persistent storage and environment-appropriate redirect handling.

Implements ​

Constructors ​

Constructor ​

new DefaultOAuthProvider(opts): DefaultOAuthProvider

Defined in: client/oauth.ts:212

Parameters ​

opts ​

DefaultOAuthProviderOptions

Returns ​

DefaultOAuthProvider

Properties ​

clientMetadata ​

readonly clientMetadata: object

Defined in: client/oauth.ts:205

OAuth client metadata for dynamic registration (RFC 7591).

Implementation of ​

OAuthProvider.clientMetadata


redirectUrl ​

readonly redirectUrl: string | URL | undefined

Defined in: client/oauth.ts:206

Redirect URI for the authorization callback. undefined for non-interactive flows.

Implementation of ​

OAuthProvider.redirectUrl

Methods ​

cancelAuthorization() ​

cancelAuthorization(): void

Defined in: client/oauth.ts:278

Call this to cancel the pending auth flow (e.g., user closed the browser).

Returns ​

void


loadClientInfo() ​

loadClientInfo(): OAuthClientInformationMixed | undefined

Defined in: client/oauth.ts:233

Load stored client registration info, or undefined if not registered.

Returns ​

OAuthClientInformationMixed | undefined

Implementation of ​

OAuthProvider.loadClientInfo


loadTokens() ​

loadTokens(): { } | undefined

Defined in: client/oauth.ts:224

Load stored tokens for this server, or undefined if none.

Returns ​

{ } | undefined

Implementation of ​

OAuthProvider.loadTokens


redirectToAuthorization() ​

redirectToAuthorization(url): Promise<void>

Defined in: client/oauth.ts:242

Direct the user to the authorization URL to begin the OAuth flow.

Environments implement this differently:

  • CLI: open system browser, start local HTTP callback server
  • Server/gateway: store pending auth state, return URL to caller
  • Embedded: post message to parent frame

Parameters ​

url ​

URL

Returns ​

Promise<void>

Implementation of ​

OAuthProvider.redirectToAuthorization


resolveAuthorizationCode() ​

resolveAuthorizationCode(code): void

Defined in: client/oauth.ts:271

Call this from your callback handler to complete the pending auth flow. For example, from a local HTTP server receiving the OAuth redirect.

Parameters ​

code ​

string

Returns ​

void


saveClientInfo() ​

saveClientInfo(info): void

Defined in: client/oauth.ts:237

Save client registration info after dynamic registration.

Parameters ​

info ​

OAuthClientInformationMixed

Returns ​

void

Implementation of ​

OAuthProvider.saveClientInfo


saveTokens() ​

saveTokens(tokens): void

Defined in: client/oauth.ts:228

Save tokens after successful auth or refresh.

Parameters ​

tokens ​

Returns ​

void

Implementation of ​

OAuthProvider.saveTokens


waitForAuthorizationCode() ​

waitForAuthorizationCode(): Promise<string | undefined>

Defined in: client/oauth.ts:259

Wait for the authorization code after the user completes the browser flow.

This is called after redirectToAuthorization when the SDK transport throws UnauthorizedError. The connect loop blocks on this promise until the code arrives, then calls transport.finishAuth(code).

Implementations:

  • CLI: resolve when the local callback server receives the redirect
  • Server: resolve when the callback endpoint is hit
  • Embedded: resolve when postMessage delivers the code

Return undefined to abort the auth flow (e.g., user cancelled).

Returns ​

Promise<string | undefined>

Implementation of ​

OAuthProvider.waitForAuthorizationCode

Released under the ISC License.