Follow-up to modelcontextprotocol/modelcontextprotocol#3364 and SEP-2133 negotiation.
Add opt-in client and server scenarios for 2025-11-25 initialization-based extension negotiation. Check both serialization and SDK-visible deserialization of capabilities.extensions, with empty objects and structured settings. A diagnostic tool should expose the peer capabilities actually seen by the SDK so a wire-only test cannot hide parsing loss.
Keep these checks outside core/Tier-1 requirements: extension support is optional. Include passing TypeScript SDK examples and deliberately broken implementations that drop advertisements/settings or fail to report received capabilities. Exclude the newer per-request capability flow from these legacy checks.
This targets the serialization gap documented in #3364; it does not claim that every extension works on every legacy protocol version.
Follow-up to modelcontextprotocol/modelcontextprotocol#3364 and SEP-2133 negotiation.
Add opt-in client and server scenarios for
2025-11-25initialization-based extension negotiation. Check both serialization and SDK-visible deserialization ofcapabilities.extensions, with empty objects and structured settings. A diagnostic tool should expose the peer capabilities actually seen by the SDK so a wire-only test cannot hide parsing loss.Keep these checks outside core/Tier-1 requirements: extension support is optional. Include passing TypeScript SDK examples and deliberately broken implementations that drop advertisements/settings or fail to report received capabilities. Exclude the newer per-request capability flow from these legacy checks.
This targets the serialization gap documented in #3364; it does not claim that every extension works on every legacy protocol version.