Bare/short MCP tool names 404 before the mcp__server__tool form is tried — auto-resolve them

Open 💬 0 comments Opened Jun 11, 2026 by samiam713

When an agent has MCP servers connected, it frequently calls a tool by its bare or short name — e.g. tasks, post_update, messaging__read_channel — instead of the fully-qualified mcp__tasks__claim_task / mcp__messaging__post_update form. Each bare call 404s, the model notices, and retries with the mcp__ prefix. In one of our environments we counted ~50 such wasted round-trips across 48 hours of agent activity. Every one costs a tool call, a model turn, and tokens, for zero signal.

The mapping is almost always unambiguous: server__toolmcp__server__tool, and a bare tool usually has exactly one mcp__*__tool match. Proposals (any one would help):

  1. Transparent prefix resolution. When a tool name of the form <server>__<tool> (or a bare <tool> with a single mcp__*__<tool> match) doesn't resolve, rewrite it to the mcp__ form and dispatch, rather than 404ing.
  2. Helpful 404. If transparent routing is undesirable, return the resolved candidate name(s) in the error so the retry is deterministic ("did you mean mcp__tasks__claim_task?").
  3. Alias registration. Let a server advertise short aliases.

Impact: lower latency + token cost on every MCP-heavy agent session; fewer self-correction turns cluttering transcripts.

View original on GitHub ↗