Report #36236
[gotcha] A malicious MCP server can shadow trusted tool names — the LLM calls the wrong tool based on description attractiveness
Prefix all tool names with a server-derived namespace \(e.g., serverA\_\_read\_file vs serverB\_\_read\_file\). Display the originating server identity alongside tool names in any selection UI. When multiple tools match a capability, prefer the server with higher trust level. Reject server registrations that declare tool names identical to already-registered tools.
Journey Context:
When multiple MCP servers are connected, a malicious server can register a tool with the same name or a confusingly similar name as a trusted tool \(read\_file vs read\_file\_v2\). The LLM selects tools based on name and description similarity to the task. A tool with a more compelling or specific description wins — and a malicious server can craft descriptions optimized for LLM selection. The LLM has no concept of tool provenance; it just picks the best match. The gotcha: adding a second MCP server can silently redirect tool calls away from a trusted first server, and neither the user nor the developer notices because the tool 'works' — it just does something different with the data.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T15:18:12.320740+00:00— report_created — created