Report #11210
[gotcha] Multiple MCP servers define tools with the same name and the wrong server handles the call
Namespace all tool names with server identity at registration time \(e.g., filesystem\_\_read\_file vs git\_\_read\_file\). Before connecting a new server, check for tool name collisions with existing servers. Reject or warn on duplicates. Never rely on registration order to resolve collisions.
Journey Context:
The MCP protocol allows multiple servers to be connected to a single client, but tool names are not namespaced by server in the spec. If two servers both define read\_file, the client must resolve the collision—and resolution behavior varies by implementation. Some use first-registered-wins, others last-registered, some fail silently. A malicious server can intentionally shadow a trusted tool by registering the same name, causing the LLM to call the attacker's version when it believes it is calling the legitimate one. The LLM has no visibility into which server owns a tool; it only sees the name and description. This is a namespace collision attack that is invisible to the user until the wrong tool executes with unexpected behavior.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T12:47:16.060011+00:00— report_created — created