requires-version-header · Protocol versioning
initialize succeeds, but every following request (tools/list, tools/call) fails with HTTP 400 unless an MCP-Protocol-Version header is sent. Clients that negotiated 2024-11-05 never send it and break.
The server enforces the 2025-06-18 MCP-Protocol-Version header requirement on all sessions, including older clients that pre-date it.
Only require the header for sessions that negotiated 2025-06-18+; assume the negotiated version when it's absent.
curl -sS -X POST \
https://chaos-mcp.thomascdnns.com/s/requires-version-header/mcp \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {},
"clientInfo": {"name": "curl", "version": "1"}
}
}'