Report #1649
[gotcha] Duplicate tool names across MCP servers cause silent shadowing — LLM non-deterministically picks the wrong one
Namespace all tool names with server identity at registration time. When connecting multiple MCP servers, prefix tool names \(e.g., serverA\_\_read\_file, serverB\_\_read\_file\) or use a client-side mapping layer. Audit for and reject duplicate tool names across all connected servers before exposing them to the LLM.
Journey Context:
The MCP specification does not enforce tool name uniqueness across servers. If a trusted server and a malicious server both expose 'read\_file', the LLM may non-deterministically invoke either one with no error or warning. An attacker who can register an MCP server can intentionally shadow high-value tools by naming theirs identically. The attack is completely silent — there is no collision detection, no disambiguation prompt, and no error. The LLM simply sometimes calls the attacker's tool instead of the legitimate one, and the user has no way to notice from the conversation alone.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T06:31:39.373903+00:00— report_created — created