Resumability
Resumability is a concept that means that, if a client loses connection with a server while data is being transferred, upon reconnecting with the server, it can resume the data exchange where it was, rather than starting from the beginning. For long-running operations, this can be a game-changer. Technically, resumability can be achieved by both SSE and Streamable HTTP, but within the context of the MCP protocol, it’s only supported for Streamable HTTP.
Let’s illustrate it with a diagram:

Figure 5.1 – Resumability
As you can see from the preceding diagram, the client doesn’t have to restart from the beginning but can resume where they were. This works because the client, upon reconnecting, sends mcp-session-id and last-event-id headers. It’s important to note that upon disconnecting, the client needs to do so gracefully, so it stores these two headers for later use.
What needs to be done on the server side to support...
 
                                             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
             
     
         
                 
                 
                 
                 
                 
                 
                 
                 
                