OpenAICloudflare Developer Platform2026/07/27 0:00

Agents, Workers - Agents SDK adds MCP Specification 2026-07-28 support

要点だけを先に読めるように短く再構成したセクションです。

元記事

Quick Digest

要約

要点だけを先に読めるように短く再構成したセクションです。

openaijamodel: gpt-5-mini-2025-08-07

Agents SDK が MCP Specification 2026-07-28 をサポート (v0.20.0)

Key Points

  • MCP 2026-07-28 対応
  • ステートレス createMcpHandler
  • McpAgent 非推奨

Summary

Agents SDK v0.20.0 は MCP Specification 2026-07-28(RC)に対応し、クライアント/サーバのステートレス処理を導入します。createMcpHandler(factory) によるリクエスト毎の隔離サーバ、Workers ラッパーの Origin 検証、クライアント側のプロトコル自動検出とレガシー互換性が主な変更点です。McpAgent は非推奨で機能凍結済みのため、早めの移行を推奨します。

Key Points

  • クライアント
    • MCP クライアントマネージャが @modelcontextprotocol/client を利用。接続時に server/discover で MCP 2026-07-28 のサポートをプローブし、非対応なら同一接続で従来の initialize ハンドシェイクにフォールバックします。
    • ステートレスな入力収集は input_required を用いた MRTR(multi-round-trip requests)で処理。OAuth コールバックは v2 SDK で発行者メタデータを検証し、ブラウザリダイレクトや Durable Object ハイベーション間で状態を保持します。
  • サーバ / Workers
    • createMcpHandler@modelcontextprotocol/serverMcpServer を返すファクトリを受け取り、リクエストごとに分離されたサーバを生成。これによりステートレスサーババンドルから v1 モジュールを分離できます。
    • Workers ラッパーは Origin 検証、信頼済み Origin への委譲、型付きの変更通知(change notifications)を提供します。
    • 同一ルートで MCP 2026-07-28 クライアントとレガシークライアントの両方を扱えるため、通常のツール/プロンプト/リソース定義を分ける必要はありません。
  • 移行手順(実務的な推奨)
    • Agents SDK を最新版に更新(例: npm i agents@latest / yarn add agents@latest など)。
    • 既存 SDK v1 サーバ定義を SDK v2 ファクトリに移し、createMcpHandler(factory) で提供する。セッション依存機能が残る場合はレガシールートを併置し、isLegacyRequest() で振り分けて段階的に移行してください。
    • セッション機能を移行・ドレインしたらレガシールートを削除。
  • 非推奨と互換性
    • McpAgent は非推奨(機能凍結)。createMcpHandler(v1Server, ...) の互換ラッパーは次のメジャーで削除予定。MCPClientManager.callTool のオーバーロードも整理されています。
    • MCP 草案側でも Roots、Sampling、Logging、旧 HTTP+SSE トランスポート、Dynamic Client Registration が非推奨になっています。

参考: マイグレーションガイドを参照し、セッションフルな機能はステートレス等価物へ設計しつつ、クライアント移行期間は両ルート併用で段階的に切り替えてください。

Full Translation

翻訳

原文の流れを保ったまま読める翻訳セクションです。

openaijamodel: gpt-5-mini-2025-08-07

Agents、Workers - Agents SDK が MCP Specification 2026-07-28 をサポート追加

概要

Agents SDK v0.20.0 は MCP 2026-07-28 リリース候補へのクライアントとサーバーのサポートを追加しました。Workers は MCP トランスポートセッションや Durable Object を使わずにツール、プロンプト、リソース、elicitation を提供できます。Agents は MCP 2026-07-28 サーバーと既存のレガシーサーバーの両方に接続できます。

クライアントサポート

  • MCP クライアントマネージャは現在 @modelcontextprotocol/client を使用します。
  • 各接続で server/discover により MCP 2026-07-28 の対応をプローブします。サーバーがステートレスプロトコルをサポートしない場合、クライアントは同一接続上でレガシーの initialize ハンドシェイクにフォールバックします。
  • 既存の addMcpServer 呼び出しはプロトコルバージョン設定やプロトコル世代ごとの別クライアントを必要としません。
  • ステートレスリクエストでは、elicitation は input_required を使いマルチラウンドトリップリクエスト(MRTR)に対応します。レガシーパスはプッシュされたリクエストに対して同じフォームと URL ハンドラを使用します。
  • SDK は入力を収集し、元の操作をリトライし、元の callToolgetPrompt、または readResource のプロミスを最終結果で解決します。
  • OAuth コールバックは v2 SDK を通じて発行者メタデータを検証します。Discovery 状態と発行者に紐づく資格情報はブラウザリダイレクトや Durable Object のハイバネーション間で永続化されます。

ステートレスサーバーの実行

createMcpHandler@modelcontextprotocol/server からのサーバーを返すファクトリを受け取れるようになりました。ファクトリは各リクエストごとに分離されたサーバーを作成します。例:

import { McpServer } from "@modelcontextprotocol/server" ;
import { createMcpHandler } from "agents/mcp/server" ;
function createServer () {
    return new McpServer ({ name: "example" , version: "1.0.0"});
}
export default {
    fetch ( request , env , ctx ) {
        return createMcpHandler (createServer)(request, env, ctx);
    },
};

別の例(型注釈付き):

import { McpServer } from "@modelcontextprotocol/server" ;
import { createMcpHandler } from "agents/mcp/server" ;
function createServer () {
    return new McpServer ({ name: "example" , version: "1.0.0" });
}
export default {
    fetch ( request , env , ctx ) {
        return createMcpHandler (createServer)(request, env, ctx);
    },
} satisfies ExportedHandler ;
  • agents/mcp/server の分離されたエントリは McpAgentWorkerTransport、MCP クライアントトランスポート、および SDK v1 モジュールをステートレスサーバーバンドルから除外します。
  • Workers ラッパーは現在のブラウザ Origin を検証し、信頼された Origin ミドルウェアへの明示的な委任をサポートし、リクエストハンドリングと型付きの変更通知を公開します。

後方互換性

  • 同一の createMcpHandler(createServer)(request, env, ctx) ルートは、MCP 2026-07-28 クライアントとステートレスリクエストを使うレガシークライアントの両方に対応します。通常のツール、プロンプト、リソースに対して個別のルートやツール定義は不要です。
  • McpAgent は非推奨(deprecated)かつ機能凍結です。既存の McpAgent サーバーはできるだけ早くステートレスハンドラへ移行してください。
  • サーバーがプロトコルセッション、RPC、サーバーからクライアントへのプッシュリクエスト、独立したストリーム、またはリプレイに依存する場合、マイグレーションガイドを参照してステートレスの同等機能を設計し、クライアント移行中は両方のルートを併行して実行してください。

既存の SDK v1 サーバーの移行

  1. Agents SDK をアップグレードします:

    npm yarn pnpm bun npm i agents@latest yarn add agents@latest pnpm add agents@latest bun add agents@latest

  2. 既存の SDK v1 サーバー定義を SDK v2 ファクトリに移し、createMcpHandler で提供します。ハンドラのデフォルトのレガシー互換性により、ほとんどのステートレス展開はルートを1つだけで済みます。

  3. 既存の McpAgent サーバーがまだセッション依存の機能を必要とする場合、その横にステートレスパスを追加します。isLegacyRequest() を使ってレガシーのトラフィックのみ既存ルートに送る例:

    import { isLegacyRequest } from "@modelcontextprotocol/server" ; import { createMcpHandler } from "agents/mcp/server" ; import { MyMcpAgent } from "./legacy-server" ; import { createServer } from "./server" ;

    const stateless = createMcpHandler (createServer, { route: "/mcp" , legacy: "reject" , }); const legacy = MyMcpAgent. serve ( "/mcp" );

    export default { async fetch ( request , env , ctx ) { if ( await isLegacyRequest (request)) { return legacy. fetch (request, env, ctx); } return stateless (request, env, ctx); }, };

  • 型注釈例:

    import { isLegacyRequest } from "@modelcontextprotocol/server" ; import { createMcpHandler } from "agents/mcp/server" ; import { MyMcpAgent } from "./legacy-server" ; import { createServer } from "./server" ;

    const stateless = createMcpHandler (createServer, { route: "/mcp" , legacy: "reject" , }); const legacy = MyMcpAgent. serve ( "/mcp" );

    export default { async fetch ( request : Request , env : Env , ctx : ExecutionContext ) { if ( await isLegacyRequest (request)) { return legacy. fetch (request, env, ctx); } return stateless (request, env, ctx); }, } satisfies ExportedHandler<Env>;

  1. 残るセッション依存機能を移行し、既存セッションのドレインを許可した後にレガシールートを削除してください。
  2. パッケージ変更、互換性の制限、ロールアウト手順については「Migrate to MCP SDK v2」を参照してください。

v0.20.0 の非推奨(Deprecated)事項

以下の Agents SDK API がこのリリースで非推奨になりました。

Deprecated API置換ステータス
McpAgentSDK v2 ファクトリと createMcpHandler を使ってステートレスサーバーに移行します。状態ful 機能を削除する前にマイグレーションガイドを参照してください。機能凍結。削除バージョンは未定。
createMcpHandler(v1Server, options)サーバーを SDK v2 ファクトリに移し createMcpHandler(factory, options) を呼び出してください。セッション依存の機能については一時的な橋渡しとして createLegacyMcpHandler のみを使ってください。次のメジャーリリースで削除予定。
MCPClientManager.callTool(params, resultSchema, options)withX402Client 相当のオーバーロードcallTool(params, options) または callTool(confirm, params, options) を使用してください。互換性のためのオーバーロード。削除バージョンは未定。
  • MCP 2026-07-28 草案では、Roots、Sampling、Logging、旧 HTTP+SSE トランスポート、および Dynamic Client Registration の個別 deprecate も行われています。
Agents、Workers - Agents SDK が MCP Specification 2026-07-28 をサポート追加 | Cloudflare Developer Platform | DocsDigest