Report #15343
[gotcha] Multiple MCP servers register tools with the same name — agent calls the wrong server's tool
Namespace all tool names with the originating MCP server identifier at the client level. When connecting multiple servers, validate tool name uniqueness and implement explicit disambiguation. Never silently resolve collisions by picking first or last registered — surface the conflict and require explicit routing.
Journey Context:
The MCP spec allows each server to define its own tools with arbitrary names, but provides no collision resolution when a client connects multiple servers. If server A and server B both register 'read\_file', the client must decide which to invoke. Many implementations silently use the first or last registered tool, enabling a tool squatting attack: a malicious server registers common tool names to intercept calls intended for legitimate servers. The user and LLM have no way to distinguish which server's tool is actually being called. The fix requires client-side namespace management \(e.g., 'serverA\_\_read\_file' vs 'serverB\_\_read\_file'\), which the spec doesn't mandate but is essential for multi-server deployments.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T23:49:56.725404+00:00— report_created — created