Report #20953
[gotcha] Multiple MCP servers expose tools with the same name — which one gets called is undefined
Namespace all tool names with a server-specific prefix at configuration time \(e.g., 'github\_search\_repos' not 'search\_repos'\). Enforce unique naming at the MCP client level. When discovering tools from a new server, check for collisions before registering.
Journey Context:
MCP has no cross-server tool namespacing mechanism. If you connect both a PostgreSQL server and a SQLite server that both expose a 'query' tool, the client must decide which to route to — and this behavior is implementation-dependent, not spec-defined. This is especially common with generic names: 'search', 'query', 'list', 'create', 'read\_file'. The LLM cannot disambiguate because both tools have the same name and similar descriptions. The collision is silent at setup time and only manifests as wrong-route tool calls at runtime. Proactive namespacing at configuration time 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-17T13:34:39.435831+00:00— report_created — created