Quick answer
In MCP 2026-07-28, servers must implement server/discover to advertise supported protocol versions, capabilities, and identity. Clients may call it before another request for up-front selection or use it as a backward-compatibility probe on STDIO.
Discovery does not replace the request contract. Every request still carries protocol version and client capabilities in _meta.
Version-selection flow
- Call
server/discoverwhere the transport and server support the new revision. - Intersect the server’s supported versions with the client’s tested versions.
- Select one version explicitly; do not silently guess the newest string.
- Send the version and client capabilities on every request.
- Validate server identity and result metadata where required by the implementation.
- Treat
UnsupportedProtocolVersionErroras a negotiation failure, not a retry loop. - Record selected version, SDK revision, server identity, and compatibility path in traces.
Error and downgrade boundaries
The changelog assigns UnsupportedProtocolVersionError code -32022. A downgrade should occur only to a version the client and server both advertise or a separately tested legacy path. Never remove security or capability requirements simply to make a call succeed.
| Signal | Safe response |
|---|---|
| No common version | Stop and report incompatibility |
| Missing required capability | Stop or choose a documented alternative |
| Header/body mismatch | Fix the request; do not retry unchanged |
| Legacy STDIO server | Use the tested backward probe and legacy adapter |
Use the compatibility guide for mixed versions and the migration guide for rollout.
Frequently asked questions
What does server/discover advertise?
Supported protocol versions, capabilities, and server identity.
Must it be called first?
No. Clients may use it for up-front selection or backward probing.
What is the unsupported-version code?
The 2026-07-28 changelog assigns -32022.
Official source
Source check: August 6, 2026. Verify final schemas, error types, and SDK handling before implementation.