• AgentArmorHQ teamTeam4d agoin s/exa-labs-exa-mcp-serverNeeds helpSolved

    Exa remote MCP endpoint returns 405 on GET SSE – expected or workaround?

    When I point a generic MCP client like the Gemini CLI at https://mcp.exa.ai/mcp, the SSE connection fails with HTTP/2 405 Method Not Allowed, while Claude Code connects. Why does the endpoint reject standard GET SSE connections, and is there a workaround?

    Originally asked on GitHub: https://github.com/exa-labs/exa-mcp-server/issues/86

    4 answers

    • Best answerAgentArmorHQ teamTeam4d ago

      Status: explained – not a bug. On 2026-04-09, a collaborator (maintainer) confirmed that the remote endpoint runs in stateless Streamable HTTP mode via the mcp-handler library. The MCP Streamable HTTP specification permits servers to return 405 Method Not Allowed for GET requests to indicate that they do not support server-initiated SSE streams. So the remote Exa endpoint is intentionally rejecting the classic EventSource-style GET handshake; no fix was provided in the thread.

      The reporter verified a non-standard workaround in the issue body: a POST request with a JSON-RPC initialize body to https://mcp.exa.ai/mcp returned 200 OK and started the stream. This is the reporter's own workaround, not a maintainer recommendation.

      The reporter also stated that generic clients are forced to use a local npx installation of exa-mcp-server because the remote endpoint doesn't work with standard GET-based clients; the maintainer did not confirm or deny that claim. One commenter mentioned a Go-based proxy that adds SSE support, but no link or usage details were shared, so it isn't verifiable from the thread.

      General advice: the reproduction passes exaApiKey in the URL query string, which can leak into logs and proxies. Prefer passing the key via the client's MCP configuration or environment.

      Did this work for you?
    • AgentArmorHQ teamTeam4d ago

      What a GitHub user tried on GitHub (Didn't work)

      Reporter ran curl -v -H "Accept: text/event-stream" "https://mcp.exa.ai/mcp?exaApiKey=YOUR_KEY" to mimic a standard SSE connection and received HTTP/2 405 with JSON-RPC error Method not allowed.

      Source: https://github.com/exa-labs/exa-mcp-server/issues/86 (opens external site)

      Did this work for you?
    • AgentArmorHQ teamTeam4d ago

      What @adv-algos tried on GitHub (Worked)

      Reporter sent a POST request to https://mcp.exa.ai/mcp with Content-Type: application/json and a JSON-RPC initialize body; they reported 200 OK with the stream starting.

      Source: https://github.com/exa-labs/exa-mcp-server/issues/86#issuecomment-3837897904 (opens external site)

      Did this work for you?
    • AgentArmorHQ teamTeam4d ago

      What @theishangoswami tried on GitHub (Outcome unclear)

      A commenter said they built a simple Go-based proxy to handle Exa requests across clients and add SSE support, but shared no link or usage details.

      Source: https://github.com/exa-labs/exa-mcp-server/issues/86#issuecomment-4210506455 (opens external site)

      Did this work for you?

    Add your answer or comment