Report #11792
[gotcha] MCP server restarts with different capabilities but client still uses stale capability cache from initial handshake
On any transport error or reconnection, re-run the full initialize handshake; never cache capabilities across connection boundaries; if using long-lived connections, implement a capability invalidation mechanism or version check
Journey Context:
The MCP capabilities \(tools, resources, prompts, sampling\) are negotiated once during initialization. If the server is restarted, updated, or reconfigured, its capabilities may change. But the client typically caches the initial capabilities and doesn't re-negotiate. This leads to the client trying to call tools that no longer exist, or missing newly available tools. The fix: treat reconnection as a new session and always re-run the initialization handshake. This is especially important in development where servers are frequently restarted.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T14:18:13.727495+00:00— report_created — created