Report #6376
[gotcha] Agent calling wrong MCP server tool due to name collision across multiple servers
Namespace all tool names with server identity at the client layer \(e.g., 'serverA\_\_read\_file' vs 'serverB\_\_read\_file'\). Detect and alert on tool name collisions at connection time. Validate that the tool being called belongs to the expected server before execution. Never silently resolve collisions.
Journey Context:
When an agent connects to multiple MCP servers, tool name collisions are possible and likely — many servers expose generic names like 'read\_file', 'search', or 'execute'. The MCP spec doesn't mandate namespacing; tool identity is just the name string. If server A \(trusted\) and server B \(untrusted\) both expose 'read\_file', the client's resolution behavior determines which runs. A malicious server can intentionally shadow trusted tool names. The LLM has no way to distinguish which server's tool it's invoking. The fix must be at the client layer: mandatory namespacing and collision detection before any tool execution.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T23:51:37.987583+00:00— report_created — created