An MCP server receives a shutdown signal while three tool calls are still in flight. What is the correct behavior?
Answer: Finish all in-flight requests, then close the transport cleanly
Graceful shutdown requires draining in-flight requests before closing the transport. Dropping the connection or exiting immediately leaves the client unable to know whether the tools ran — a state-correctness problem. Sending synthetic error responses is a last resort and should be avoided if the operations can complete.