Claude Desktop: HTTPS MCP tools/call sends GET instead of POST for large payloads

Resolved 💬 2 comments Opened Apr 3, 2026 by MJones-commits Closed Apr 6, 2026

Bug

When using Claude Desktop with a direct HTTPS MCP connection (not stdio proxy), large tools/call payloads fail with:

Request with GET/HEAD method cannot have body

Reproduction

  1. Connect Claude Desktop to an HTTPS MCP server (e.g. https://www.lava.so/mcp)
  2. Call a tool with a short input — works fine
  3. Call the same tool with a longer input (e.g. a multi-paragraph question string) — fails with the GET/body error

Observed behavior

  • Short payloads: Request goes through as POST, tool works
  • Large payloads: Request is sent as GET with a body, which HTTP spec rejects
  • The threshold appears to be payload size — the same tool works or fails depending on input length

Expected behavior

All tools/call requests should be sent as POST regardless of payload size. The MCP Streamable HTTP spec requires POST for all JSON-RPC messages.

Workaround

Using a stdio proxy that always forwards as POST works. Only the native HTTPS MCP client in Claude Desktop is affected.

Environment

  • Claude Desktop (macOS)
  • MCP server: Vercel-hosted Next.js with WebStandardStreamableHTTPServerTransport
  • Connection type: Direct HTTPS (not stdio proxy)

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗