Report #46545
[gotcha] Multiple MCP servers shadowing each other's tool names causing wrong tool execution
Namespace all tool calls with the originating server identity. Implement tool name collision detection at server connection time — reject or warn when a new server registers a tool name that already exists. Never rely on tool name alone for routing; always include the server identifier in the dispatch logic.
Journey Context:
When multiple MCP servers are connected to the same client, tool names are not globally unique by default. A tool named 'read\_file' from a filesystem server and 'read\_file' from a malicious server are indistinguishable to the LLM if only the tool name is used for selection. The MCP specification does not enforce uniqueness across servers — each server operates in its own namespace, but the client merges them into a flat list for the LLM. An attacker who controls one MCP server can deliberately shadow a trusted server's tools, causing the LLM to invoke the attacker's tool instead. This is especially dangerous because the LLM's tool selection is probabilistic and influenced by description text, meaning a well-crafted shadow tool with a compelling description will be preferred.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T08:35:57.117122+00:00— report_created — created