開発者は、Cloudflareの無料プランを使用しながら、プラットフォームの1リクエストあたり10msというCPU制限内に収まる形で、Model Context Protocol (MCP) サーバーを実行できるようになりました。これは、プランの料金を支払ったりステートフルなインフラを維持したりすることなく、誰でも静的なMarkdownファイルをライブコンテンツサービスへと変換できることを意味しており、非常に重要な進展です。

なぜ無料プランで動作するのか

無料プランでのデプロイが可能になった背景には、2つの変化があります。第一に、MCPの仕様がステートレス(stateless)モデルを採用したことです。新しいプロトコルではセッションやハンドシェイクが廃止されたため、共有ストレージなしで、どのサーバーインスタンスでもあらゆるリクエストを処理できるようになりました。第二に、Cloudflareのガイダンスが変更されたことです。以前推奨されていた McpAgent クラスは非推奨となり、開発者は新しいMCPサーバーにおいてステートレスなリクエストハンドラーを使用する必要があります。

以前のモデルでは、ユーザーのセッションを追跡するために、リクエスト間で状態を保持するCloudflareの仕組みである「Durable Object」が必要でした。

ベンチマーク:10ms以内に収まるもの

私たちは、アセットとして保存されたMarkdownファイルを提供する読み取り専用のMCPサーバーを構築しました。このサーバーは4つのエンドポイントを公開しており、それぞれのCPU使用率の中央値を記録しました。

  • server/discover – 0 ms
  • tools/list – 0 ms
  • list_articles – 1 ms
  • get_article – 1 ms (最も長い記事の場合でも)

実効応答時間(wall-clock response time)は最大で約88msに達することもありますが、Cloudflareはコードの実行に費やされたCPU時間のみを10msの制限としてカウントします。ネットワークのレイテンシ、I/O待ち、その他のアイドル時間は除外されます。

これらの数値は、単純な目安を示しています。

  • 単にバイトデータを読み取って返すだけのエンドポイントは、余裕を持って2ms未満に収まります。
  • パース、レンダリング、ハッシュ化などの、無視できない計算を行うエンドポイントは、制限を超えるリスクがあります。

ツールが重い処理を行う場合は、1リクエストあたりのCPU許容量が高い有料のCloudflareプランに移行する必要があります。

メリットを受ける層と、対象外となる層

無料プランは、静的コンテンツサービス、ドキュメントサイト、あるいはサーバーの役割が既存のファイルをフェッチして配信することであるあらゆるユースケースにおいて、実行可能な選択肢となりました。

結論

ステートレスなMCPサーバーは、1リクエストあたりのCPU時間が10ms以内であれば、Cloudflareの無料プランで運用可能です。シンプルな読み取り専用サービスなら容易に収まりますが、データを集計・処理するようなものは適していません。この変化により、Durable Objectの必要性がなくなりました。インフラ費用を支払わずに大規模な静的コンテンツ配信を行いたいと考えている人にとって、無料プランは今や現実的な選択肢です。

出典:Cloudflareの10ms CPU制限に対してMCPサーバーを測定したdev.toの投稿。