带有Descope认证的远程MCP服务器
让我们在Cloudflare Workers上通过Descope OAuth登录,快速部署并运行一个远程MCP服务器!
先决条件
在开始之前,请确保您已准备好:
- A. 缩减范围 账户和项目
- Node.js 版本
18.x或更高 - 一个Cloudflare账户(用于部署)
本地开发
- 从 Descope 控制台获取您的凭据:
- 创建一个
.dev.vars在项目根目录中创建文件(此文件已被添加到.gitignore中):
# .dev.vars
DESCOPE_PROJECT_ID="your_project_id"
DESCOPE_MANAGEMENT_KEY="your_management_key"
# For local development
SERVER_URL="http://localhost:8787"- 克隆并设置仓库:
# clone the repository
git clone git@github.com:cloudflare/ai.git
# install dependencies
cd ai
npm install
# run locally
npx nx dev remote-mcp-server-descope-auth你应该能够打开 http://localhost:8787/ 在您的浏览器中
将MCP检查器连接到您的服务器
要探索您的新MCP API,您可以使用 MCP 检查员。
- 用……来启动它
npx @modelcontextprotocol/inspector - 在检查员内部,将传输类型切换为
SSE并输入http://localhost:8787/sse作为要连接的MCP服务器的URL。 - 添加一个承载令牌,然后点击“连接”
- 点击“列出工具”
- 运行“getToken”工具,它应该会返回你在检查器中设置的Authorization头部信息
部署到Cloudflare
- 在Cloudflare中设置您的密钥:
# Set Descope credentials as secrets
wrangler secret put DESCOPE_MANAGEMENT_KEY- 设置您的Descope(或根据上下文,可译为“配置您的Descope”)
project_id以及您托管的工作人员的server_url到……的wrangler.jsonc文件:
# wrangler.jsonc
"vars": {
"DESCOPE_PROJECT_ID": "your_project_id",
"SERVER_URL": "https://your_worker_slug.your_account_name.workers.dev"
}- 部署工作节点:
npm run deploy从远程MCP客户端调用您新部署的远程MCP服务器
就像你在上面“本地开发”中所做的那样,运行MCP检查器:
npx @modelcontextprotocol/inspector@latest然后输入 workers.dev URL(例如: worker-name.account-name.workers.dev/sse在检查器中,将您的 Worker 的 URL 设置为要连接的 MCP 服务器的 URL,然后点击“连接”。
您现在已从远程MCP客户端连接到您的MCP服务器。您可以如上文所述,传递一个承载令牌。
特点/功能
MCP服务器的实现包括:
- 🔐 OAuth 2.0/2.1 授权服务器元数据(RFC 8414)
- 🔑 动态客户端注册(RFC 7591)
- 🔒 支持PKCE(Proof Key for Code Exchange,用于代码交换的证明密钥)
- 📝 持有者令牌认证
