用途:在 Cloudflare Workers 上创建可用于生产的远程 Model Context Protocol(MCP) 服务器,包含工具定义、认证与部署。适用于需要构建远程 MCP 服务器、通过 MCP 暴露工具、配置 MCP/OAuth 认证或部署到 Cloudflare Workers 的场景。
前置条件:启用 Workers 的 Cloudflare 账户、Node.js 18+ 与 npm/pnpm/yarn、Wrangler CLI(npm install -g wrangler)。
快速开始:无认证模板用 npm create cloudflare@latest -- my-mcp-server --template=cloudflare/ai/demos/remote-mcp-authless,随后 npm start,服务运行在 http://localhost:8788/mcp;带 OAuth 认证的模板为 cloudflare/ai/demos/remote-mcp-github-oauth,需配置 OAuth 应用(参考 references/oauth-setup.md)。
核心流程:第一步用 server.tool() 在继承 McpAgent 的类中定义工具,例如 add 工具接收 a、b 数字并返回文本结果,或调用外部 API 返回数据;第二步配置入口,公共服务器在 fetch 中判断路径为 /mcp 时返回 MyMCP.serveSSE("/mcp").fetch(request, env, ctx);第三步本地用 npx @modelcontextprotocol/inspector@latest 测试,地址 http://localhost:5173 填入 http://localhost:8788/mcp;第四步用 npx wrangler deploy 部署,地址为 https://[worker-name].[account].workers.dev/mcp;第五步在 Claude Desktop 的 claude_desktop_config.json 中配置 mcp-remote 指向部署地址并重启。
工具模式:返回类型为 content 文本数组,可含多个内容项;用 Zod 做输入校验,如 z.string().email()、z.enum、z.number().int().min(0).optional();可通过泛型 Env 访问绑定,如 this.env.DB.prepare(sql).all()。认证支持 GitHub、Google、Auth0、Stytch、WorkOS 及任意 OAuth 2.0 提供方。wrangler.toml 需配置 name、main、compatibility_date,并声明 durable_objects 绑定与 migrations,可选配置 D1、KV 绑定。
限制与常见问题:工具名大小写需完全一致且 init() 需在连接前注册;端点路径须为 /mcp,浏览器客户端需注意 CORS,部署状态可用 wrangler deployments list 核对;OAuth 回调地址需与配置完全一致,本地开发使用 http://localhost:8788/callback。给出的资料未涉及收费、价格或性能数据。