Skip to main content

Transports

EDITED MCP speaks Streamable HTTP — a single endpoint that handles both standard request/response and, where needed, server-pushed events over SSE.

TransportUsed here?Notes
stdionoProcess-local; clients spawn the server as a child
SSE (legacy)noReplaced by Streamable HTTP in the 2025-06 spec
Streamable HTTPyesOne endpoint at /mcp accepting POST JSON-RPC

Endpoint

POST https://mcp.edited.com/mcp

No trailing slash. The gateway answers at /mcp; the /mcp/ form gets a 307 redirect to an absolute plain-http URL, which HTTP clients either refuse to follow or follow in a way that drops the request body. Symptoms of the slashed form: bare 307 responses from curl, failed handshakes from SDK clients, and 405 errors from clients that fall back to the legacy SSE transport (EDITED MCP doesn't serve SSE).

Required headers:

HeaderValue
Content-Typeapplication/json
Acceptapplication/json, text/event-stream
MCP-Protocol-Version2025-06-18
x-api-keyYOUR_API_KEY

The body is a single JSON-RPC 2.0 envelope.

Authentication

Every request must carry an x-api-key header. Without a key — or with one that isn't enabled for MCP — the server replies 401 Unauthorized. Replace YOUR_API_KEY above with your own key; see Authentication & access for how to get one and keep it safe.

Response shape

The server replies with one of:

  • Content-Type: application/json — a single JSON-RPC response (most calls)
  • Content-Type: text/event-stream — an SSE stream of one or more responses, used for long-running operations and progress notifications

Stateless mode

The server runs statelessly, so:

  • Every request is independent — no session ID to track
  • No per-client state lives between calls
  • Any replica can serve any request, so horizontal scaling is trivial

A client that ignores Mcp-Session-Id headers entirely still works against this server — it simply doesn't issue them.

Why HTTP and not stdio?

EDITED MCP depends on shared backend services, so a process-per-client (stdio) model isn't practical. HTTP is the right shape for a service tier; stdio is the right shape for local desktop integrations.

If you specifically need stdio (e.g. air-gapped Claude Desktop), see Recipes → Connect Claude Desktop — Claude Desktop reaches remote servers via the mcp-remote proxy, which bridges stdio to HTTP.