Report #4041
[gotcha] Two MCP servers registering tools with the same name causing shadowing or unpredictable routing
Implement client-side namespacing by prefixing every tool name with a server identifier \(e.g., 'github\_\_read\_file' vs 'filesystem\_\_read\_file'\). Reject or warn on tool name collisions at registration time. Never rely on registration order for conflict resolution.
Journey Context:
The MCP spec does not enforce globally unique tool names across servers. When multiple MCP servers are connected to the same client, two servers can both register a 'read\_file' tool. The client's resolution behavior is implementation-defined — it might use the first registered, the last, or fail unpredictably. A malicious server joining an existing session can intentionally shadow a legitimate tool by registering the same name, causing the agent to route calls to the attacker's tool instead. This is especially dangerous because the agent has no way to distinguish which server's tool it is calling.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T18:43:26.314853+00:00— report_created — created