New in version: 2.12.4
This guide shows you how to secure your FastMCP server using Descope, a complete authentication and user management solution. This integration uses the Remote OAuth pattern, where Descope handles user login and your FastMCP server validates the tokens.
Configuration
Prerequisites
Before you begin, you will need:- To sign up for a Free Forever Descope account
- Your FastMCP server’s URL (can be localhost for development, e.g.,
http://localhost:3000)
Step 1: Configure Descope
1
Create an MCP Server
- Go to the MCP Servers page of the Descope Console, and create a new MCP Server.
- Give the MCP server a name and description.
- Ensure that Dynamic Client Registration (DCR) is enabled. Then click Create.
- Once you’ve created the MCP Server, note your Well-Known URL.
2
Note Your Well-Known URL
Save your Well-Known URL from MCP Server Settings:
Step 2: Environment Setup
Create a.env file with your Descope configuration:
Step 3: FastMCP Configuration
Create your FastMCP server file and use the DescopeProvider to handle all the OAuth integration automatically:server.py
Testing
To test your server, you can use thefastmcp CLI to run it locally. Assuming you’ve saved the above code to server.py (after replacing the environment variables with your actual values!), you can run the following command:
Environment Variables
For production deployments, use environment variables instead of hardcoding credentials.Provider Selection
Setting this environment variable allows the Descope provider to be used automatically without explicitly instantiating it in code.Set to
fastmcp.server.auth.providers.descope.DescopeProvider to use
Descope authentication.Descope-Specific Configuration
These environment variables provide default values for the Descope provider, whether it’s instantiated manually or configured viaFASTMCP_SERVER_AUTH.
Your Well-Known URL from the Descope Console
Public URL of your FastMCP server (e.g.,
https://your-server.com or
http://localhost:8000 for development).env file:
server.py

