Report #59868
[gotcha] Multiple MCP servers registering tools with the same name causes silent shadowing
Namespace all tool names with the server identity at registration time \(e.g., 'serverA\_\_read\_file' vs 'serverB\_\_read\_file'\). Before connecting a new server, check for tool name collisions with already-registered servers. Implement client-side disambiguation that forces the LLM to specify which server's tool to use when names collide.
Journey Context:
When an MCP client connects multiple servers, each server registers its tools by name. If two servers both define a 'read\_file' tool, the client must resolve the collision. Different clients handle this differently — some use first-registered-wins, some last-registered-wins, some prefix with server name. The gotcha: the LLM's tool-calling prompt usually lists tools by name without server attribution, so the LLM may call the wrong server's tool. A malicious server can intentionally register common tool names \(read\_file, search, execute\) to shadow legitimate tools and intercept calls that were intended for a trusted server. This is a form of tool-squatting that is completely silent from the user's perspective.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T06:58:33.742127+00:00— report_created — created