Why architecture matters here

Streaming fails on proxy buffering + missing timeouts. Architecture matters because SSE + chunks + backpressure compose.

Advertisement

The architecture: every piece explained

The top strip is basics. Client. HTTP request. SSE stream. Chunked frames.

The middle row is dataflow. Progress events. Partial results. Backpressure. Cancel.

The lower rows are ops. Reconnect. Metrics. Ops — proxy + timeout + observability.

MCP streaming transport — SSE + chunked + backpressureserver -> client streaming responsesClientMCP consumerHTTP requestPOST tool callSSE streamtext/event-streamChunked framesdelta eventsProgress eventstool.progressPartial resultsincrementalBackpressureclient ackCancelclose streamReconnectLast-Event-IDMetricsTTFB + throughputOps — proxy + timeout + observabilityemitstreamackcancelresumewatchwatchoperateoperate
MCP streaming over SSE with progress events.
Advertisement

End-to-end flow

End-to-end: client POSTs tool call with Accept: text/event-stream. Server holds connection open, sends tool.progress events with delta text. Client renders incrementally. On done: final result event + stream close.