Claude can now tell whether an MCP tool list refresh came from a reconnect or a server notification.
What's wrong with this entry?
Refresh handlers now know why they ran, so a refetch caused by a reconnect is distinguishable from one caused by a server notification.
- Tools, prompts and resources refresh handlers take a cause argument.
- When the refetch came from a listen-stream reopen rather than a notification, the debug log says so.
- The
tengu_mcp_list_changedevent carries a newcausefield. - The prompts and resources events moved: they are now emitted after the refresh completes instead of before it starts.
Synthesized tools refetch after listen-stream reopen (no notification received)
Strings lifted out of the shipped bundle, so the claim above can be checked against them.