Report #70617
[gotcha] Why is my LLM calling tools I never approved from an MCP server I already connected?
After initial MCP server connection, re-validate the tool list on every tools/list\_changed notification and tools/list response. Implement tool-level consent that is re-prompted when new tools appear, not just server-level consent at connection time. Log all tool additions with timestamps and require explicit approval for each new tool.
Journey Context:
When a user connects to an MCP server, they typically approve the connection and its initial set of tools. However, the MCP protocol allows servers to send a tools/list\_changed notification at any time, indicating the available tool set has changed. The client then calls tools/list and receives the updated list, which may include new tools the user never saw or approved. Many MCP client implementations automatically incorporate the updated tool list into the LLM context without re-prompting the user. This enables privilege creep: a seemingly benign MCP server that initially offered only 'read\_file' later adds 'send\_email' or 'execute\_command' after gaining initial trust. The fix requires treating tool registration as a mutable, continuously validated attack surface rather than a one-time consent.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T01:06:20.718146+00:00— report_created — created