Configuration
Prerequisites
Before you begin, you will need:- An Auth0 Account with access to create Applications
- Your FastMCP serverβs URL (can be localhost for development, e.g.,
http://localhost:8000)
Step 1: Create an Auth0 Application
Create an Application in your Auth0 settings to get the credentials needed for authentication:1
Navigate to Applications
Go to Applications β Applications in your Auth0 account.Click β+ Create Applicationβ to create a new application.
2
Create Your Application
- Name: Choose a name users will recognize (e.g., βMy FastMCP Serverβ)
- Choose an application type: Choose βSingle Page Web Applicationsβ
- Click Create to create the application
3
Configure Your Application
Select the βSettingsβ tab for your application, then find the βApplication URIsβ section.
- Allowed Callback URLs: Your server URL +
/auth/callback(e.g.,http://localhost:8000/auth/callback) - Click Save to save your changes
4
Save Your Credentials
After creating the app, in the βBasic Informationβ section youβll see:
- Client ID: A public identifier like
tv2ObNgaZAWWhhycr7Bz1LU2mxlnsmsB - Client Secret: A private hidden value that should always be stored securely
5
Select Your Audience
Go to Applications β APIs in your Auth0 account.
- Find the API that you want to use for your application
- API Audience: A URL that uniquely identifies the API
Step 2: FastMCP Configuration
Create your FastMCP server using theAuth0Provider.
server.py
Testing
Running the Server
Start your FastMCP server with HTTP transport to enable OAuth flows:Testing with a Client
Create a test client that authenticates with your Auth0-protected server:test_client.py
- Your browser will open to Auth0βs authorization page
- After you authorize the app, youβll be redirected back
- The client receives the token and can make authenticated requests
Production Configuration
For production deployments with persistent token management across server restarts, configurejwt_signing_key, and client_storage:
server.py
Parameters (
jwt_signing_key and client_storage) work together to ensure tokens and client registrations survive server restarts. Wrap your storage in FernetEncryptionWrapper to encrypt sensitive OAuth tokens at rest - without it, tokens are stored in plaintext. Store secrets in environment variables and use a persistent storage backend like Redis for distributed deployments.For complete details on these parameters, see the OAuth Proxy documentation.The client caches tokens locally, so you wonβt need to re-authenticate for subsequent runs unless the token expires or you explicitly clear the cache.

