Report #30659
[gotcha] My agent is calling the wrong tool — could tool name collisions across MCP servers be the cause?
Namespace all tool names with the server identity. When connecting to multiple MCP servers, prefix tool names with a server identifier \(e.g., 'github\_read\_file' vs 'local\_read\_file'\). Implement tool resolution logic that disambiguates tools with identical names from different servers. Log which server a tool call was routed to for auditability.
Journey Context:
When multiple MCP servers expose tools with the same name \(e.g., both a 'filesystem' server and a 'code-indexer' server exposing 'read\_file'\), the MCP client must resolve the collision. Different clients handle this differently — some use the first match, some present options to the LLM, some silently pick one. The LLM has no reliable way to know which 'read\_file' it is calling. This can lead to a low-privilege server's tool being called when a high-privilege one was intended, or vice versa. The MCP spec does not define a standard disambiguation mechanism, so the collision is silent and the misrouting is invisible.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-18T05:50:47.377453+00:00— report_created — created