开发者现在可以在 Cloudflare 的免费层级上运行 Model Context Protocol (MCP) 服务器,同时保持在平台每请求 10 毫秒的 CPU 上限之内。这具有重要意义,因为任何人都可以将静态 Markdown 文件转换为实时内容服务,而无需付费订阅或维护有状态的基础设施。

为什么现在免费层级可行了

两个转变使得免费方案的部署成为可能。首先,MCP 规范现在采用无状态模型。新协议取消了会话(sessions)和握手(handshakes),因此任何请求都可以由任何服务器实例处理,而无需共享存储。其次,Cloudflare 更改了其指导方针:之前推荐的 McpAgent 类已被弃用,开发者必须为新的 MCP 服务器使用无状态请求处理器。

在早期的模型中,跟踪用户会话需要使用 Durable Object——这是 Cloudflare 的一种可以在请求之间持久化状态的构建块。

基准测试:哪些内容符合 10 毫秒以内的要求

我们构建了一个只读的 MCP 服务器,用于提供存储为资产的 Markdown 文件。该服务器暴露了四个端点;我们记录了每个端点的 CPU 使用中位数:

  • server/discover – 0 毫秒
  • tools/list – 0 毫秒
  • list_articles – 1 毫秒
  • get_article – 1 毫秒(即使是对于最长的文章)

总的实际响应时间(wall-clock response time)可能会上升到约 88 毫秒,但 Cloudflare 仅将执行代码所花费的 CPU 时间计入 10 毫秒的上限。网络延迟、I/O 等待和其他空闲时间均不计入在内。

这些数字说明了一个简单的经验法则:

  • 仅读取并返回字节的端点可以轻松保持在 2 毫秒以下。
  • 执行非平凡计算(如解析、渲染、哈希)的端点则面临超过限制的风险。

如果您的工具涉及繁重的处理,则需要迁移到付费的 Cloudflare 方案,该方案为每个请求提供更高的 CPU 配额。

谁是受益者,谁被排除在外

对于静态内容服务、文档网站或任何服务器任务仅为获取并交付现有文件的用例,免费层级现在成为了一个可行的选择。

总结

无状态 MCP 服务器现在可以在 Cloudflare 的免费方案上运行,前提是它们每个请求的 CPU 时间保持在 10 毫秒以内。简单的只读服务可以轻松胜任;而任何进行数据处理的任务则不行。这一转变消除了对 Durable Objects 的需求。对于任何希望在大规模范围内提供静态内容而无需支付基础设施费用的人来说,免费层级现在是一个现实的选择。

来源:dev.to 上一篇关于衡量 MCP 服务器是否符合 Cloudflare 10 毫秒 CPU 限制的文章。