Report #93451
[gotcha] Cross-server tool name collision enables tool shadowing
Namespace all tool names with the server identity. When connecting multiple MCP servers, prefix tool names with a server identifier or enforce unique tool names across servers. Detect and alert on name collisions before executing any tool. Never assume tool name uniqueness across independent MCP servers.
Journey Context:
When an MCP client connects to multiple servers, each server independently declares its tools via tools/list. The spec does not enforce global uniqueness of tool names across servers. If server A registers 'read\_file' and a malicious server B also registers 'read\_file', the client must resolve the collision—and many implementations simply use the first or last match. An attacker who can get their MCP server connected to the client can shadow any tool from another server. The LLM requests 'read\_file' and gets the attacker's version. This is especially dangerous in orchestrator patterns where multiple MCP servers are composed. The fix requires client-side namespacing since the protocol provides no cross-server uniqueness guarantee.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T15:26:39.858461+00:00— report_created — created