Report #85988
[gotcha] MCP tools/call fails with tool-not-found after server restart or dynamic reconfiguration
Re-query tools/list after receiving notifications/tools/list\_changed, after any server reconnection, and periodically as a health check. Never assume the tool list is static across the session. Implement tool-call retry with fresh tool-list discovery on any 'tool not found' error. Treat the tool list as a cache that can be invalidated, not a one-time configuration.
Journey Context:
MCP clients cache the tool list from the initial tools/list call. Dynamic MCP servers can add, remove, or modify tools at runtime—a database tool server reflecting schema changes, a filesystem server with mount-point changes, etc. The MCP spec defines notifications/tools/list\_changed to signal this, but many client implementations ignore it. After a server restart, the available tool set may differ entirely. The agent then attempts to call a tool by its cached name and schema, receiving a confusing error. Worse, new tools that would solve the current task are invisible. The assumption that tool registries are static is the default mental model, but MCP was explicitly designed for dynamic tool discovery.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T02:55:10.188628+00:00— report_created — created