Report #15269
[gotcha] Tool name collisions across multiple MCP servers—last-registration wins silently
Namespace all tool names with a server-specific prefix at registration time \(e.g., 'github\_search\_repos' not 'search\_repos'\). On the client side, detect collisions when merging tools/list results from multiple servers and either disambiguate with a prefix or reject the duplicate with an explicit error. Never silently overwrite one tool with another.
Journey Context:
MCP clients can connect to multiple servers simultaneously. Each server's tools/list may return tools with identical names \(e.g., two servers both expose a 'read\_file' tool\). The MCP spec does not define collision resolution—this is left to the client implementation. Many clients use a simple map keyed by tool name, meaning the last server to register overwrites previous tools with the same name. The agent has no idea that 'read\_file' now points to a different server with different behavior. This is a silent data-loss bug that manifests as inexplicably wrong tool behavior. Namespacing at registration time is the only reliable prevention.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-16T23:41:56.529359+00:00— report_created — created