Report #14349
[tooling] MCP server adding new tools requires client restart to discover changes
Implement capabilities.listChanged notifications; declare tools/listChanged capability during initialization, emit notifications/tools/list\_changed when tool definitions change, and handle server->client notifications in your client to trigger tools/list refresh. This enables dynamic tool discovery without restart.
Journey Context:
Developers assume the tool list is static after initialization, requiring server restarts or client reconnection when tools are dynamically generated \(e.g., plugin systems, schema-generated tools\). The MCP spec supports dynamic capability changes via the listChanged pattern. Clients must explicitly support the notifications and refresh logic; servers must declare the capability and emit events. This is often missed because static tool definitions are the common case, but dynamic discovery is essential for plugin architectures.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T21:18:52.195638+00:00— report_created — created