マイクロソフト、MCP C# SDK 2.0を安定版として公開、HTTP通信をデフォルトでステートレス化
2026年10月29日 · 読了 1 分
マイクロソフトは、モデルコンテキストプロトコル(MCP)の公式C# SDKの安定版2.0を公開した。このリリースは2026年7月28日改訂版の仕様を実装し、ストリーム可能HTTPサーバーをデフォルトでステートレスにする。また、HTTPヘッダーを標準化してインフラストラクチャがトラフィックをルーティングできるようにし、対話型ツール向けにマルチラウンドトリップリクエスト(MRTR)を導入した。8月から10月にかけて2.1から2.3までのマイナーリリースが続いた。
MCPは、大規模言語モデルにコンテキストやツールを供給する方法を標準化するオープンプロトコルである。C# SDKはマイクロソフトと協力して維持され、ASP.NET Coreを基盤としている。SDKチームは、この仕様改訂がHTTP上でのMCPの動作を再考しているため、プロトコル開始以来最大のものだと説明している。
初期化ハンドシェイクとセッション識別ヘッダーは廃止された。プロトコルバージョンと機能はすべてのリクエストに付随するため、スティッキールーティングや共有セッションストアなしで、任意のサーバーインスタンスが任意のリクエストを処理できる。ステートレス設定はデフォルトで有効となり、セッションが必要なサーバーはこれを無効にする。クライアントはまずサーバーの発見を試し、古いサーバーには従来のハンドシェイクにフォールバックする。ステートフル専用オプションや従来のSSEエンドポイントは警告を発生する。
ツール呼び出しリクエストにはメソッド名とツール名を示すヘッダーが付与される。ツールパラメーターをヘッダーに昇格させる属性も追加された。これにより、ロードバランサーやゲートウェイはボディを読み取らずにヘッダーに基づいてルーティングできる。ボディが権威を持つため、ヘッダーと不一致の場合、サーバーはエラーを返す。
ステートレス化により、呼び出し中にクライアントへ入力を求めるチャネルは廃止された。MRTRは、ツールが例外をスローし、入力要求と不透明な状態をクライアントに送ることでこれを代替する。クライアントは回答を集め、入力応答を付けて呼び出しを再発行する。クライアントライブラリはハンドラーが登録されている場合、これを自動的に処理する。ステートフルセッションでは旧方式にブリッジするが、ステートレスの旧バージョン接続では例外として表面化する。
安定版1.xのAPIは引き続き動作する。ただし、タスク機能はオプトインのパッケージに移行し、1.3と1.4の実験版とは互換性がない。MCPアプリを扱う実験パッケージも提供される。リリースノートには、発行者の検証やPKCEのサポートなど、より厳格なOAuth動作も記載されている。パッケージは.NET 8、9、10および.NET Standard 2.0をターゲットとする。
2.1ではカスタム通知ストリーム用のハンドラーと、HTTP層での発見失敗時のフォールバックが追加された。2.2では、異なる仕様改訂のクライアントが1つのエンドポイントを共有できるモードが導入され、エンコーダーの例外が修正された。2.3ではサーバー情報のフィールドがnull可能となり、これは破壊的変更である。また、ヘッダー送信のタイミングやタイムアウト設定、標準入力サーバーの終了処理などが調整された。