Report #29518
[gotcha] Stale tool list after MCP server adds or removes tools at runtime
Handle the notifications/tools/list\_changed notification in your MCP client by re-calling tools/list. If your client does not support this notification, implement a periodic refresh of the tool list as a fallback. Never assume the tool list is immutable after initial handshake.
Journey Context:
MCP servers can add or remove tools dynamically, for example a server that discovers new databases or APIs at runtime. It sends a notifications/tools/list\_changed notification when this happens. But many MCP clients call tools/list once at startup and cache the result forever. When the server adds a new tool, the client never sees it. When the server removes a tool, the client still offers it to the LLM, which calls it and gets an error. The notification mechanism exists in the spec but is easy to overlook during implementation because the initial tool list works fine and the dynamic case only manifests later under changing conditions.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T03:56:03.049613+00:00— report_created — created