MCP Auth0 OIDC 认证服务器
一个需要通过 Auth0 进行用户身份验证的 MCP 服务器,允许它代表已验证身份的用户调用受保护的 API。
服务介绍
Model Context Protocol (MCP) 服务器
这是一个需要用户首先进行身份验证的 MCP 服务器。MCP 服务器随后将能够代表用户调用受保护的 API。
配置
Todos API
在使用 MCP 服务器之前,您需要按照这里的文档部署 Todos API。
Auth0 配置
在 Auth0 控制台中,在“应用程序”部分创建一个新的应用(类型:“常规 Web 应用程序”)。
一旦应用被创建,请在本地开发时配置以下 URL 作为回调 URL:
http://localhost:8788/callback
设置 KV 命名空间
- 创建 KV 命名空间:
wrangler kv:namespace create "OAUTH_KV" - 使用 KV ID 更新 Wrangler 文件
环境变量
此 MCP 服务器需要配置几个环境变量:
| 设置 | 描述 |
|---|---|
AUTH0_DOMAIN |
您的 Auth0 租户的域名(例如,acme.auth0.com) |
AUTH0_CLIENT_ID |
从您创建的 Auth0 应用程序中获取的客户端 ID |
AUTH0_CLIENT_SECRET |
从您创建的 Auth0 应用程序中获取的客户端密钥 |
AUTH0_AUDIENCE |
您在 Auth0 控制台注册的 API 的唯一标识符(例如,urn:todos-api) |
AUTH0_SCOPE |
MCP 服务器请求的范围。在这里我们请求基本的个人资料信息 (openid email profile)、刷新令牌功能 (offline_access) 和 API 访问权限 (read:todos) |
NODE_ENV |
环境设置 - 对于本地开发使用 development |
API_BASE_URL |
您运行的 Todos API 的基础 URL |
开发
在项目的根目录下创建一个 .dev.vars 文件,结构如下:
AUTH0_DOMAIN=yourdomain.us.auth0.com
AUTH0_CLIENT_ID=The Client ID of the application you created in Auth0
AUTH0_CLIENT_SECRET=The Client Secret of the application you created in Auth0
AUTH0_AUDIENCE=urn:todos-api
AUTH0_SCOPE=openid email profile offline_access read:todos
NODE_ENV=development
API_BASE_URL=http://localhost:8789
测试 MCP 服务器
要启动 MCP 服务器,可以使用以下命令:
npm run dev
使用 MCP Inspector,您可以连接到 MCP 服务器,列出可用的工具并调用它们。请确保将传输类型设置为 sse,并将 URL 设置为 http://localhost:8788/sse。
将 MCP 服务器部署到 Cloudflare
要将 MCP 服务器部署到 Cloudflare,您首先需要设置以下密钥:
wrangler secret put AUTH0_DOMAIN
wrangler secret put AUTH0_CLIENT_ID
wrangler secret put AUTH0_CLIENT_SECRET
wrangler secret put AUTH0_AUDIENCE
wrangler secret put AUTH0_SCOPE
wrangler secret put API_BASE_URL
一旦设置了密钥,您可以使用以下命令部署 API:
npm run deploy
在 Auth0 仪表板中,还需要为您的已部署 MCP 服务器添加一个新的回调 URL,例如:
https://mcp-auth0-oidc.<your-subdomain>.workers.dev/callback
为了测试这一点,现在您可以使用 Workers AI LLM Playground。导航至 https://playground.ai.cloudflare.com/,然后使用以下 URL 模式在左下角连接到您的 MCP 服务器:
https://mcp-auth0-oidc.<your-subdomain>.workers.dev/sse
这将打开一个弹出窗口,您可以在其中登录,之后就可以使用所有工具了。
故障排除
如果您在设置或使用 MCP 服务器时遇到任何问题,这里有一些故障排除步骤:
检查 Worker 日志
访问您的仪表板中的 Cloudflare Workers Logs
Auth0 仪表板日志
- 导航到您的 Auth0 仪表板的日志部分
- 查看身份验证尝试和失败记录
常见问题
- 如果身份验证失败,请验证您的 Auth0 配置和密钥
- 对于连接问题,请确保您的 Worker 已部署且域名正确
- 确保在 Auth0 中正确配置了所有回调 URL
- 核实 API_BASE_URL 与您部署的 API 端点匹配