Developers can now run a Model Context Protocol (MCP) server on Cloudflare’s free tier while staying inside the platform’s 10 ms per-request CPU ceiling. This matters because anyone can turn static Markdown files into a live content service without paying for a plan or maintaining stateful infrastructure.

Why the free tier works now

Two shifts make the free-plan deployment possible. First, the MCP specification now uses a stateless model. The new protocol drops sessions and handshakes, so any request can be handled by any server instance without shared storage. Second, Cloudflare changed its guidance: the previously recommended McpAgent class is deprecated, and developers must use stateless request handlers for new MCP servers.

In the earlier model, tracking a user’s session required a Durable Object—a Cloudflare construct that persists state across requests.

Benchmarks: what fits under 10 ms

We built a read-only MCP server that serves Markdown files stored as assets. The server exposes four endpoints; we recorded median CPU usage for each:

  • server/discover – 0 ms
  • tools/list – 0 ms
  • list_articles – 1 ms
  • get_article – 1 ms (even for the longest article)

The total wall-clock response time can climb to about 88 ms, but Cloudflare only counts the CPU time spent executing your code toward the 10 ms cap. Network latency, I/O waiting, and other idle periods are excluded.

The numbers illustrate a simple rule of thumb:

  • Endpoints that merely read and return bytes stay comfortably under 2 ms.
  • Endpoints that perform non-trivial computation—parsing, rendering, hashing—risk exceeding the limit.

If your tool does heavy processing, you’ll need to move to a paid Cloudflare plan, which offers a higher CPU allowance per request.

Who wins, who is left out

The free tier now becomes a viable option for static-content services, documentation sites, or any use case where the server’s job is to fetch and deliver pre-existing files.

Bottom line

Stateless MCP servers can now live on Cloudflare’s free plan, provided they stay under 10 ms of CPU time per request. Simple, read-only services fit easily; anything that crunches data does not. The shift removes the need for Durable Objects. For anyone looking to serve static content at scale without paying for infrastructure, the free tier is now a realistic option.

Source: dev.to post measuring an MCP server against Cloudflare’s 10 ms CPU limit.