fastmcp.server.auth.auth
Classes
AccessToken
AccessToken that includes all JWT claims.
TokenHandler
TokenHandler that returns MCP-compliant error responses.
This handler addresses two SDK issues:
-
Error code: The SDK returns
unauthorized_clientfor client authentication failures, but RFC 6749 Section 5.2 requiresinvalid_clientwith HTTP 401. This distinction matters for client re-registration behavior. -
Status code: The SDK returns HTTP 400 for all token errors including
invalid_grant(expired/invalid tokens). However, the MCP spec requires: “Invalid or expired tokens MUST receive a HTTP 401 response.”
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
set_mcp_path
mcp_path: The path where the MCP endpoint is mounted (e.g., “/mcp”)
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

