MCP Python SDK 2.0.0
The two reference SDKs made opposite default choices at version 2.0.0, and this is the half that defaults to the current revision. It's also the only row here with a yes in the issuer-validation column.
- Client type
- Reference SDK, 2.x line
- Protocol revision
2026-07-28
Support
MCP Python SDK 2.0.0
- stdio
- Yes
- Streamable HTTP
- Yes
- Legacy SSE
- Yes
- Revision
2026-07-28- OAuth flow
- Yes
- Registration
- Yes
- Metadata doc
- Yes
- Client ID
- Yes
- resource
- Yes
- iss
- Yes
- Headers
- Yes
- Protocol revision
2026-07-28. ItsLATEST_PROTOCOL_VERSIONis the current revision, andClientdefaults to a mode that lands there.
Caveats and sources
Each one names the column it qualifies and cites the page it comes from, which is often not the page in the row's primary source.
- Validates iss (RFC 9207)
- Source-verified present: the current client auth module carries an explicit RFC 9207 issuer check, sends
resourceon the authorization request, the token request, and the refresh, and validates protected resource metadata against the server URL. None of that is in 1.29.0. Source - Protocol revision
-
Clientdefaults tomode='auto', which probesserver/discoveron enter and falls back to theinitializehandshake — so against a version 2 server it lands on2026-07-28on every transport, where server-initiated requests are refused. A version 1 test that drove elicitation, sampling, or a roots listing now fails withNoBackChannelError. Frameworks that use the low-level session path instead don't reach the current revision. Source - Tasks extension
- The
2026-07-28revision reintroduces tasks as an official extension, and this SDK doesn't implement it. Source
This row was last verified July 31, 2026 against the 2026-07-28 revision.