8月6日、Cloudflareが「The next generation of MCP」と題した記事を公開した。AIエージェントと外部サービスをつなぐ標準プロトコル「MCP(Model Context Protocol)」の新仕様(2026-07-28)が確定し、プロトコルが完全にステートレス化されるなど、サーバー構築の設計を根本から変える変更が加えられたことを詳しく解説している。
MCPとは何か、なぜ今注目されるのか
MCPはAnthropicが2024年末に策定したオープン仕様で、AIエージェントがWebサービスやローカルツールと標準的な方法でやり取りするためのプロトコルだ。REST APIのようにサービスごとに独自の接続コードを書く必要がなく、MCP対応のサーバーを用意すればあらゆるAIエージェントが利用できる「AIエージェント向けのUSB規格」とも言える存在として、2025年以降に急速に普及した。
普及が進む中で、設計上の課題が顕在化していた。従来のMCPはローカルアプリ向けのSTDIOトランスポートに起源を持つステートフルな接続を前提とした設計で、リモートサーバーに転用した際にスティッキーセッション管理(特定のクライアントを特定のサーバーインスタンスに固定し続ける仕組み)、ストリームの維持、メッセージのリプレイといった複雑さをそのまま引き継いでいた。スケーラビリティと運用コストの面で、本格的なクラウドサービス化の障壁になっていたのだ。
先週確定したMCP 2026-07-28仕様はこの問題を根本から解決する。
プロトコルが完全にステートレス化
最大の変更点は、プロトコルの完全なステートレス化だ。従来のinitialize/initializedハンドシェイクとMcp-Session-Idヘッダーが廃止され、各リクエストはセッション状態を持たずに独立して処理できる。リクエストにはプロトコルバージョン、クライアントID、クライアント機能が含まれており、それだけで完結する。サーバーの事前確認が必要なクライアントはserver/discoverを任意で呼べばよい。
この変更により、MCP ServerはDurable Objectsなしで、単純なCloudflare Workerとして動作するようになった。Durable Objectsはステートフルなセッション管理のために必要だったCloudflareのインフラ機能で、これが不要になることでスケールが速く、コストも低く、障害点も少ない構成が実現できる。
CloudflareのAgents SDKはこの新仕様を仕様確定前(リリース候補段階)からサポートしており、本番トラフィックでの動作実績がある。Cloudflare APIをラップしたCode Mode MCP Serverはこのステートレスモードで毎秒数千リクエストをさばき、数十億件のツール呼び出しに対応しているという。
createMcpHandlerが公式SDKに昇格
Cloudflareが2025年11月に独自に導入したcreateMcpHandlerは、今回公式のMCP TypeScript SDKに取り込まれた。最小構成のMCP Server(index.ts相当)は以下のように書ける:
import { McpServer } from "@modelcontextprotocol/server";
import { createMcpHandler } from "agents/mcp/server";
import { z } from "zod";
function createServer() {
const server = new McpServer({
name: "hello-server",
version: "1.0.0",
});
server.registerTool(
"hello",
{
description: "Return a greeting",
inputSchema: { name: z.string().optional() },
},
async ({ name }) => ({
content: [{ type: "text", text: `Hello, ${name ?? "World"}!` }],
}),
);
return server;
}
export default {
fetch(request, env, ctx) {
return createMcpHandler(createServer)(request, env, ctx);
},
};
従来のMcpAgentベースのコードからの移行ガイドも公開されている。既存の/mcpエンドポイントは新旧両仕様を受け付けるため、クライアント側は基本的に設定変更なしで動作する。
HTTPインフラがMCPを直接理解できるようになった
従来、MCPリクエストの内容(tools/listなのか特定ツールの呼び出しなのか)はJSONボディを解析しなければわからなかった。新仕様では**Mcp-MethodとMcp-NameをHTTPヘッダーに含めることが必須**になった。
POST /mcp HTTP/1.1
MCP-Protocol-Version: 2026-07-28
Mcp-Method: tools/call
Mcp-Name: search
Content-Type: application/json
これにより、ゲートウェイ、レートリミッター、WAFがJSONをパースせずにルーティングやポリシー適用の判断を行えるようになった。既存のHTTPインフラの流儀そのままでMCP Serverを運用できる。
Elicitation(追加入力要求)の仕組みが刷新
MCP Serverがリクエスト処理の途中でユーザーの入力を必要とする場面(デプロイ前の承認、色の選択、返金の確認など)をElicitationと呼ぶ。従来はオープンなストリームに依存していたため実装コストが高かった。
新仕様ではMulti Round-Trip Requests(MRTR)という仕組みに置き換わった。サーバーはinput_requiredを返し、クライアントがユーザーから回答を集めて再リクエストする。トランスポートセッションを維持する必要がなく、既存実装とは非互換だが、運用上はずっとシンプルになる。
認可の整備とライフサイクル管理
認可フローではDynamic Client Registration(DCR)が非推奨となり、2027年夏以降に削除予定。代わりに事前登録済みクライアントとClient ID Metadata Documents(CIMD)が推奨される。RFC 9207による発行者識別も採用され、認可レスポンスの混同を防ぐ仕組みが強化された。Workers OAuth Providerはこれらの要件を実装済みだ。
今回の仕様からはフィーチャーライフサイクルも正式導入された。Deprecated(非推奨)になった機能は最低12ヶ月後でなければ削除できない。現時点ではRoots、Sampling、Logging、DCR、レガシーHTTP+SSEトランスポートが非推奨となっている。
現場からの声
Sentryの共同創業者でCPOのDavid Cramerは、自社のMCPサーバーをCloudflareのSDK上に構築した経験から、今回の新仕様について次のように述べている:
「SentryのMCPはCloudflareのSDK上に構築した。大ファンだ。2026-07-28仕様が確定する前にこの新しいものを本番投入したが、壊れなかった。それも大ファンだ。この新仕様は認証やツール周りのナンセンスをきれいに整理してくれた。エージェントは配管の話をしなくてよくなってからが本番だ。」
TypeScript、Python、Go、C#の各SDKはすでに更新済みで、本日からすぐに利用できる。
詳細はThe next generation of MCPを参照していただきたい。