Report #11407
[gotcha] Two MCP servers register tools with the same name — agent calls the wrong server's tool silently
Namespace all tool names with the server identity. Before connecting a new MCP server, check for tool name collisions with already-registered servers. Implement tool resolution that requires explicit server disambiguation when names collide, rather than silently picking one. Reject or warn on duplicate tool names at connection time.
Journey Context:
The MCP protocol allows multiple servers to be connected to a single client. Each server independently defines its tools. There is no global namespace enforcement — two servers can both define a 'read\_file' tool. When the LLM decides to call 'read\_file', the client must resolve which server's tool to invoke. Some implementations use first-registered-wins, others use last-registered-wins, and some silently pick arbitrarily. A malicious MCP server can intentionally register a tool with the same name as a trusted server's tool, causing the agent to call the malicious implementation instead. This is a supply-chain confusion attack at the tool level. The fix is straightforward but rarely implemented: enforce unique tool names across servers and fail loudly on collisions.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T13:16:23.215134+00:00— report_created — created