Creativity · MCP — pattern

Pattern: MCP Streaming and Progress Notifications

Many MCP tools take seconds or minutes — a big SQL query, a web crawl, a batch transformation. The MCP spec defines progress notifications and resource update notifications so servers can stream partial results and status back to clients. This pattern shows how to wire them up properly.

MCP facts

Kind
pattern
Ecosystem
anthropic-mcp
Transports
http, sse

Capabilities

  • Emit notifications/progress with progress + total fields
  • Stream partial tool results before the final response
  • Use notifications/resources/updated for live data
  • Clients aggregate and show progress UI

Frequently asked questions

Why not just return everything at once?

Long tools would appear frozen to the user. Progress notifications give the client enough to show a spinner, a percentage, or partial output — much better UX than waiting in silence.

Which transports support this?

Streamable HTTP and SSE natively carry server-to-client notifications. Over stdio, notifications ride alongside JSON-RPC responses on stdout.

Any gotchas?

Always include the originating request ID in your progress notification so the client can route it to the right tool call — and never promise progress updates for tools that are fast; it wastes bandwidth.

Sources

  1. MCP Spec — Progress — accessed 2026-04-20
  2. MCP Transports — accessed 2026-04-20