Tools
The MCP Python SDK now validates the OAuth authorization server issuer on every discovery path, including the legacy fallback
PR #3398, merged 2026-09-02T15:51Z, makes the OAuth client fix its expected issuer before fetching any authorization server metadata. On the 2025-03-26 legacy fallback path (no protected resource metadata) the document's `issuer` was never checked and stored-credential binding was re-evaluated against whatever issuer the document named, contrary to RFC 8414 section 3.3. Discovery now computes the expected issuer once, validates unconditionally, and stops rather than falling through to the legacy path when a resource-metadata location returns 5xx or 429, so a transient failure cannot walk a client with a bound registration onto the weaker path.
Source
↳ Follow the thread