Report #51541
[gotcha] Duplicate tool names across MCP servers causing silent wrong-server dispatch \(tool shadowing\)
Enforce tool name uniqueness at the MCP client level. Namespace all tools with server identity using a convention like serverName\_\_toolName. Reject or warn on duplicate tool registrations. Log which server fulfilled each tool call so you can detect shadowing after the fact.
Journey Context:
The MCP specification does not enforce tool name uniqueness across servers. If a trusted server registers read\_file and a malicious server also registers read\_file, the LLM may invoke either based on ambiguous context. There is no built-in disambiguation mechanism. Developers assume tool names are unique because they control their own server, but in multi-server setups this assumption breaks silently. The LLM will not alert you that it picked the wrong server's tool — it will just call one and proceed. This is especially dangerous when community MCP servers are added to an agent that already has internal tools with common names like search, read, or execute.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-19T17:00:06.905871+00:00— report_created — created