Auth0 MCP服务

@auth0/auth0-mcp-server
0 Stars 305 次浏览 auth0 更新于 2026-08-23

Auth0 MCP服务器与大型语言模型(LLM)和人工智能代理集成,使您能够使用自然语言执行各种Auth0管理操作。例如,您可以简单地要求克劳德“创建一个新的Auth0应用并获取域名和客户端ID”。

MCP 服务配置

复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用

{
  "mcpServers": {
    "auth0": {
      "args": [
        "-y",
        "@auth0/auth0-mcp-server",
        "run"
      ],
      "capabilities": [
        "tools"
      ],
      "command": "npx",
      "env": {
        "DEBUG": "auth0-mcp"
      }
    }
  }
}

服务介绍

MCP server for Auth0


Node.js Version
NPM Downloads

📚 文档 • 🚀 入门指南 • 💻 支持的工具 • 💬 反馈

MCP (Model Context Protocol) 是由 Anthropic 引入的一种开放协议,它标准化了大型语言模型与外部工具、资源或远程服务之间的通信方式。

⚠ 测试功能通知:
此功能目前处于测试阶段。在调用工具时请谨慎使用,因为功能可能不稳定或会发生变化。

Auth0 MCP 服务器与 LLMs 和 AI 代理集成,允许您使用自然语言执行各种 Auth0 管理操作。例如,您可以简单地让 Claude 执行 Auth0 管理操作:

  • 创建一个新的 Auth0 应用并获取域和客户端 ID

  • 创建并部署一个新的 Auth0 动作以生成 JWT 令牌

  • 您能否检查来自 192.108.92.3 IP 地址的 Auth0 登录日志?

🚀 入门指南

先决条件:

安装 Auth0 MCP 服务器

安装 Auth0 MCP 服务器并配置它以与您首选的 MCP 客户端一起工作。--tools 参数指定应提供哪些工具(如果未提供,默认为 *)。

带有所有工具的 Claude Desktop

npx @auth0/auth0-mcp-server init

带有只读工具的 Claude Desktop

npx @auth0/auth0-mcp-server init --tools 'auth0_list_*,auth0_get_*'

Windsurf

npx @auth0/auth0-mcp-server init --client windsurf

Cursor

npx @auth0/auth0-mcp-server init --client cursor

有限工具访问

npx @auth0/auth0-mcp-server init --client cursor --tools 'auth0_list_applications,auth0_get_application'

其他 MCP 客户端

要将 Auth0 MCP 服务器与其他任何 MCP 客户端一起使用,您可以手动将此配置添加到客户端中,并重新启动以使更改生效:

{
  "mcpServers": {
    "auth0": {
      "command": "npx",
      "args": ["-y", "@auth0/auth0-mcp-server", "run"],
      "capabilities": ["tools"],
      "env": {
        "DEBUG": "auth0-mcp"
      }
    }
  }
}

您可以通过在 args 数组中添加 --tools '<pattern>' 来控制可用的工具。有关推荐模式,请参阅安全最佳实践

使用 Auth0 进行身份验证

您的浏览器将自动打开以启动 OAuth 2.0 设备授权流程。登录您的 Auth0 账户并授予请求的权限。

[!NOTE]
凭证安全地存储在您的系统的钥匙串中。您可以选择通过您的钥匙串管理工具来验证存储。请参阅 身份验证 以获取更多信息。

验证您的集成

重新启动您的MCP客户端(如Claude、Windsurf、Cursor等),并请求它帮助您管理Auth0租户

🛠️ 支持的工具

Auth0 MCP服务器为Claude提供了以下工具,以便与您的Auth0租户进行交互:

应用程序

工具 描述 使用示例
auth0_list_applications 列出Auth0租户中的所有应用程序或按名称搜索 - 显示我所有的Auth0应用程序 - 查找名称中包含'api'的应用程序 - 我在Auth0租户中有哪些应用程序?
auth0_get_application 获取特定Auth0应用程序的详细信息 - 显示名为'Customer Portal'的应用程序的详情 - 获取我的客户端ID为abc123的应用程序的信息 - 我的'Mobile App'有哪些回调URL?
auth0_create_application 创建一个新的Auth0应用程序 - 创建一个名为'Analytics Dashboard'的新单页应用程序 - 设置一个名为'iOS Client'的新原生移动应用 - 为我们的后台服务创建一个机器对机器的应用程序
auth0_update_application 更新现有的Auth0应用程序 - 将我的'Web App'的回调URL更新为包括https://staging.example.com/callback - 更改'Customer Portal'的注销URL - 向我的'Admin Dashboard'应用程序添加开发环境元数据

资源服务器

注意:原文档未提供“资源服务器”部分的具体内容,因此翻译到此为止。如果需要进一步补充,请提供完整信息。

工具 描述 使用示例
auth0_list_resource_servers 列出 Auth0 租户中的所有资源服务器(API) - 显示我 Auth0 租户中的所有 API - 列出我的资源服务器 - 我在 Auth0 中配置了哪些 API?
auth0_get_resource_server 获取特定 Auth0 资源服务器的详细信息 - 显示 'User API' 的详细信息 - 我的 'Payment API' 定义了哪些范围? - 获取标识符为 https://api.example.com 的资源服务器的信息"
auth0_create_resource_server 创建一个新的 Auth0 资源服务器(API) - 创建一个名为 'Inventory API' 的新 API,具有读取和写入范围 - 为我们客户数据 API 设置资源服务器 - 创建一个标识符为 https://orders.example.com 的 API"
auth0_update_resource_server 更新现有的 Auth0 资源服务器 - 向 'User API' 添加 'admin' 范围 - 将我的 'Payment API' 的令牌生命周期更新为 1 小时 - 将我的 API 的签名算法更改为 RS256

操作

工具 描述 使用示例
auth0_list_actions 列出 Auth0 租户中的所有操作 - 显示我所有的 Auth0 操作 - 我配置了哪些操作? - 列出我的租户中的操作
auth0_get_action 获取特定 Auth0 操作的详细信息 - 显示我的 '丰富用户资料' 操作的代码 - 获取有关我的登录流程操作的详细信息 - 我的 '添加自定义声明' 操作是做什么的?
auth0_create_action 创建一个新的 Auth0 操作 - 创建一个将用户角色添加到令牌的操作 - 设置一个记录失败登录尝试的操作 - 创建一个检查用户位置的登录后操作
auth0_update_action 更新现有的 Auth0 操作 - 更新我的 '添加自定义声明' 操作以包含部门信息 - 修改我的安全操作中的 IP 过滤逻辑 - 修复我的用户丰富操作中的错误
auth0_deploy_action 部署一个 Auth0 操作 - 将我的 '添加自定义声明' 操作部署到生产环境 - 使我的新安全操作生效 - 部署已更新的用户丰富操作

日志

工具 描述 使用示例
auth0_list_logs 列出 Auth0 租户的日志 - 显示最近的登录尝试 - 查找过去24小时内的失败登录 - 获取昨天的身份验证日志 - 显示用户 john@example.com 的成功登录
auth0_get_log 通过 ID 获取特定日志条目 - 显示日志条目 abc123 的详细信息 - 获取有关这次失败登录尝试的更多信息 - 是什么导致了这个身份验证错误?

表单

工具 描述 使用示例
auth0_list_forms 列出 Auth0 租户中的所有表单 - 显示我所有的 Auth0 表单 - 我配置了哪些登录表单? - 列出我的租户中的自定义表单
auth0_get_form 获取特定 Auth0 表单的详细信息 - 显示我的 '企业登录' 表单的详细信息 - 我的密码重置表单是什么样的? - 获取我的注册表单的配置
auth0_create_form 创建一个新的 Auth0 表单 - 使用我们公司的品牌创建一个新的登录表单 - 设置一个收集部门信息的自定义注册表单 - 使用我们的标志创建一个密码重置表单
auth0_update_form 更新现有的 Auth0 表单 - 将我们的登录表单的颜色更新为与新的品牌指南一致 - 在我们的注册表单中添加隐私政策链接 - 更改我们的密码重置表单上的标志
auth0_publish_form 发布一个 Auth0 表单 - 发布我更新后的登录表单 - 使新的注册表单生效 - 将密码重置表单部署到生产环境

🔒 工具访问的安全最佳实践

在配置 Auth0 MCP 服务器时,根据您的具体需求限制工具访问是非常重要的。服务器提供了灵活的配置选项,让您能够控制 AI 助手可以访问哪些工具。

您可以使用 --tools 标志在启动服务器时轻松地限制工具访问:

# 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*'

# 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 '*'

这种方法提供了几个重要的好处:

  1. 增强安全性:通过仅限于必需的工具,可以减少潜在的攻击面,并防止对您的 Auth0 租户进行意外修改。

  2. 更好的性能:为 AI 助手提供更少的工具实际上可以提高性能。当模型可以访问许多工具时,它们会使用更多的上下文窗口来推理应该使用哪些工具。通过一套集中的工具,您可以获得更快且更相关的响应。

  3. 基于资源的访问控制:您可以根据特定需求配置具有不同工具集的不同 MCP 服务器实例 - 开发环境可能需要完全访问权限,而生产环境则可以限制为仅读操作。

  4. 简化审计:通过限制工具的数量,更容易跟踪哪些操作是通过 AI 助手执行的。

对于大多数用例,从最少的必要工具集开始,并在需要时再添加更多工具。这遵循最小特权原则——一个基本的安全最佳实践。

🕸️ 架构

Auth0 MCP 服务器实现了 Model Context Protocol,允许 Claude:

  1. 请求可用的 Auth0 工具列表
  2. 使用参数调用特定工具
  3. 从 Auth0 管理 API 接收结构化的响应

服务器处理身份验证、请求验证以及与 Auth0 管理 API 的安全通信。

[!NOTE]
服务器作为一个本地进程运行,连接到 Claude Desktop,从而实现安全通信而不暴露您的 Auth0 凭据。

🔐 身份验证

Auth0 MCP 服务器使用 Auth0 管理 API,并需要身份验证才能访问您的 Auth0 租户。

初始设置

要对 MCP 服务器进行身份验证:

npx @auth0/auth0-mcp-server init

这将启动设备授权流程,允许您登录到您的 Auth0 账户并选择要使用的租户。

[!IMPORTANT]
在以下情况下需要运行 init 命令:

  • 您首次设置 MCP 服务器
  • 您从前一个会话中注销
  • 您希望切换到不同的租户
  • 您的令牌已过期

会话管理

要查看有关当前身份验证会话的信息:

npx @auth0/auth0-mcp-server session

注销

为了遵循安全最佳实践,在完成会话后始终使用注销命令:

npx @auth0/auth0-mcp-server logout

这确保您的身份验证令牌从系统密钥链中正确移除。

身份验证流程

服务器使用 OAuth 2.0 设备授权流程以安全方式与 Auth0 进行身份验证。您的凭据安全地存储在系统的密钥链中,永远不会以明文形式暴露。

🩺 故障排除

在遇到 Auth0 MCP 服务器问题时,有几种故障排除选项可以帮助诊断和解决问题。

首先通过探索所有可用的命令和选项开始故障排除:

npx @auth0/auth0-mcp-server help

🚥 操作模式

🐞 调试模式

  • 更详细的日志记录
  • 通过设置环境变量启用:export DEBUG=auth0-mcp

[!TIP]
在排查连接或认证问题时,调试模式特别有用。

🔑 范围选择

服务器在初始化期间提供了一个交互式的范围选择界面:

  • 交互式选择:使用箭头键导航,并用空格键切换选择

  • 无默认范围:默认情况下,不选择任何范围以达到最大安全性

  • 支持通配符模式:使用模式快速选择多个相关范围:

    # 选择所有读取范围
    npx @auth0/auth0-mcp-server init --scopes 'read:*'
    
    # 选择多个范围模式(逗号分隔)
    npx @auth0/auth0-mcp-server init --scopes 'read:*,create:clients,update:actions'
    

[!NOTE]
选择的范围决定了MCP服务器可以对您的Auth0租户执行哪些操作。

⚙️ 配置

其他MCP客户端:

要将Auth0 MCP服务器与其他任何MCP客户端一起使用,您可以向客户端添加此配置并重新启动以使更改生效:

{
  "mcpServers": {
    "auth0": {
      "command": "npx",
      "args": ["-y", "@auth0/auth0-mcp-server", "run"],
      "capabilities": ["tools"],
      "env": {
        "DEBUG": "auth0-mcp"
      }
    }
  }
}

[!NOTE]
如果需要或者在运行npx init命令时遇到任何意外错误,您可以手动更新。

🚨 常见问题

  1. 认证失败

    • 确保您在Auth0租户中有正确的权限
    • 尝试重新初始化:npx @auth0/auth0-mcp-server init
  2. Claude无法连接到服务器

    • 安装后重启Claude桌面应用程序
    • 使用ps aux | grep auth0-mcp检查服务器是否正在运行
  3. API错误或权限问题

    • 启用调试模式:export DEBUG=auth0-mcp
    • 检查您的Auth0令牌权限和有效期
    • 使用特定范围重新初始化:npx @auth0/auth0-mcp-server init --scopes 'read:*,update:*,create:*'
    • 如果某个具体操作失败,可能是因为缺少所需的范围

[!TIP]
大多数连接问题可以通过同时重启服务器和Claude桌面应用程序来解决。

📋 调试日志

启用调试模式查看详细日志:

export DEBUG=auth0-mcp

从Claude桌面获取详细的MCP客户端日志:

# Follow logs in real-time
tail -n 20 -F ~/Library/Logs/Claude/mcp*.log

对于高级故障排除,请使用MCP Inspector:

npx @modelcontextprotocol/inspector -e DEBUG='auth0-mcp' @auth0/auth0-mcp-server run

要获取详细的MCP服务器日志,请以调试模式运行服务器:

DEBUG=auth0-mcp npx @auth0/auth0-mcp-server run

👨‍💻 开发

从源码构建

# Clone the repository
git clone https://github.com/auth0/auth0-mcp-server.git
cd auth0-mcp-server

# Install dependencies
npm install

# Build the project
npm run build

# Initiate device auth flow
npx . init

# Configure your MCP client(Claude Desktop) with MCP server path
npm run local-setup

# Restart MCP client, in this case claude desktop app

[!NOTE]
该服务器要求Node.js v18或更高版本

🔒 安全性

Auth0 MCP服务器优先考虑安全性:

  • 凭证存储在系统的安全钥匙串中
  • 不以明文形式存储任何敏感信息
  • 认证使用 OAuth 2.0 设备授权流程
  • 默认不请求任何权限(范围)
  • 交互式范围选择允许您精确选择要授予的权限
  • 支持 glob 模式快速选择相关范围(例如,read:*
  • 当不再需要时,可以通过 logout 命令轻松移除令牌

[!IMPORTANT]
为了遵循最佳安全实践,在会话结束或切换租户时,请始终使用 npx @auth0/auth0-mcp-server logout。这确保您的认证令牌从系统钥匙串中正确移除。

[!CAUTION]
在认证过程中,请始终审查所请求的权限,以确保它们符合您的安全要求。

💬 反馈和贡献

我们非常欢迎对本项目的反馈和贡献!在开始之前,请参阅:

报告问题

若要提供反馈或报告错误,请在我们的问题跟踪器上提出问题

漏洞报告

请勿在公共 GitHub 问题跟踪器上报告安全漏洞。负责任披露计划详细说明了披露安全问题的程序。

📄 许可证

本项目采用 MIT 许可证。更多信息请参见 LICENSE 文件。

什么是 Auth0?

相关 MCP 服务