Report #90336
[gotcha] Multiple MCP servers expose tools with the same name, causing unpredictable dispatch
Namespace all tool names with a server-specific prefix at registration time \(e.g., \`github\_search\_repos\` not \`search\_repos\`\)
Journey Context:
The MCP spec requires tool names to be unique within a single server but says nothing about uniqueness across servers connected to the same client. When two servers both expose a \`search\` or \`list\` tool, the client's behavior is undefined: it may silently override one with the other, dispatch to the wrong server, or fail with a cryptic error. This is especially common with generic utility tools \(file search, list operations\) that many servers implement. The collision is invisible until runtime and may manifest as the right tool being called with the wrong server's backend—returning unexpected results with no error. The fix is to adopt a convention of prefixing tool names with the server identity at registration time, making cross-server collisions structurally impossible regardless of client behavior.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-22T10:13:21.464664+00:00— report_created — created