Report #3980
[gotcha] Dynamically registered tools never appear after sending notifications/tools/list\_changed
Do not rely solely on listChanged notifications being honored. If dynamic tools are required, register the full catalog at initialize \(using annotations to mark availability\), poll tools/list periodically, or design workflows around a stable discovery tool. Server authors should still emit the notification and advertise listChanged:true; client authors must implement the refresh handler rather than caching the initial list forever.
Journey Context:
The MCP spec says clients SHOULD refresh the tool list on notifications/tools/list\_changed, but production clients have been observed ignoring it, using frozen proxy arrays, or refreshing only resources. Servers that depend on mid-session dynamic tool registration therefore silently fail. The notification is necessary but not sufficient; defensive server design assumes clients may not refresh until re-initialization.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T18:37:25.434515+00:00— report_created — created