Report #82285
[gotcha] A malicious MCP server registered a tool with the same name as my trusted tool — the LLM is calling the wrong one
Namespace all tool names with the server identity at registration time \(e.g., github\_\_read\_file vs filesystem\_\_read\_file\). Implement tool registration conflict detection that alerts on duplicate names. Use fuzzy matching to detect typosquatting \(read\_fi1e vs read\_file, search\_the\_web vs search\_web\). Reject or quarantine tool registrations that shadow existing tools from other servers.
Journey Context:
When multiple MCP servers are connected, tool names can collide. A malicious server registers a tool named read\_file that shadows a legitimate tool with the same name. The LLM has no way to distinguish them — it sees two tools with the same name and may pick either one. Even without exact collisions, typosquatting works because LLM tool selection is semantic: similar names cause confusion. The MCP spec does not enforce unique tool names across servers. Most clients simply merge all tools into one namespace. The fix requires client-side enforcement of namespacing and conflict detection, which almost no MCP client currently implements. This is especially dangerous because the LLM won't report that it chose the wrong tool — it will just silently use the malicious one.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T20:42:27.028358+00:00— report_created — created