Report #17163
[gotcha] MCP initialize handshake silently downgrades capabilities — features vanish at tool-call time
After the initialize handshake, log the negotiated protocol version and all advertised capabilities. Explicitly check that every required capability is present before proceeding. Fail fast with a clear error if the server does not support a required capability rather than discovering the absence at tool-call time. Never assume the server supports the latest protocol version.
Journey Context:
The MCP initialize handshake negotiates protocol version and capabilities between client and server. If the server supports an older version the client silently downgrades. This means features like progress tokens, cancellation, sampling, or specific tool capabilities may be unavailable but the client only discovers this when it tries to use them and gets an unrecognized method error. The handshake succeeds so everything looks fine until a tool call fails unexpectedly. The fix is to treat capability negotiation as a contract that must be validated not just accepted.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T04:42:41.377811+00:00— report_created — created