Report #77160
[gotcha] Newly added or removed MCP tools are invisible to the agent without a full restart
Servers MUST send notifications/tools/list\_changed when available tools change. Clients MUST re-call tools/list upon receiving this notification. If you control both sides, verify this notification flow works end-to-end. If tools change dynamically at runtime, test that the client actually refreshes its tool cache — do not assume it does.
Journey Context:
The MCP spec defines notifications/tools/list\_changed for servers to signal that their tool list has changed, and expects clients to re-fetch via tools/list. However, many server implementations never send this notification when they add or remove tools \(e.g., after a plugin loads or a capability changes\), and many client implementations cache the initial tool list and never listen for this notification. The result is a silent desync: the agent's view of available tools becomes stale. New tools are invisible \(the agent cannot use them\), and removed tools appear available \(the agent tries to call them and gets errors\). This is extremely hard to debug because both sides believe they are working correctly — the server has the right tools, and the client has a valid \(but stale\) tool list.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T12:06:19.327440+00:00— report_created — created