fastmcp.server.auth.auth
Classes
AccessToken
AccessToken that includes all JWT claims.
TokenHandler
TokenHandler that returns OAuth 2.1 compliant error responses.
The MCP SDK returns unauthorized_client for client authentication failures.
However, per RFC 6749 Section 5.2, authentication failures should return
invalid_client with HTTP 401, not unauthorized_client.
This distinction matters: unauthorized_client means “client exists but
can’t do this”, while invalid_client means “client doesn’t exist or
credentials are wrong”. Claude’s OAuth client uses this to decide whether
to re-register.
This handler transforms 401 responses with unauthorized_client to use
invalid_client instead, making the error semantics correct per OAuth spec.
Methods:
handle
AuthProvider
Base class for all FastMCP authentication providers.
This class provides a unified interface for all authentication providers,
whether they are simple token verifiers or full OAuth authorization servers.
All providers must be able to verify tokens and can optionally provide
custom authentication routes.
Methods:
verify_token
token: The token string to validate
- AccessToken object if valid, None if invalid or expired
get_routes
- TokenVerifier: typically no routes (default implementation)
- RemoteAuthProvider: protected resource metadata routes
- OAuthProvider: full OAuth authorization server routes
- Custom providers: whatever routes they need
mcp_path: The path where the MCP endpoint is mounted (e.g., “/mcp”) This is used to advertise the resource URL in metadata, but the provider does not create the actual MCP endpoint route.
- List of all routes for this provider (excluding the MCP endpoint itself)
get_well_known_routes
- /.well-known/oauth-authorization-server (authorization server metadata)
- /.well-known/oauth-protected-resource/* (protected resource metadata)
mcp_path: The path where the MCP endpoint is mounted (e.g., “/mcp”) This is used to construct path-scoped well-known URLs.
- List of well-known discovery routes (typically mounted at root level)
get_middleware
- List of Starlette Middleware instances to apply to the HTTP app
TokenVerifier
Base class for token verifiers (Resource Servers).
This class provides token verification capability without OAuth server functionality.
Token verifiers typically don’t provide authentication routes by default.
Methods:
verify_token
RemoteAuthProvider
Authentication provider for resource servers that verify tokens from known authorization servers.
This provider composes a TokenVerifier with authorization server metadata to create
standardized OAuth 2.0 Protected Resource endpoints (RFC 9728). Perfect for:
- JWT verification with known issuers
- Remote token introspection services
- Any resource server that knows where its tokens come from
verify_token
get_routes
OAuthProvider
OAuth Authorization Server provider.
This class provides full OAuth server functionality including client registration,
authorization flows, token issuance, and token verification.
Methods:
verify_token
token: The token string to validate
- AccessToken object if valid, None if invalid or expired
get_routes
- Standard OAuth authorization server routes (/.well-known/oauth-authorization-server, /authorize, /token, etc.)
- Optional protected resource routes
- List of OAuth routes
get_well_known_routes
mcp_path: The path where the MCP endpoint is mounted (e.g., “/mcp”)
- List of well-known discovery routes

