Version
@modelcontextprotocol/server-everything 2026.8.31
Node.js 26.5.0
macOS arm64
Reproduction
- Start the Everything server over stdio.
- Call trigger-long-running-operation with duration 2 and steps 4.
- Cancel the request after 400 ms.
- Call echo on the same session.
- Close the client with a 400 ms cleanup limit.
Observed
The operation timed out at about 403 ms and echo succeeded on the same session. Client cleanup then exceeded 400 ms.
This reproduced three times. Normal stdio cleanup passed when no operation was cancelled. The equivalent Streamable HTTP test also cleaned up normally.
The long-running tool waits on timers and does not check request cancellation, so the handler can continue after the client cancels it.
Expected
The demonstration operation should stop after cancellation so stdio shutdown is not delayed by the original timer loop.
Report
The commands and test results are in anilloutombam/mcp-failure-lab#89: anilloutombam/mcp-failure-lab#89
Version
@modelcontextprotocol/server-everything 2026.8.31
Node.js 26.5.0
macOS arm64
Reproduction
Observed
The operation timed out at about 403 ms and echo succeeded on the same session. Client cleanup then exceeded 400 ms.
This reproduced three times. Normal stdio cleanup passed when no operation was cancelled. The equivalent Streamable HTTP test also cleaned up normally.
The long-running tool waits on timers and does not check request cancellation, so the handler can continue after the client cancels it.
Expected
The demonstration operation should stop after cancellation so stdio shutdown is not delayed by the original timer loop.
Report
The commands and test results are in anilloutombam/mcp-failure-lab#89: anilloutombam/mcp-failure-lab#89