プログラミングとソフトウェア開発

Microsoft، MCP公式C#パッケージのバージョン2.0をリリース

新リリースは2026-07-28付けのMCP仕様に対応し、デフォルトでステートレスモードを採用するとともに、HTTPヘッダーを統一し、対話型ツールに対応するマルチラウンドリクエストをサポートします。リリースは、実験的なTasks拡張を除き、従来のコード、クライアント、サーバーとの幅広い互換性を維持しています。

2026-07-28
1 分で読めます
9 閲覧数
فريق تحرير certi.news
Microsoft، MCP公式C#パッケージのバージョン2.0をリリース

Microsoftは、C#向けMCP公式ソフトウェア開発キットのバージョン2.0を、2026-07-28仕様への対応と同時に発表しました。このリリースでは、HTTP経由でMCPサーバーを実行する方法が変更され、デフォルトでステートレスになります。また、統一HTTPヘッダーを追加し、継続的なセッションに依存せず、ツールがユーザーまたは言語モデルに入力を要求できるマルチラウンドリクエストをサポートします。

このリリースは、.NET上でMCPサーバーとクライアントを構築する開発者を対象としており、バージョン1.xの安定したAPIが引き続き動作します。net8.0、net9.0、net10.0に加え、.NET Frameworkで利用するためのnetstandard2.0もサポートします。

デフォルトでステートレスなサーバー

以前のバージョンでは、Streamable HTTPを使用するために初期化ハンドシェイクを完了してセッションを作成し、その後のすべてのリクエストでMcp-Session-Idヘッダーを送信する必要がありました。これにより、リクエストは識別子を発行したサーバーインスタンスに結び付けられ、複数のインスタンスを実行する場合はスティッキーなルーティングまたはセッションの移行が必要でした。

2026-07-28仕様では、initializeおよびinitializedのハンドシェイクとMcp-Session-Idヘッダーが廃止され、プロトコルのバージョンと機能が各リクエストに含まれるようになります。その結果、プロトコルレベルでスティッキーセッションや共有セッションストアを必要とせず、どのサーバーインスタンスでも任意のリクエストを処理できます。これにより、serverless、複数インスタンス、エッジ環境でのMCPサーバーのデプロイは、ロードバランサーの背後で通常のASP.NET Coreアプリケーションを実行する形に近くなります。

バージョン2.0では、HttpServerTransportOptions.Statelessオプションがデフォルトでtrueに設定されます。サーバーからクライアントへの非要求メッセージや、セッションに関連付けられたトランスポート状態が必要な場合は、ステートフルモードを有効にできます。セッションは引き続き利用可能ですが、基本設定ではなくなりました。

ルーティングと監視のためのHTTPヘッダー

ステートレスモードでは、MCPリクエストは自己完結型のHTTP POSTリクエストになります。これにより、通常のインフラストラクチャは他のHTTPトラフィックと同様に処理できます。仕様では、Mcp-MethodやMcp-Nameなどのヘッダーに加え、一部のツール引数をMcp-Param-*形式のヘッダーに昇格させる機能が提供されます。

ロードバランサー、プロキシ、ゲートウェイ、Webアプリケーションファイアウォールは、JSON-RPCリクエスト本文を解析せずに、これらのヘッダーをルーティングや監視に利用できます。リクエスト本文は引き続き信頼できる情報源です。ヘッダーの値が本文にある値と異なる場合、サーバーはHeaderMismatchエラーでリクエストを拒否します。また、この設計では、ASCII以外の値など、ヘッダーでサポートされない値をBase64インジケーターを使用してエンコードできます。

対話型ツール向けのマルチラウンドリクエスト

Multi Round-Trip Requests(MRTR)機能は、1回の呼び出しでは処理を完了できないツールを扱う方法を追加します。リクエストの実行中にライブセッションを介してサーバーがクライアントへ接続する代わりに、入力要求とrequestStateという不透明な状態を含むInputRequiredResult型の結果を返します。

クライアントは、ユーザーへの確認要求、言語モデルの呼び出し、ワークスペースのルートの表示など、要求された処理を実行します。その後、inputResponsesとrequestStateを付けて同じツール呼び出しを再送信します。この処理は複数ラウンドにわたって繰り返すことができ、継続性に関する情報はペイロード内で引き渡されるため、処理にセッションは必要ありません。

高レベルのMcpClientは、適切なハンドラーを登録した後、MRTRを自動的に処理します。また、セッションがステートフルな場合、リリースは古いクライアントとの互換性ブリッジを使用できます。セッションなしで動作する古いクライアントはマルチラウンドの対話を実行できないため、ツールは必要な値を呼び出し引数に直接渡すなど、代替経路を提供する必要があります。

互換性と利用可能なパッケージ

1.xの安定しており非廃止のAPIは、2.0でも引き続きコンパイルおよび実行できます。廃止された変更は削除ではなく警告として表示されます。2.0のクライアントは、古いサーバーに接続する際に従来の初期化ハンドシェイクを使用でき、2.0のサーバーも古いクライアントからのそのハンドシェイクを受け入れます。

プロトコル互換性における唯一の例外はTasks拡張です。2.0で再設計された仕様は、2025-11-25仕様に存在する実験的なTasksに取って代わるものであり、インターフェースレベルでもプロトコルレベルでも互換性がありません。Tasksは現在、独立したModelContextProtocol.Extensions.Tasksパッケージで提供され、実験的なMCP AppsはModelContextProtocol.Extensions.Appsに含まれています。

コアパッケージには、クライアントと低レベルコンポーネント向けのModelContextProtocol.Core、ほとんどのサーバー向けのModelContextProtocol、Streamable HTTPサーバー向けのModelContextProtocol.AspNetCoreが含まれます。記事では、2.xシリーズにおける次の重点分野は、OAuthおよびOpenID Connectとのより緊密な互換性に基づく、包括的な認証と認可になると述べています。

ニュースの出典
ف
著者

فريق تحرير certi.news

同じカテゴリー

おすすめ記事

すべてのニュースを見る