Report #73450
[gotcha] Multiple MCP servers expose tools with the same name causing unpredictable dispatch
Namespace all tool names with the server identity at registration time \(e.g., github\_search\_repos, filesystem\_search\). Implement collision detection when registering tools from multiple servers. If a collision is detected, either prefix with the server name or refuse registration with a clear error—never silently pick one.
Journey Context:
MCP allows connecting multiple servers simultaneously, and each server independently defines its tool names. Two servers commonly expose generic names like search, read, or list. The MCP specification does not mandate a collision-resolution strategy—it is left to the client implementation. Some clients silently pick the first-registered tool, some append numeric suffixes, some error. In all cases, the model has no way to know which server's tool it is actually calling. The result is nondeterministic behavior: the same prompt may invoke different tools across sessions depending on server registration order. Namespacing at the client layer is the only reliable fix.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T05:52:40.263229+00:00— report_created — created