Skip to content

HTTP SSE Endpoint returns 405 Method Not Allowed for standard GET connections (Breaks Generic MCP Clients) #86

@krasmussen37

Description

@krasmussen37

The remote MCP endpoint (https://mcp.exa.ai/mcp) is currently rejecting standard Server-Sent Events (SSE) connection attempts that use the HTTP GET method, returning a 405 Method Not Allowed error.

While some clients (like Claude Code) appear to connect successfully (likely by using POST for the handshake or specific headers), this strict requirement breaks compatibility with generic MCP clients (such as the Gemini CLI) that adhere to the standard EventSource behavior of initiating connections via GET.

Reproduction Steps:

# Attempt a standard SSE connection (mimicking generic MCP clients)
curl -v -H "Accept: text/event-stream" "https://mcp.exa.ai/mcp?exaApiKey=YOUR_KEY"

# Response:
# < HTTP/2 405
# < {"jsonrpc":"2.0","error":{"code":-32000,"message":"Method not allowed."}}

Verified Working Method (Non-Standard):
The server does accept a POST request with a JSON-RPC body, which confirms the server configuration is rejecting GET.

curl -X POST -H "Content-Type: application/json" -d '{"jsonrpc":"2.0","method":"initialize",...}' ...
# Response: 200 OK (Stream starts)

Impact:
Users cannot use the Remote/HTTP configuration for exa-mcp-server with standard MCP clients (like Google Gemini CLI) and are forced to use local npx installations instead.

Suggested Fix:
Allow GET requests to the /mcp endpoint to establish the SSE stream, or update documentation to explicitly state that a custom POST handshake is required.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions