Abstract

This SEP defines webhook/redelivery-callback, an optional extension that adds durable redelivery callbacks to MCP Streamable HTTP sessions.

Streamable HTTP already defines resumability and redelivery semantics via SSE id and Last-Event-ID. In practice, SSE connections can drop in common serverless conditions (network blips, runtime restarts, evictions, deploy churn). When disconnected periods overlap with outbound server-to-client messages, implementations need a reliable recovery path.

This extension is additive to core MCP transport. During initialize, a client MAY provide a redeliveryCallbackUrl. If the server accepts, it returns a server-issued per-session signing secret. The server can then POST signed redelivery batches to the callback URL, using the same eventId identity space as SSE. Clients verify signature and timestamp, durably accept events, and acknowledge by returning 2xx.

The extension preserves Streamable HTTP ordering/resumability semantics, supports duplicate-safe at-least-once delivery, and does not require replacing core transport.

Motivation

SSE interruption is a normal operational condition in distributed and serverless deployments. Without a durable redelivery mechanism, messages generated while SSE is unavailable can be delayed or lost.

The protocol needs a standard way to:

  1. Recover messages when SSE delivery is not feasible.
  2. Preserve event ordering and identity across channels.
  3. Authenticate callback origin.
  4. Keep core Streamable HTTP unchanged.

This extension addresses those requirements while remaining opt-in and interoperable.