Files
ARTEX/mcphttp
htjulia 934568f336 fix(mcp): negotiate protocol version with fallback
The Streamable HTTP client always offered 2025-06-18 and kept sending
that MCP-Protocol-Version header after initialize, ignoring the
version the server answered with. A server that only supports
2025-11-25 negotiates its own version and then rejects every later
request with 400, so none of its tools load. Servers that validate
the header on initialize itself reject the handshake outright, and
the client never retried with another version.

- Offer 2025-11-25 first and fall back to 2025-06-18 when the server
  rejects the version: HTTP 400 "Unsupported protocol version",
  JSON-RPC -32602, or an UNSUPPORTED_PROTOCOL_VERSION code
- Send the protocolVersion from the initialize result on later
  requests
- Keep the legacy HTTP+SSE transport on 2024-11-05

Closes #131

Tags: #mcp
Co-Authored-By: htjulia <htjulia1@gmail.com>
2026-11-02 15:40:45 +09:00
..