MCP Python SDK - MCP公式Python SDK、放置30分でセッションが切れる既定に。1.x系にも同時適用 anchor left anchor right

Sep 08 2026 AIニュース

MCP公式Python SDK、放置30分でセッションが切れる既定に。1.x系にも同時適用

anchor left anchor right

MCP Python SDK は2026年9月7日、現行ラインの v2.2.0 と保守ラインの v1.30.0 を同時公開し、リダイレクト・アイドルセッション・OAuth issuer 検証の3つの既定を締めました。

📖 この記事で分かること

  • アイドル30分でセッションが自動失効する新しい既定
  • リダイレクト追従が同一オリジン内だけに限定された
  • OAuth の issuer 検証範囲が広がり、3.0 で必須化予定
  • 現行の 2.x と保守の 1.x が同じ日に更新された

💡 知っておきたい用語

  • Streamable HTTP: MCPサーバとクライアントがHTTPでやり取りする通信方式。接続を保ったまま応答を流し込める。
  • issuer: 認可サーバが「自分は誰か」と名乗る識別子。名乗りと実体が食い違えば接続を拒否する材料になる。

最終更新日: 2026年9月8日

▶ 公式ページ

MCP Python SDK - MCP公式Python SDK、放置30分でセッションが切れる既定に。1.x系にも同時適用

2つのラインが同じ日に既定を締めた

この記事のポイント

  • MCP公式Python SDK が2026年9月7日に v2.2.0 と v1.30.0(2026年9月時点)を同時公開しました。
  • アイドル30分でセッションが閉じ、同時保持は最大10,000件。超えた分は503を返します。
  • リダイレクトは同一オリジン内のみ追従。運用中のサーバは更新前に設定の確認が要ります。

MCP【エムシーピー】の公式Python SDK が9月7日、現行ラインの v2.2.0 と保守ラインの v1.30.0(2026年9月時点)を同時に公開しました。新しい機能を足すより、これまでの挙動の既定値を締めた更新です。更新は pip install -U mcp で行います。

公式は両方のリリースノートの冒頭で「2.x(1.x)でサーバやクライアントを動かしているなら、まずここに目を通してほしい」と、挙動が変わる項目を先頭に置いています。締まった既定は3つで、どちらのラインにも同じ考え方で入りました。

変わった3つの既定

1つ目はリダイレクトです。クライアントはエンドポイントと同じ scheme・host・port に留まるリダイレクトだけを追い、同一ホストでの http から https への格上げも認めます。それ以外の行き先には追従せず、2.x は MCPError(SSE 接続時は httpx2.HTTPStatusError)、1.x は httpx.HTTPStatusError で失敗します。2.x では失敗してもセッションはそのまま使えます。自分で渡した httpx クライアントの follow_redirects は MCP のリクエストには使われなくなり、末尾スラッシュ対策としても不要になりました。別のURLが本来のサーバなら、そのURLをエンドポイントに指定します。OAuth プロバイダも自身のリクエストに同じ規則を適用します。

2つ目がアイドルセッションの失効です。処理中のものが何も無いステートフルなセッションは30分で閉じられ、クライアントの次のリクエストは404になり、初期化をやり直す必要があります。GETストリームを開いたままにするクライアント(SDK同梱のもの)は影響を受けません。ステートレスなサーバと、2026-07-28 仕様での接続も対象外です。あわせてサーバが同時に持てるセッションは最大10,000件になり、超えた分の新規セッションには503が返ります。どちらも session_idle_timeout=None と max_sessions=None で無効化できます。2.x は mcp.run(transport="streamable-http", ...) のほか streamable_http_app() と run_streamable_http_async() で、1.x は FastMCP(...) で指定します。

3つ目は OAuth の issuer 検証です。2.x では保護リソースメタデータが無いレガシー経路でも、issuer がサーバ自身のオリジンと一致しないメタデータを OAuthFlowError: Authorization server metadata issuer mismatch として拒否するようになりました(保護リソースメタデータ経路では 2.0 から実施済み)。insufficient_scope チャレンジではない403は再試行せず呼び出し元へ返し、保護リソースメタデータが5xx や429で取れないときはレガシーエンドポイントへ落ちず処理を止めます。1.x はクライアント登録を issuer ごとに記憶し、サーバが別の認可サーバを指すようになれば登録し直します。

運用中のサーバに出る影響

利用者が設定を書き換えなくても挙動が変わるため、更新のタイミングで確認が要る箇所が生まれます。長時間なにも流れないセッションを前提にした作りだと、更新後は404を受けて初期化からやり直す前提に変える必要があります。

将来に向けた予告として、非推奨警告が2件増えました(2.x は MCPDeprecationWarning、1.x は DeprecationWarning)。issuer= を渡さない ClientCredentialsOAuthProvider と PrivateKeyJWTOAuthProvider は 3.0 で issuer が必須になり、resource_server_url を設定しながら validate_token_resource を未設定にしている AuthSettings は 3.0 で既定が True になります。どちらも 2.x と 1.x では従来どおり動き、警告をエラー扱いにするテストで引っかかる程度です。

設定側では、このサーバ向けに発行されたとトークン検証が報告するものだけを受け入れる AuthSettings.validate_token_resource が追加されました。2.x はこのほか、クライアントの DELETE でセッションが即座に解放され、拒否された開始リクエストがセッションを残さなくなっています。ツールの outputSchema 内の $ref はそのスキーマ内でのみ解決し、解決できない場合は RuntimeError: Invalid schema for tool ... として表面化します。公式は未実装のものも「Known gaps」として明記しており、tasks 拡張(SEP-2663)、DPoP(SEP-1932)、jwt-bearer グラントは ROADMAP.md で追跡中とされています。

編集部の見方

編集部は、今回の3点のうち運用へ最初に効くのはアイドルセッションの失効だと見ています。

  • 根拠1: 30分の失効と10,000件の上限が既定で入るため、設定に手を触れずに更新すると404と503という形で挙動の差が表に出ます。リダイレクトと issuer は該当する構成でしか踏みませんが、この2つは長く動かしているサーバほど当たりやすい変更です。
  • 根拠2: 同じ内容が保守ラインの 1.x にも同日に入りました。「まだ 2.x へ上げていないから関係ない」という切り分けが成立しません。
  • 根拠3: session_idle_timeout=None と max_sessions=None で従来の挙動に戻せる退避路が公式に用意されています。踏んでから戻す判断ができる分、更新自体を止める理由にはなりません。

この見方が変わる条件は 3.0 です。issuer が必須になり validate_token_resource の既定が True になる時点で、確認の重心はセッション管理から認証設定側へ移ります。


よくある質問

Q: 更新すると必ずセッションが30分で切れるようになりますか

A: 対象は処理中のものが無いステートフルなセッションです。GETストリームを開いたままにするクライアント(SDK同梱のもの)、ステートレスなサーバ、2026-07-28 仕様での接続は影響を受けません。

Q: 従来どおりの挙動に戻せますか

A: 戻せます。サーバの入口で session_idle_timeout=None と max_sessions=None を指定すると、失効と同時接続数の上限をそれぞれ無効化できます。

Q: 1.x を使い続けている場合は関係ありませんか

A: 関係します。リダイレクト・アイドルセッション・issuer 検証の3点は v1.30.0 にも同時に入っており、1.x は失敗時の例外が httpx.HTTPStatusError になる点が 2.x と異なります。


まとめ

MCP公式Python SDK は2026年9月7日、v2.2.0 と v1.30.0 で3つの既定を締めました。リダイレクトは同一オリジン内のみ、アイドルセッションは30分で失効、同時保持は最大10,000件、OAuth は issuer の不一致を拒否します。いずれも設定を変えずに更新すると挙動が変わる種類のもので、無効化の手段は公式に用意されています。3.0 では issuer の指定と validate_token_resource の既定が変わる予告も出ています。


【用語解説】

  • MCP: AIモデルと外部のツールやデータをつなぐための共通仕様。対応したサーバを立てると、複数のAIクライアントから同じ手順で呼び出せる。
  • outputSchema: ツールが返す値の形をJSONで宣言する定義。今回の更新では、内部の $ref をそのスキーマ内でのみ解決するようになった。
  • バックポート: 新しい版で入れた修正を、古い版の系列にも同じ内容で反映すること。今回は 2.x の変更が 1.x へ同日に入った。

引用元:


この記事について: AI 支援で執筆、編集部が事実確認・編集しています。誤りや追加情報があれば Contact よりお知らせください。

anchor left anchor right
KOJI TANEMURA

15 年以上の開発経験を持つソフトウェアエンジニア / テクノロジーライター。AI エージェントの実務活用を研究し、現場や経営者向けセミナーでその知見を発信。本メディア tech-noisy.com では、一次情報に基づく最新ニュース・解説記事を執筆。また、音楽生成 AI による DJ パフォーマンスを企業イベントで行うなど、テクノロジーと表現の融合も探求している。