New in version: 2.12.0
This guide shows you how to secure your FastMCP server using Google OAuth. Since Google doesn’t support Dynamic Client Registration, this integration uses the OAuth Proxy pattern to bridge Google’s traditional OAuth with MCP’s authentication requirements.
Configuration
Prerequisites
Before you begin, you will need:- A Google Cloud Account with access to create OAuth 2.0 Client IDs
- Your FastMCP server’s URL (can be localhost for development, e.g.,
http://localhost:8000
)
Step 1: Create a Google OAuth 2.0 Client ID
Create an OAuth 2.0 Client ID in your Google Cloud Console to get the credentials needed for authentication:1
Navigate to OAuth Consent Screen
Go to the Google Cloud Console and select your project (or create a new one).First, configure the OAuth consent screen by navigating to APIs & Services → OAuth consent screen. Choose “External” for testing or “Internal” for G Suite organizations.
2
Create OAuth 2.0 Client ID
Navigate to APIs & Services → Credentials and click ”+ CREATE CREDENTIALS” → “OAuth client ID”.Configure your OAuth client:
- Application type: Web application
- Name: Choose a descriptive name (e.g., “FastMCP Server”)
- Authorized JavaScript origins: Add your server’s base URL (e.g.,
http://localhost:8000
) - Authorized redirect URIs: Add your server URL +
/auth/callback
(e.g.,http://localhost:8000/auth/callback
)
The redirect URI must match exactly. The default path is
/auth/callback
, but you can customize it using the redirect_path
parameter. For local development, Google allows http://localhost
URLs with various ports. For production, you must use HTTPS.If you want to use a custom callback path (e.g.,
/auth/google/callback
), make sure to set the same path in both your Google OAuth Client settings and the redirect_path
parameter when configuring the GoogleProvider.3
Save Your Credentials
After creating the client, you’ll receive:
- Client ID: A string ending in
.apps.googleusercontent.com
- Client Secret: A string starting with
GOCSPX-
Store these credentials securely. Never commit them to version control. Use environment variables or a secrets manager in production.
Step 2: FastMCP Configuration
Create your FastMCP server using theGoogleProvider
, which handles Google’s OAuth flow automatically:
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 Google-protected server:test_client.py
- Your browser will open to Google’s authorization page
- Sign in with your Google account and grant the requested permissions
- After authorization, you’ll be redirected back
- The client receives the token and can make authenticated requests
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.
Environment Variables
New in version: 2.12.1
For production deployments, use environment variables instead of hardcoding credentials.
Provider Selection
Setting this environment variable allows the Google provider to be used automatically without explicitly instantiating it in code.Set to
fastmcp.server.auth.providers.google.GoogleProvider
to use Google authentication.Google-Specific Configuration
These environment variables provide default values for the Google provider, whether it’s instantiated manually or configured viaFASTMCP_SERVER_AUTH
.
Your Google OAuth 2.0 Client ID (e.g.,
123456789.apps.googleusercontent.com
)Your Google OAuth 2.0 Client Secret (e.g.,
GOCSPX-abc123...
)Public URL of your FastMCP server for OAuth callbacks
Redirect path configured in your Google OAuth Client
Comma-, space-, or JSON-separated list of required Google scopes (e.g.,
"openid,https://www.googleapis.com/auth/userinfo.email"
or ["openid", "https://www.googleapis.com/auth/userinfo.email"]
)HTTP request timeout for Google API calls
.env
file:
server.py