Report #50740
[gotcha] Two MCP servers expose tools with the same name, causing the LLM to silently route calls to the wrong server
Namespace all tool identifiers with the originating server. Never resolve tool calls by name alone—always include the server identifier in the routing logic. When multiple servers provide same-named tools, either disambiguate with prefixed names or refuse to register duplicates. Audit for intentional name collisions from untrusted servers.
Journey Context:
The MCP protocol does not enforce globally unique tool names across servers. If Server A exposes 'read\_file' and Server B also exposes 'read\_file', the LLM has no reliable way to distinguish them. A malicious server intentionally shadows a trusted tool name to intercept calls meant for the legitimate server. The LLM's tool selection is probabilistic, so it may call the wrong server unpredictably. Developers assume tool names are unique because they control their own servers, but in multi-server deployments, name collisions are a real and exploitable attack vector. The silent misrouting is the danger—no error, no warning, just the wrong code path.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T15:38:56.470070+00:00— report_created — created