目次
なぜCloudflare Workersが2026年のMCP本番運用先か
2026年4月のApigene調査では、リモートMCPサーバー2,181エンドポイントのうち52%が完全に死亡し、健康なものはわずか9%だった(KanseiLink検証記事も参照)。この死亡率の主因の一つが「サーバーレスのコールドスタートタイムアウト」であり、ここでCloudflare Workersの構造的優位が活きる。
Cloudflare WorkersはV8 isolateベースで動作する。AWS LambdaやVercel Functionsのコンテナベースサーバーレスがコールドスタートで数秒〜10秒かかるのに対し、Workersは数ミリ秒で起動する。低頻度アクセスのMCPサーバーでも、エージェントがタイムアウトで諦めるリスクが大幅に減る。
Cloudflare Workers MCP運用の優位性(2026年4月時点)
(V8 isolate)
エッジロケーション
リクエスト数
トークン削減上限
2026年4月22日、CloudflareはエンタープライズMCPの参照アーキテクチャを公開し、集中ガバナンス、リモートサーバーインフラ、コストコントロールを本番MCPの3要件として提示した(InfoQ報道)。同社の「Code Mode」はMCPツール定義を動的エントリポイントに集約することで、最大99.9%のトークン削減を実現する設計だ(KanseiLinkの「Cloudflare Code Modeトークン99.9%削減検証」記事も参照)。
前提環境とアカウント準備
本ガイドを進めるには以下が必要だ。
- Cloudflareアカウント(無料プランで構築検証は可能)
- Node.js 18以上とnpm
- TypeScriptの基本知識(PythonベースのMCPは本ガイドの対象外)
- MCPクライアント(Claude Desktop、Cursor、もしくはMCP Inspector)
- ターミナル(macOS、Linux、もしくはWSL)
Step 1: ボイラープレート生成(5分)
Wrangler CLIでテンプレートからプロジェクトを生成
Cloudflareが公式に提供するremote-mcp-authlessテンプレートが最速の出発点。認証なし、ステートレスのリモートMCPサーバーを生成する。
生成されたプロジェクト構成の主要ファイル:
src/index.ts— MCPサーバー本体。McpAgentを継承したクラスでツールを定義wrangler.jsonc— Cloudflare Workersのデプロイ設定package.json—@modelcontextprotocol/sdk等の依存関係
Step 2: ローカル開発とMCP Inspectorで検証(10分)
ローカルサーバー起動 + MCP Inspectorでツール動作確認
本番デプロイ前にローカルでツールが正常動作することを必ず確認する。MCP Inspectorは公式の視覚的デバッグツールだ。
サンプルツール(calculator等)が呼び出せれば成功。任意のツールをsrc/index.tsに追加して、ホットリロードで動作確認する。例: 日本SaaSサービス検索ツールを追加する場合、this.server.tool(...)でツール名・引数スキーマ・実装を定義する。
(1) ツールがリストに表示されるか、(2) 引数バリデーションが期待通りか、(3) レスポンスがMCP仕様準拠か(contentフィールドのtype/text)、(4) エラー時にエージェントが解釈可能なメッセージを返しているか。これら4点をローカルで潰しておくと本番でのデバッグコストが大幅に下がる。
Step 3: 本番デプロイ(5分)
Cloudflare Workersへ本番デプロイ
Wranglerコマンド一発でデプロイ完了。デプロイURLはhttps://my-mcp-server.<account>.workers.dev/mcp形式で発行される。
このエンドポイントをClaude Desktop等のMCPクライアントに登録すれば、即座にエージェントから利用可能になる。
認証統合: Cloudflare Access vs OAuth
認証なしのMCPは社内ツールやデモ用途に限定すべきで、本番のエージェントワークフローでは何らかの認証が必須だ。Cloudflareが推奨する2つのパターンを比較する。
| パターン | 仕組み | 適用シーン | セットアップ難易度 |
|---|---|---|---|
| Cloudflare Access | Cloudflareがゼロトラスト方式でMCPの前段に配置され、Google/Microsoft/Okta等のIdPでSSO。MCP本体はトークン検証不要。 | 社内エージェント、エンタープライズ用途、複数IdP統合 | 低 |
| OAuth Provider統合 | MCPサーバーが自身でOAuth2フローを実装し、サードパーティ(Google/GitHub等)にトークン発行を委譲。エージェントがアクセストークンで認証。 | SaaS製品としてのMCP、ユーザー単位の権限制御が必要なケース | 中〜高 |
OAuth Provider実装はリフレッシュトークン管理、PKCE、スコープ設計など考慮事項が多い。社内利用なら、Cloudflare Accessでゼロトラスト認証を有効化するだけで本番品質に到達する。SaaS製品として外部公開する段階でOAuth Providerに移行するのが堅実。
本番運用の7パターン: 「52%死亡」を回避する
デプロイ完了は本番運用のスタートでしかない。MCPサーバーが半年後に「死亡サーバー」とカウントされないために、以下の7パターンを実装する。
- ① ヘルスチェックエンドポイントの実装 —
/healthでアップストリームAPIまで疎通確認し、CronトリガーでLogpushに記録する - ② アップストリームAPIバージョンのピン留め —
v1等のメジャーバージョンを環境変数で固定し、リクエストURLに明示する - ③ スキーマドリフト検知のCIテスト — Vitest等でリクエスト/レスポンスの形を検証し、APIの破壊的変更を週次で検知する
- ④ Cloudflare Logpushでの可観測性 — エラーログをR2/S3に転送し、Datadog/Honeycombで分析する。エージェントが起こす
search_missのパターンも追跡可能 - ⑤ Wrangler secretによるシークレット管理 — APIキーやOAuthクライアントシークレットは
wrangler secret putで安全に管理。コミットログに残さない - ⑥ レート制限の実装 — Cloudflare Rate Limitingでツール呼び出し頻度を制御し、アップストリームAPIのレート違反を防ぐ
- ⑦ KanseiLink等のAEO評価への登録 — 第三者によるAgent Readiness評価を受け、verified tier獲得を目指す。ユーザー獲得とサーバー品質の両方を継続的にトラッキング
無料プランは1日10万リクエスト、1リクエスト10ms CPU時間という制限がある。MCPツールがアップストリームAPI呼び出しを伴う場合、CPU時間制限に達することがある。本番運用ではWorkers Paid plan(月$5/300万リクエスト)への移行を推奨。CPU時間が30秒に拡張され、Smart Placementやより多くの可観測性機能も利用可能になる。
制約と注意点 — Pythonランタイムは選べない
Cloudflare Workersの主な制約と、MCPサーバー実装上の注意点を整理する。
- Python FastMCPは動作しない — V8 isolateベースのため、完全なPythonランタイムは提供されない。Pyodideベースのpython-on-workersはあるが、本番MCP用途では推奨されない。Python実装にこだわる場合はFly.io、Render、Railway等のコンテナベースを選ぶ
- 長時間ジョブはDurable Objectsへ — 30秒を超える処理はDurable Objects + Alarm APIに切り出す設計が必要
- メモリ128MB上限 — 大きなレスポンスのストリーミング処理では、ヒープに溜め込まずチャンク返却で対応する
- Node.js APIは部分的サポート —
node:fs等のネイティブモジュールは使えない。nodejs_compatフラグで一部互換あり - SSEのKeep-Alive — リモートMCPはSSEトランスポートが基本だが、Cloudflareの100秒タイムアウトを意識し、定期的なpingを送るかStreamable HTTP(2025-03-26仕様)を検討する
FAQ
Cloudflare Workersは他のサーバーレスプラットフォームと何が違いますか?
V8 isolateベースで動作するため、コールドスタートが数ミリ秒(コンテナベースは数秒〜10秒)。300+グローバルエッジで配信されるため低レイテンシ。一方でPython完全ランタイムは利用不可、メモリ128MB、CPU時間制限ありなど制約もあります。MCPサーバーには「軽量・低レイテンシ・高可用性」が重要なため、JavaScriptベースの実装ならばWorkersは最有力候補です。
本番デプロイまで実際にどれくらい時間がかかりますか?
Cloudflareアカウントを既に持ち、Node.js 18以上があれば、npm createから最初のデプロイまで約15-30分です。認証統合(OAuth)は追加1-2時間。MCP Inspectorでの検証、ヘルスチェック実装、本番監視を含めても半日で本番運用が開始できます。
「MCPサーバーの52%が死亡」を回避するには?
本記事で解説した7パターン: ヘルスチェック実装、APIバージョンピン留め、CIスキーマテスト、Cloudflare Logpushでの可観測性、Wrangler secretでのシークレット管理、レート制限、第三者AEO評価への登録。Cloudflare Workersのプラットフォーム特性(コールドスタート回避、エッジ配信)を活かすことで、構造的に「死なない」運用が可能です。
本記事はCloudflare公式ドキュメント(developers.cloudflare.com/agents)、Apigene社「Host MCP Server: 2026 Deployment Guide」、Cloudflare Blog「Scaling MCP adoption: Reference architecture」(2026年4月22日公開)等を参照しています。Wranglerコマンドや設定ファイルの形式は2026年4月時点のものであり、Cloudflare側の更新により変更される可能性があります。本番デプロイ前に最新の公式ドキュメントを確認してください。