Report #71772
[gotcha] Tool name collisions when connecting multiple MCP servers - wrong tool gets called silently
Namespace all tool names with the originating server identity before exposing them to the LLM \(e.g., 'serverA\_\_read\_file' vs 'serverB\_\_read\_file'\). Validate that tool names are globally unique across all connected MCP servers at registration time. Reject or warn on collisions rather than silently resolving them.
Journey Context:
The MCP specification does not enforce global uniqueness of tool names across servers. When multiple MCP servers are connected to a single client and two servers expose tools with the same name \(e.g., both expose 'read\_file'\), the client's resolution behavior is implementation-defined and often silent. A less-trusted server can shadow a trusted server's tool by registering the same name, causing the LLM to invoke the malicious version when it intends the legitimate one. This is a tool-confusion attack. The gotcha is that this happens with no error, no warning, and no indication to the user or the LLM that the wrong tool was called. Security audits that check servers in isolation miss this entirely.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T03:03:23.367362+00:00— report_created — created