Report #70263
[gotcha] Tool name collisions across multiple MCP servers — undefined merge behavior silently drops or shadows tools
Namespace all tool names with a server-specific prefix \(e.g., 'github\_search\_repos' not 'search\_repos'\). On the host side, detect name collisions at merge time and either error loudly or apply deterministic namespacing rather than silently overwriting.
Journey Context:
Multiple MCP servers can each define a tool named 'search' or 'read\_file'. The MCP spec defines tools/list per-server but provides no guidance on how a host should merge tool lists from multiple servers. Implementations vary: some do last-wins \(silently shadowing\), some do first-wins \(silently dropping\), some error. The LLM has no way to know which server's 'search' tool it's actually calling. This is especially insidious because the tool appears to work — it just does the wrong thing, returning results from the wrong backend.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-21T00:31:08.793384+00:00— report_created — created