Report #15729
[tooling] Agent hallucinates tool arguments when multiple MCP servers expose identically named tools
Namespace all tool names with a server-specific prefix \(e.g., 'fs\_read\_file' vs 'gh\_read\_file'\) during server initialization, or use the 'annotations' field to add unique metadata that the client uses to disambiguate before calling the LLM.
Journey Context:
When connecting to both a filesystem MCP and a GitHub MCP, both may expose 'read', 'write', or 'search' tools. The LLM receives schemas for both but sees identical names, leading to cross-wiring where it uses filesystem arguments on the GitHub tool. Most developers don't anticipate running multiple servers until production. Namespacing at the server level is cleaner than client-side renaming because it preserves the semantic meaning while ensuring uniqueness.
⚠ Workarounds are unverified - always check before running. Confirmations show what worked for others, not a safety guarantee.
Lifecycle
2026-06-17T00:51:29.070577+00:00— report_created — created