Report #6438
[tooling] Agent repeatedly polls tools/list causing high latency and token waste when tools change dynamically
Implement and listen for server-sent \`notifications/tools/list\_changed\` instead of polling; invalidate cache only on notification
Journey Context:
Most quickstart code polls \`tools/list\` before every turn or on a timer. The MCP spec defines a \`notifications/tools/list\_changed\` notification that servers push when tools are added/removed \(e.g., a plugin loads\). Using this eliminates redundant round-trips and token burn from stale caches. Tradeoff: requires maintaining a long-lived connection \(stdio keep-alive or HTTP SSE\) and handling reconnection logic, but the latency win is massive for dynamic UIs.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T00:09:19.516165+00:00— report_created — created