Model Context Protocol (MCP) の Python SDK がバージョン 2.1.0 をリリースし、マルチモーダルコンテンツのサポートとクライアント設定の簡素化を導入しました。主な更新内容は以下の通りです。

  • プロンプトメッセージで `Image` と `Audio` が受け入れ可能になり、プロンプト関数はプレーンなコンテンツブロックを返すことができます。
  • `Client` クラスは `StdioServerParameters` を直接受け取り、`Client(StdioServerParameters(command="uv", args=["run", "server.py"]))` のようにインスタンス化できます。
  • 4 MiB のリクエストボディ制限が、`max_request_body_size` を介して SSE トランスポートと OAuth エンドポイントで適用されるようになりました。
  • ハンドラーの例外は ERROR レベルでトレースバックとともにログに記録され、クライアントには一般的なエラーメッセージが表示されます。`ToolError` または `ResourceError` を発生させることで、モデルに対して詳細が保持されます。
  • コンテンツブロックに対するツール戻り値のアノテーションは、デフォルトで `outputSchema` を宣伝したり `structuredContent` を返したりしなくなりました。以前の動作を復元するには `structured_output=True` を使用します。
  • TypedDict のツール結果では、`NotRequired` キーがシリアライズされて `null` として出力されるのではなく省略され、Python 3.10 での登録失敗が修正されました。

これらの変更により、トランスポート全体でリクエストサイズを制限することでセキュリティが向上し、クライアント設定の簡素化によって開発者体験が改善され、2026年以前の MCP セッションとの互換性が確保されます。