modelcontextprotocol / modelcontextprotocol/typescript-sdk
[v2] _resetTimeout never updates startTime, so totalElapsed keeps accumulating from the original
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 13.4k
- Forks
- 2.2k
- Avg merge
- 3d 15h
- Merged PRs (30d)
- 4
Description
What happened?
The timer isn't reset when a progress notification arrives, so a long-running tool call will timeout even though progress notifications are being sent.
The inspector SDK migration guide suggests that the behavior of MCP_REQUEST_TIMEOUT_RESET_ON_PROGRESS is "always on; no longer configurable", but this bug makes that untrue.
What did you expect?
Each progress notification should cause the MCP tool call request timeout to reset.
Code to reproduce
See originally reported issue here
SDK version
2.0.0
Area
Client
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start at the v2 client’s _resetTimeout entry point and trace how progress notifications reach the MCP tool call timeout. Compare the behavior with the migration guide’s MCP_REQUEST_TIMEOUT_RESET_ON_PROGRESS description. Done means each progress notification resets the timeout so a long-running call with ongoing progress does not time out.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- api
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 72/100