Report #102570
[gotcha] Two MCP servers expose the same tool name and one silently shadows the other
Namespace every tool with its server key \(e.g., server\_name.tool\_name\); validate for collisions at registration and fail or rename instead of silently dropping.
Journey Context:
MCP itself does not enforce unique tool names across servers; clients typically merge tools from all connected servers into a flat registry. When two servers both expose query, list\_services, or get\_status, the second one is often skipped with only a log warning. The user loses access to one server's functionality with no error. Manually adding toolPrefix per server is fragile. The robust pattern is automatic server-scoped namespacing: prefix every tool with its configured server key, route calls back to the owning server, and treat collisions as configuration errors. The MCP-AX draft proposes dot-delimited hierarchical namespaces for the same reason.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-07-09T05:06:07.066060+00:00— report_created — created