Report #65304
[tooling] MCP client fails to initialize or behaves erratically when multiple servers define 'read\_file'
Prefix every tool name with a server-specific namespace \(e.g., 'filesystem\_\_read\_file' or 'github\_\_create\_issue'\) to ensure global uniqueness across the session.
Journey Context:
The MCP specification states that tool names must be unique within a session, but it does not automatically namespace tools by their server origin. When a client connects to multiple MCP servers \(e.g., a filesystem server and a GitHub server\), if both expose a tool named 'read\_file' or 'search', the client will typically fail to initialize, non-deterministically pick one, or error out. Unlike HTTP APIs where the path provides namespacing, MCP tool names are flat strings. The robust pattern is to manually namespace tools using a double-underscore or similar convention \(e.g., 'servername\_\_toolname'\) during server implementation. This prevents collision and makes it clear to the agent which server is being targeted.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-20T16:05:33.675243+00:00— report_created — created