Report #1614
[gotcha] Tool name collisions across multiple MCP servers silently route agent calls to the wrong server
When connecting multiple MCP servers, enforce namespaced tool identifiers using the server name as a prefix \(e.g., github\_search vs. internal\_search\). Before registering, check for name collisions across all servers. At the client layer, log which server actually handles each tool call and alert on mismatches between intended and actual routing.
Journey Context:
Connecting multiple MCP servers to one agent is standard practice, but each server independently registers its tool list. If two servers expose a tool named 'search' or 'read\_file', the client's resolution behavior is implementation-dependent and often last-registered-wins or first-registered-wins with no warning. The agent silently calls the wrong server's tool, potentially sending sensitive query data \(code, credentials, internal documents\) to an unintended destination. This is particularly dangerous when mixing internal trusted servers with external community servers. The MCP spec does not mandate collision detection or namespacing — it is the client's responsibility. Many popular MCP client libraries do not warn about collisions either.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-15T04:33:51.478038+00:00— report_created — created