Auth0 MCP服务器
用于Auth0管理和配置分析的模型上下文协议服务器。
这个基于TypeScript的MCP服务器提供了与Auth0租户交互的工具和资源,允许您管理应用程序、分析配置和排除常见的Auth0设置问题。
特性
资源
- Auth0应用程序 (
auth0://applications)-租户中所有Auth0应用程序的列表 - Auth0租户设置 (
auth0://tenant-settings)-Auth0租户配置和设置
工具
get_application-通过客户端ID获取特定Auth0应用程序的详细信息
- 参数: client_id (必填)
list_applications-列出租户中的所有Auth0应用程序
- 无需参数
analyze_configuration-分析Auth0配置中的常见问题
- 参数: - webapp_client_id (必填)-Web应用程序使用的客户端ID - api_client_id (可选)-API使用的客户端ID - callback_url (可选)-预期的回调URL - 提供应用程序配置的详细分析,并确定常见问题
get_tenant_settings-获取Auth0租户设置和配置
- 无需参数
先决条件
您需要具有以下作用域的Auth0 Management API应用程序:
read:clientsread:tenant_settings
环境变量
需要以下环境变量:
AUTH0_DOMAIN=your-tenant.auth0.com
AUTH0_CLIENT_ID=your-management-api-client-id
AUTH0_CLIENT_SECRET=your-management-api-client-secret
AUTH0_AUDIENCE=https://your-tenant.auth0.com/api/v2/发展
安装依赖项:
npm install构建服务器:
npm run build对于自动重建的开发:
npm run watch安装
要与Claude Desktop一起使用,请添加服务器配置:
在MacOS上: ~/Library/Application Support/Claude/claude_desktop_config.json 在Windows上: %APPDATA%/Claude/claude_desktop_config.json
{
"mcpServers": {
"auth0-custom": {
"command": "node",
"args": ["/path/to/auth0-server/build/index.js"],
"env": {
"AUTH0_DOMAIN": "your-tenant.auth0.com",
"AUTH0_CLIENT_ID": "your-management-api-client-id",
"AUTH0_CLIENT_SECRET": "your-management-api-client-secret",
"AUTH0_AUDIENCE": "https://your-api-audience.com"
},
"disabled": false,
"autoApprove": []
}
}
}备注:The autoApprove array允许这些工具自动运行,而无需每次手动批准,这对于列出应用程序和分析配置等只读操作非常方便。
设置Auth0管理API
- 转到您的Auth0仪表板
- 导航到应用程序→ APIs
- 选择“Auth0管理API”
- 转到“机器对机器应用程序”选项卡
- 授权您的申请并授予所需的范围:
- read:clients - read:tenant_settings
使用示例
连接后,您可以使用服务器:
- 列出所有应用程序:使用
list_applications用于获取所有Auth0应用程序概览的工具 - 获取特定应用程序详细信息:使用
get_application使用客户端ID获取详细配置 - 分析配置问题:使用
analyze_configuration识别常见的设置问题,如:
- 应用程序类型不正确 - 缺少回调URL - 授权类型配置错误 - 前端和后端之间共享客户端ID
- 访问租户设置:使用
get_tenant_settings查看租户级别配置
调试
由于MCP服务器通过stdio进行通信,调试可能具有挑战性。我们建议使用 MCP检查员:
npm run inspector检查器将提供一个URL,用于访问浏览器中的调试工具。
错误处理
该服务器包括全面的错误处理功能,用于:
- 无效的Auth0凭据
- 网络连接问题
- 缺少应用程序或资源
- API速率限制
- 客户端ID或配置参数无效
所有错误都会返回描述性消息,以帮助解决问题。
