Skip to main content
View the source code for this module on GitHub: https://github.com/mcp-use/mcp-use/blob/main/mcp_use/auth/oauth.py
OAuth authentication support for MCP clients.

ClientRegistrationResponse

from mcp_use.auth.oauth import ClientRegistrationResponse

Attributes
client_id
str
required
MCP client instance
client_secret
str | None
required
MCP client instance
client_id_issued_at
int | None
required
MCP client instance
client_secret_expires_at
int | None
required
MCP client instance
redirect_uris
list[str] | None
required
List of items
grant_types
list[str] | None
required
List of items
response_types
list[str] | None
required
List of items
client_name
str | None
required
MCP client instance
token_endpoint_auth_method
str | None
required
String value

method init

Create a new model by parsing and validating input data from keyword arguments.Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.self is explicitly positional-only to allow self as a field name.Parameters
data
Any
required
Parameter value
Signature
def __init__(data: Any):

FileTokenStorage

from mcp_use.auth.oauth import FileTokenStorage

method init

Initialize token storage.Parameters
base_dir
pathlib.Path | None
default:"None"
Base directory for token storage. Defaults to ~/.mcp_use/tokens
Signature
def __init__(base_dir: pathlib.Path | None = None):

method delete_tokens

Delete tokens for a server.Parameters
server_url
str
required
Server name or configuration
Signature
def delete_tokens(server_url: str):

method load_tokens

Load tokens from file.Parameters
server_url
str
required
Server name or configuration
Returns
returns
mcp_use.auth.oauth.TokenData | None
Signature
def load_tokens(server_url: str):

method save_tokens

Save tokens to file.Parameters
server_url
str
required
Server name or configuration
tokens
dict[str, Any]
required
Dictionary of key-value pairs
Signature
def save_tokens(server_url: str, tokens: dict[str, Any]):

OAuth

from mcp_use.auth.oauth import OAuth

method init

Initialize OAuth handler.Parameters
server_url
str
required
The MCP server URL
token_storage
mcp_use.auth.oauth.FileTokenStorage | None
default:"None"
Token storage implementation. Defaults to FileTokenStorage
scope
str | None
default:"None"
OAuth scopes to request
client_id
str | None
default:"None"
OAuth client ID. If not provided, will attempt dynamic registration
client_secret
str | None
default:"None"
OAuth client secret (for confidential clients)
callback_port
int | None
default:"None"
Port for local callback server, if empty, 8080 is used
oauth_provider
mcp_use.auth.oauth.OAuthClientProvider | None
default:"None"
OAuth client provider to prevent metadata discovery
Signature
def __init__(server_url: str, token_storage: mcp_use.auth.oauth.FileTokenStorage | None = None, scope: str | None = None, client_id: str | None = None, client_secret: str | None = None, callback_port: int | None = None, oauth_provider: mcp_use.auth.oauth.OAuthClientProvider | None = None):

method authenticate

Perform OAuth authentication flow.Returns
returns
mcp_use.auth.bearer.BearerAuth
Signature
def authenticate():

method initialize

Initialize OAuth and return bearer auth if tokens exist.Parameters
client
httpx.AsyncClient
required
MCP client instance
Returns
returns
mcp_use.auth.bearer.BearerAuth | None
Signature
def initialize(client: httpx.AsyncClient):

method refresh_token

Refresh the access token if possible.Returns
returns
mcp_use.auth.bearer.BearerAuth | None
Signature
def refresh_token():

OAuthClientProvider

from mcp_use.auth.oauth import OAuthClientProvider

Attributes
id
str
required
String value
display_name
str
required
Name identifier
metadata
mcp_use.auth.oauth.ServerOAuthMetadata | dict[str, typing.Any]
required
Dictionary of key-value pairs

method init

Create a new model by parsing and validating input data from keyword arguments.Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.self is explicitly positional-only to allow self as a field name.Parameters
data
Any
required
Parameter value
Signature
def __init__(data: Any):

property oauth_metadata

Get OAuth metadata as ServerOAuthMetadata instance.Returns
returns
mcp_use.auth.oauth.ServerOAuthMetadata
Signature
def oauth_metadata():

ServerOAuthMetadata

from mcp_use.auth.oauth import ServerOAuthMetadata

Attributes
issuer
pydantic.networks.HttpUrl
required
Parameter value
authorization_endpoint
pydantic.networks.HttpUrl
required
Parameter value
token_endpoint
pydantic.networks.HttpUrl
required
Parameter value
userinfo_endpoint
pydantic.networks.HttpUrl | None
required
Parameter value
revocation_endpoint
pydantic.networks.HttpUrl | None
required
Parameter value
introspection_endpoint
pydantic.networks.HttpUrl | None
required
Parameter value
registration_endpoint
pydantic.networks.HttpUrl | None
required
Parameter value
jwks_uri
pydantic.networks.HttpUrl | None
required
Parameter value
response_types_supported
list[str]
required
List of items
subject_types_supported
list[str]
required
List of items
id_token_signing_alg_values_supported
list[str]
required
List of items
scopes_supported
list[str] | None
required
List of items
token_endpoint_auth_methods_supported
list[str]
required
List of items
claims_supported
list[str] | None
required
List of items
code_challenge_methods_supported
list[str] | None
required
List of items

method init

Create a new model by parsing and validating input data from keyword arguments.Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.self is explicitly positional-only to allow self as a field name.Parameters
data
Any
required
Parameter value
Signature
def __init__(data: Any):

TokenData

from mcp_use.auth.oauth import TokenData

Attributes
access_token
str
required
String value
token_type
str
required
String value
expires_at
float | None
required
Parameter value
refresh_token
str | None
required
String value
scope
str | None
required
String value

method init

Create a new model by parsing and validating input data from keyword arguments.Raises [ValidationError][pydantic_core.ValidationError] if the input data cannot be validated to form a valid model.self is explicitly positional-only to allow self as a field name.Parameters
data
Any
required
Parameter value
Signature
def __init__(data: Any):
I