用途
本技能用于在 Cloudflare Workers 上构建和部署 Model Context Protocol(MCP)服务器,使用 TypeScript。资料称 Cloudflare 是唯一提供官方远程 MCP 支持的平台。该技能的目标是帮助开发者避开 24 种常见的 MCP + Cloudflare 错误,尤其是 URL 路径不匹配这一首要失败原因。
主要能力
- 基于官方模板快速创建 MCP 服务器项目,模板覆盖无认证、GitHub OAuth、Google OAuth、Auth0/AuthKit 企业 SSO、Bearer 自定义认证等场景。
- 支持两种传输方式:SSE(Server-Sent Events,兼容性广)与 Streamable HTTP(2025 标准,单端点,推荐),也可同时支持两者。
- 支持 OAuth 认证(通过 @cloudflare/workers-oauth-provider),并强调 PKCE 绕过漏洞的修复版本要求。
- 通过 Durable Objects(McpAgent)实现有状态会话,提供存储、缓存、限流等模式。
- 涵盖 2025 年新增能力:MCP Elicitation(执行中请求用户输入)、Code Mode(由 schema 自动生成 TypeScript API)、MCPClientManager、任务队列与邮件集成。
- 提供条件化工具注册(按用户角色/付费层级动态注册工具)。
使用方式
快速开始(资料给出的命令):
npm create cloudflare@latest -- my-mcp-server \
--template=cloudflare/ai/demos/remote-mcp-authless
cd my-mcp-server && npm install && npm run dev
部署流程:
npx wrangler deploy
# 输出 URL:https://my-mcp.YOUR_ACCOUNT.workers.dev
部署后测试(资料称可预防 80% 的错误):
curl https://my-mcp.YOUR_ACCOUNT.workers.dev/sse
# 预期返回:{"name":"My MCP Server","version":"1.0.0","transports":["/sse","/mcp"]}
客户端配置(~/.config/claude/claude_desktop_config.json):
{
"mcpServers": {
"my-mcp": {
"url": "https://my-mcp.YOUR_ACCOUNT.workers.dev/sse"
}
}
}
配置后需重启 Claude Desktop(配置仅在启动时加载)。
适用场景
- 为 AI 客户端(如 Claude.ai)搭建远程 MCP 服务器。
- 需要 OAuth 认证、按用户隔离数据、按角色开放工具的服务。
- 需要会话状态、缓存、限流等有状态能力的 MCP 服务。
- 需要同时兼容 SSE 与 Streamable HTTP 客户端的场景。
限制与注意事项
- 资料强调 URL 路径必须与客户端配置完全一致,serveSSE("/sse") 对应客户端 URL 需带 /sse,serveSSE("/") 则不带。
- 工具返回值必须为 { content: [{ type: "text", text: "..." }] } 格式,返回原始字符串或普通对象会导致客户端解析错误。
- OAuth 提供库存在 PKCE 绕过漏洞(CVE: GHSA-qgp8-v765-qxx9),需使用 @cloudflare/workers-oauth-provider@0.0.5 或更高版本。
- 使用 Durable Objects 时首次部署必须配置 migrations。
- McpAgent 内部 Worker 与 Durable Object 之间始终使用 WebSocket(由 PartyServer 要求),对客户端不可见。
- 资料中提及的版本号、免费额度、安全等级等信息以原文为准,具体收费与平台政策暂未提供完整细节。