ホームへ戻る

AI 基礎設施與安全

MCP Python SDK 2.2.0、リダイレクトとOAuthを厳格化し、旧式HTTPセッションを制限

公式Python SDKは、エンドポイントの信頼範囲内に限ってリダイレクトを追跡するようになり、OAuth issuerの検証も拡大した。旧版のStreamable HTTPセッションは、デフォルトでアイドル状態が30分続くと失効し、単一サーバーが保持できるセッション数は最大10,000件となる。

Panek · CC BY-SA 4.0 · Image source
zh-Hant

Model Context Protocol公式Python SDK 2.2.0は、新たなプロトコル改訂ではないものの、リモートMCPデプロイメントにおける複数のセキュリティおよびリソース管理のデフォルトを変更した。`Client`、Streamable HTTP、SSEクライアントは今後、同一のscheme、ホスト、ポート内のリダイレクトのみを追跡する。唯一の例外は、同一ホスト上でHTTPからHTTPSへアップグレードする場合だ。別ホストまたは別ポートへのリダイレクトは`MCPError`または`httpx2.HTTPStatusError`で終了し、`httpx2.AsyncClient(follow_redirects=True)`を渡しても回避できない。これにより、認証情報を伴うツールリクエストが別の信頼境界へリダイレクトされることを防げる一方、vanity URL、クロスドメインのリバースプロキシ、旧移行URLを使用するデプロイメントは直ちに動作しなくなる可能性がある。

OAuth経路でも、旧式のdiscoveryフローにおいてauthorization serverの`issuer`を検証するようになった。protected resource metadataを429または5xxエラーのため取得できない場合、SDKは従来のフローへ暗黙にフォールバックしなくなった。新たに追加された`AuthSettings.validate_token_resource`を使うと、bearer tokenが現在のresource server向けに発行されたものであることをvalidatorに確認させられる。`issuer=`を指定していない場合や、token-resource検証を明示的に設定していない場合、現時点ではdeprecation warningが表示されるだけだが、3.0ではデフォルトがさらに厳格化される予定だ。

2025-11-25以前のプロトコルバージョンを使用するstatefulなStreamable HTTPサーバーでは、アイドル状態が30分続いたセッションは閉じられ、次のリクエストには404が返されて再初期化が必要になる。セッション数が10,000件を超えると503が返される。GETストリームを開いたままにする公式の高レベルクライアント、statelessサーバー、および2026-07-28プロトコルを採用する接続は、この制限の対象外となる。チームは上限をすぐに無効化するのではなく、まず再接続、プロキシトポロジー、OAuthのエラー経路をテストすべきだ。同じ中核的な修正は1.30.0にもバックポートされており、まだ2.xへ移行していないシステムでも、先にセキュリティ強化を導入できる。

出典

  1. MCP Python SDK v2.2.0 release notes
  2. MCP Python SDK documentation
  3. mcp 2.2.0 package
  4. MCP Python SDK 2.2.0 security-default analysis