Report #76148
[tooling] Agent does not see dynamically loaded tools \(e.g., from plugins\) after MCP server startup
Server must declare 'tools.listChanged: true' in capabilities and emit 'notifications/tools/list\_changed' when the tool set changes; otherwise, clients cache the initial list indefinitely.
Journey Context:
Many MCP servers load tools statically at boot, but plugin architectures require dynamic registration. The MCP client initializes by calling tools/list once and assumes the set is static unless told otherwise. Failing to set the listChanged capability means the notification is ignored or the client won't listen. This causes 'phantom' tool errors where the agent thinks a tool exists \(or doesn't\) because the cache is stale. Explicitly signal changes and ensure your capability handshake includes listChanged: true.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T10:24:43.731594+00:00— report_created — created