返回博客2025年3月26日

赛博菩萨再出手 - Cloudflare推出远程MCP服务器部署

MCPCloudflareAI开发者工具

赛博菩萨再出手 - Cloudflare推出远程MCP服务器部署

Cloudflare MCP服务器

嘿,听说了吗?MCP服务器不用本地跑了!

最近,几乎所有搞AI应用和智能助手的开发者都在讨论模型上下文协议(Model Context Protocol,简称MCP)。以前,我们都是在自己电脑上安装和运行MCP服务器,但现在情况变了!

Cloudflare刚刚宣布,你现在可以在他们的平台上构建和部署远程MCP服务器了!这意味着什么?简单来说,你不再需要在本地电脑上运行这些服务器,而是可以把它们放到云端,让Cloudflare帮你处理所有复杂的部分。

Cloudflare为我们提供了哪些便利?

Cloudflare为开发者提供了四个关键组件,帮助我们轻松构建远程MCP服务器:

  1. workers-oauth-provider:一个OAuth提供者库,让授权变得超级简单。不用自己处理复杂的认证流程,这个库会帮你搞定一切,包括令牌管理和用户认证。

  2. McpAgent:内置在Cloudflare Agents SDK中的一个类,负责处理远程传输。它使用Durable Objects在后台保持持久连接,让MCP客户端可以通过服务器发送事件(SSE)与你的MCP服务器通信。

  3. mcp-remote:一个适配器,让那些目前只支持本地连接的MCP客户端也能与远程MCP服务器一起工作。这意味着你可以立即开始使用现有的工具,而不必等待客户端原生支持远程MCP。

  4. AI playground作为远程MCP客户端:一个聊天界面,允许你连接到远程MCP服务器,并内置了认证检查。这让你可以立即测试你的远程MCP服务器,而不需要安装任何东西。

从本地到远程 - 让MCP走向大众

MCP正迅速成为一种通用协议,它让大语言模型(LLM)能够超越简单的推理和RAG(检索增强生成),执行需要访问AI应用程序之外资源的操作(比如发送邮件、部署代码更改、发布博客文章等)。它使AI代理(MCP客户端)能够访问外部服务(MCP服务器)提供的工具和资源。

到目前为止,MCP仅限于在你自己的机器上本地运行——如果你想使用MCP访问网络上的工具,你必须自己在本地设置服务器。你无法从基于网络的界面或移动应用程序使用MCP,也没有办法让用户进行身份验证并授予MCP客户端权限。实际上,MCP服务器还没有真正上线。

支持远程MCP连接改变了这一切。它创造了接触更广泛互联网用户的机会,这些用户不会为了使用桌面应用而安装和运行本地MCP服务器。远程MCP支持就像从桌面软件到基于网络的软件的转变。人们希望能够跨设备继续任务,登录后一切就能正常工作。本地MCP对开发者来说很棒,但远程MCP连接是接触互联网上所有人的关键一环。

MCP认证和授权是如何工作的?

当你构建一个使用终端用户账户信息的远程MCP服务器时,你需要认证和授权。你需要一种方式让用户登录并证明他们的身份(认证),以及一种方式让用户控制AI代理在使用服务时能够访问什么(授权)。

MCP使用OAuth来实现这一点,这是一种标准协议,允许用户授权应用程序访问他们的信息或服务,而无需共享密码。在这里,MCP服务器本身充当OAuth提供者。然而,在MCP中实现OAuth很困难,所以当你在Cloudflare上构建MCP服务器时,他们会为你提供这一功能。

完整的MCP OAuth流程如下:

  1. 用户访问MCP客户端(如Claude或其他AI助手)
  2. 用户请求使用需要MCP服务器的功能
  3. MCP客户端将用户重定向到MCP服务器的授权页面
  4. 用户登录并授权MCP客户端访问其数据
  5. MCP服务器生成令牌并将其发送给MCP客户端
  6. MCP客户端使用该令牌与MCP服务器通信

这里,你的MCP服务器同时充当上游服务的OAuth客户端和MCP客户端的OAuth服务器(也称为OAuth"提供者")。你可以使用任何上游认证流程,但workers-oauth-provider保证你的MCP服务器符合规范,并能与各种客户端应用和网站一起工作。

为什么MCP服务器发行自己的令牌?

你可能已经注意到,MCP服务器向MCP客户端发行自己的令牌,而不是直接传递从上游提供者接收到的令牌。

这种间接方式听起来可能更复杂,但它有重要的安全优势:

  • 通过发行自己的令牌,MCP服务器可以限制访问并实施比上游提供者更精细的控制
  • 如果你发给MCP客户端的令牌被泄露,攻击者只能获得你通过MCP工具明确授予的有限权限,而不是原始令牌的完全访问权
  • 你可以在MCP服务器中强制执行额外的约束,例如只允许特定用户访问特定工具

有状态的MCP服务器

当你在Cloudflare上构建MCP服务器时,每个MCP客户端会话都由一个Durable Object支持,通过Agents SDK。这意味着每个会话可以管理和持久化自己的状态,由自己的SQL数据库支持。

这为构建有状态的MCP服务器打开了大门。MCP服务器不仅可以作为客户端应用和外部API之间的无状态层,还可以自己成为有状态应用——游戏、购物车加结账流程、持久知识图谱,或者你能想到的任何其他东西。

实际应用案例

远程MCP服务器能做什么?以下是几个实际应用场景:

  1. 数据分析工具:让AI助手能够分析用户的数据,而不需要用户在本地安装复杂的分析软件
  2. 内容创作助手:提供专业的写作、设计或编程建议
  3. 企业知识库:让AI能够安全地访问企业内部知识,同时保持数据的安全性
  4. 特定领域的专家系统:为医疗、法律、金融等专业领域提供专业知识

如何开始使用?

想要开始构建自己的远程MCP服务器?Cloudflare已经为你准备好了一切。以下是简单的步骤:

  1. 访问Cloudflare的MCP服务器指南
  2. 使用他们提供的模板创建你的第一个MCP服务器
  3. 根据你的需求自定义服务器功能
  4. 部署到Cloudflare的全球网络
  5. 将你的服务器与AI助手(如Claude)连接起来

现在,是时候开始构建你自己的远程MCP服务器了!你有什么创新的想法想要实现?


注:本文基于Cloudflare 2025年3月25日发布的博客文章《Build and deploy Remote Model Context Protocol (MCP) servers to Cloudflare》整理而成。

准备开始了吗?

先简单说明目标,我会给出最合适的沟通方式。