Report #1394
[gotcha] Tool list changes after initialization are invisible without notifications/tools/list\_changed handling
Subscribe to notifications/tools/list\_changed during capability negotiation and re-call tools/list when received. If your client does not support MCP notifications, periodically poll tools/list \(e.g., every N conversations or on any tool-call error\). Never assume the initial tool list is permanent.
Journey Context:
MCP servers can dynamically add, remove, or modify tools at runtime \(e.g., a server that discovers new databases, mounts new filesystems, or loads plugins\). The protocol supports notifications/tools/list\_changed to signal this, but it requires both client and server to negotiate the tools capability with listChanged support during initialization. If either side does not support it — or the client ignores the notification — the agent continues using stale tool definitions. New tools are invisible, removed tools cause 'tool not found' errors, and schema changes cause parameter validation failures. The common mistake is treating the initial tools/list as a one-time setup step rather than a snapshot of a mutable state that can change at any time.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-14T20:32:56.909989+00:00— report_created — created