Documentation

MCP (Model Context Protocol) is an open protocol introduced by Anthropic that standardizes how large language models communicate with external tools, resources or remote services.
[!CAUTION]
Beta Software Notice: This software is currently in beta and is provided AS IS without any warranties.
- Features, APIs, and functionality may change at any time without notice
- Not recommended for production use or critical workloads
- Support during the beta period is limited
- Issues and feedback can be reported through the GitHub issue tracker
By using this beta software, you acknowledge and accept these conditions.
The Auth0 MCP Server integrates with LLMs and AI agents, allowing you to perform various Auth0 management operations using natural language. For instance, you could simply ask Claude Desktop to perform Auth0 management operations:
- > Create a new Auth0 app and get the domain and client ID
- > Create and deploy a new Auth0 action to generate a JWT token
- > Could you check Auth0 logs for logins from 192.108.92.3 IP address?
🚀 Getting Started
Prerequisites:
- Node.js v18 or higher
- Claude Desktop or any other MCP Client
- Auth0 account with appropriate permissions
Install the Auth0 MCP Server
Install Auth0 MCP Server and configure it to work with your preferred MCP Client. The --tools parameter specifies which tools should be available (defaults to * if not provided).
Claude Desktop with all tools
npx @auth0/auth0-mcp-server initClaude Desktop with read-only tools
npx @auth0/auth0-mcp-server init --read-onlyYou can also explicitly select read-only tools:
npx @auth0/auth0-mcp-server init --tools 'auth0_list_*,auth0_get_*'Windsurf
npx @auth0/auth0-mcp-server init --client windsurfCursor
Step 1:
Step 2:
npx @auth0/auth0-mcp-server init --client cursorCursor with limited tools access
npx @auth0/auth0-mcp-server init --client cursor --tools 'auth0_list_applications,auth0_get_application'VS Code
npx @auth0/auth0-mcp-server init --client vscodeYou can configure VS Code for either global or workspace scope:
- Global: Available in all VS Code instances
- Workspace: Available only in a specific project/repository
The command will prompt you to choose your preferred scope and automatically configure the appropriate mcp.json file.
VS Code with limited tools access
npx @auth0/auth0-mcp-server init --client vscode --tools 'auth0_list_*,auth0_get_*' --read-onlyGemini CLI
Initialize the gemini MCP server for the Gemini CLI
npx @auth0/auth0-mcp-server init --client geminiInstall the Gemini Extension
gemini extensions install https://github.com/auth0/auth0-mcp-serverOther MCP Clients
To use Auth0 MCP Server with any other MCP Client, you can manually add this configuration to the client and restart for changes to take effect:
{
"mcpServers": {
"auth0": {
"command": "npx",
"args": ["-y", "@auth0/auth0-mcp-server", "run"],
"capabilities": ["tools"],
"env": {
"DEBUG": "auth0-mcp"
}
}
}
}You can add --tools '' to the args array to control which tools are available. See Security Best Practices for recommended patterns.
Authorize with Auth0
Your browser will automatically open to initiate the OAuth 2.0 device authorization flow. Log into your Auth0 account and grant the requested permissions.
[!NOTE]
Credentials are securely stored in your system's keychain. You can optionally verify storage through your keychain management tool. Check out Authentication for more info.
Verify your integration
Restart your MCP Client (Claude Desktop, Windsurf, Cursor, etc.) and ask it to help you manage your Auth0 tenant
🛠️ Supported Tools
The Auth0 MCP Server provides the following tools for Claude to interact with your Auth0 tenant:
Applications
| Tool | Description | Usage Examples |
|---|---|---|
auth0_list_applications | List all applications in the Auth0 tenant or search by name | - Show me all my Auth0 applications - Find applications with 'api' in their name - What applications do I have in my Auth0 tenant? |
auth0_get_application | Get details about a specific Auth0 application | - Show me details for the application called 'Customer Portal' - Get information about my application with client ID abc123 - What are the callback URLs for my 'Mobile App'? |
auth0_create_application | Create a new Auth0 application | - Create a new single-page application called 'Analytics Dashboard' - Set up a new native mobile app called 'iOS Client' - Create a machine-to-machine application for our background service |
auth0_update_application | Update an existing Auth0 application | - Update the callback URLs for my 'Web App' to include https://staging.example.com/callback - Change the logout URL for the 'Customer Portal' - Add development environment metadata to my 'Admin Dashboard' application |
Resource Servers
| Tool | Description | Usage Examples |
|---|---|---|
auth0_list_resource_servers | List all resource servers (APIs) in the Auth0 tenant | - Show me all the APIs in my Auth0 tenant - List my resource servers - What APIs have I configured in Auth0? |
auth0_get_resource_server | Get details about a specific Auth0 resource server | - Show me details for the 'User API' - What scopes are defined for my 'Payment API'? - Get information about the resource server with identifier https://api.example.com" |
auth0_create_resource_server | Create a new Auth0 resource server (API) | - Create a new API called 'Inventory API' with read and write scopes - Set up a resource server for our customer data API - Create an API with the identifier https://orders.example.com" |
auth0_update_resource_server | Update an existing Auth0 resource server | - Add an 'admin' scope to the 'User API' - Update the token lifetime for my 'Payment API' to 1 hour - Change the signing algorithm for my API to RS256 |
Application Grants
| Tool | Description | Usage Examples |
|---|---|---|
auth0_create_application_grant | Create a client grant that authorizes an Auth0 application to access a specific API with defined scopes | - Grant my 'Backend Service' application access to the 'User API' - Create a client grant for my M2M app to call the payments API - Authorize my application to access the inventory API with read and write scopes |
Actions
| Tool | Description | Usage Examples |
|---|---|---|
auth0_list_actions | List all actions in the Auth0 tenant | - Show me all my Auth0 actions - What actions do I have configured? - List the actions in my tenant |
auth0_get_action | Get details about a specific Auth0 action | - Show me the code for my 'Enrich User Profile' action - Get details about my login flow action - What does my 'Add Custom Claims' action do? |
auth0_create_action | Create a new Auth0 action | - Create an action that adds user roles to tokens - Set up an action to log failed login attempts - Create a post-login action that checks user location |
auth0_update_action | Update an existing Auth0 action | - Update my 'Add Custom Claims' action to include department information - Modify the IP filtering logic in my security action - Fix the bug in my user enrichment action |
auth0_deploy_action | Deploy an Auth0 action | - Deploy my 'Add Custom Claims' action to production - Make my new security action live - Deploy the updated user enrichment action |
Logs
| Tool | Description | Usage Examples |
|---|---|---|
auth0_list_logs | List logs from the Auth0 tenant | - Show me recent login attempts - Find failed logins from the past 24 hours - Get authentication logs from yesterday - Show me successful logins for user john@example.com |
auth0_get_log | Get a specific log entry by ID | - Show me details for log entry abc123 - Get more information about this failed login attempt - What caused this authentication error? |
Forms
| Tool | Description | Usage Examples |
|---|---|---|
auth0_list_forms | List all forms in the Auth0 tenant | - Show me all my Auth0 forms - What login forms do I have configured? - List the custom forms in my tenant |
auth0_get_form | Get details about a specific Auth0 form | - Show me the details of my 'Corporate Login' form - What does my password reset form look like? - Get the configuration for my signup form |
auth0_create_form | Create a new Auth0 form | - Create a new login form with our company branding - Set up a custom signup form that collects department information - Create a password reset form with our logo |
auth0_update_form | Update an existing Auth0 form | - Update the colors on our login form to match our new brand guidelines - Add a privacy policy link to our signup form - Change the logo on our password reset form |
auth0_publish_form | Publish an Auth0 form | - Publish my updated login form - Make the new signup form live - Deploy the password reset form to production |
🔒 Security Best Practices for Tool Access
When configuring the Auth0 MCP Server, it's important to follow security best practices by limiting tool access based on your specific needs. The server provides flexible configuration options that let you control which tools AI assistants can access.
You can easily restrict tool access using the --tools and --read-only flags when starting the server:
# Enable only read-only operations
npx @auth0/auth0-mcp-server run --read-only
# Alternative way to enable only read-only operations
npx @auth0/auth0-mcp-server run --tools 'auth0_list_*,auth0_get_*'
# Limit to just application-related tools
npx @auth0/auth0-mcp-server run --tools 'auth0_*_application*'
# Limit to read-only application-related tools
# Note: --read-only takes priority when used with --tools
npx @auth0/auth0-mcp-server run --tools 'auth0_*_application*' --read-only
# Restrict to only log viewing capabilities
npx @auth0/auth0-mcp-server run --tools 'auth0_list_logs,auth0_get_log'
# Run the server with all tools enabled
npx @auth0/auth0-mcp-server run --tools '*'[!IMPORTANT]
When both
--read-onlyand--toolsflags are used together, the--read-onlyflag takes priority for security. This means even if your--toolspattern matches non-read-only tools, only read-only operations will be available. This ensures you can rely on the--read-onlyflag as a security guardrail.
This approach offers several important benefits:
1. Enhanced Security: By limiting available tools to only what's needed, you reduce the potential attack surface and prevent unintended modifications to your Auth0 tenant.
2. Better Performance: Providing fewer tools to AI assistants actually improves performance. When models have access to many tools, they use more of their context window to reason about which tools to use. With a focused set of tools, you'll get faster and more relevant responses.
3. Resource-Based Access Control: You can configure different instances of the MCP server with different tool sets based on specific needs - development environments might need full access, while production environments could be limited to read operations only.
4. Simplified Auditing: With limited tools, it's easier to track which operations were performed through the AI assistant.
For most use cases, start with the minimum set of tools needed and add more only when required. This follows the principle of least privilege - a fundamental security best practice.
🛡️ Credential Protection
The server automatically redacts sensitive fields (e.g., client_secret, token etc.) in relevant MCP tool responses, replacing them with [REDACTED]. This prevents secrets from leaking into AI assistant logs or conversation history.
To securely store credentials locally, the auth0_save_credentials_to_file tool writes Auth0 credentials as environment variables to a user-specified file (e.g., .env.local), and automatically adds it to .gitignore. If the file already exists, credentials are appended (preserving existing content); otherwise, a new file is created. This tool can be invoked manually or the AI assistant will automatically prompt you to save credentials after creating an application.
🧪 Security Scanning
We recommend regularly scanning this server, and any other MCP-compatible servers you deploy, with community tools built to surface protocol-level risks and misconfigurations.
These scanners help identify issues across key vulnerability classes including: server implementation bugs, tool definition and lifecycle risks, interaction and data flow weaknesses, and configuration or environment gaps.
Useful tools include:
- **mcpscan.ai**
Web-based scanner that inspects live MCP endpoints for exposed tools, schema enforcement gaps, and other issues.
- **mcp-scan**
CLI tool that simulates attack paths and evaluates server behavior from a client perspective.
These tools are not a substitute for a full audit, but they offer meaningful guardrails and early warnings. We suggest including them in your regular security review process.
If you discover a vulnerability, please follow our responsible disclosure process.
🕸️ Architecture
The Auth0 MCP Server implements the Model Context Protocol, allowing Claude to:
1. Request a list of available Auth0 tools
2. Call specific tools with parameters
3. Receive structured responses from the Auth0 Management API
The server handles authentication, request validation, and secure communication with the Auth0 Management API.
[!NOTE]
The server operates as a local process that connects to Claude Desktop, enabling secure communication without exposing your Auth0 credentials.
🔐 Authentication
The Auth0 MCP Server uses the Auth0 Management API and requires authentication to access your Auth0 tenant.
Initial Setup
To authenticate the MCP Server:
npx @auth0/auth0-mcp-server initThis will start the device authorization flow, allowing you to log in to your Auth0 account and select the tenant you want to use.
[!NOTE]
Authenticating using device authorization flow is not supported for private cloud tenants.
Private Cloud users should authenticate with client credentials.Keep the token lifetime as minimal as possible to reduce security risks. See more
```bash
npx @auth0/auth0-mcp-server init --auth0-domain
Similar MCP
Based on tags & features
Trending MCP
Most active this week