The Resolution Desk team adds a second MCP tool, find_account, alongside the existing get_customer on their Customer Support Resolution Agent. get_customer is described as retrieving a customer record by identifier, and find_account is described as retrieving an account record by identifier. Both take a single string argument. Across 800 sessions the agent calls find_account in roughly half of the identity checks the team intended to route to get_customer, with no pattern the team can predict from the transcripts. Which statement best explains that split?
- AThe two tools return records of different shapes, so the agent deliberately alternates between them across sessions in order to compare the two results before it answers the customer's opening question.
- BThe MCP server registers tools in the order they are listed in the project .mcp.json file, and the model is required to select the earlier registration whenever two tools accept an argument of the same type.
- CIdentical input schemas make validation reject one of the two calls, after which the harness automatically retries the request against the sibling tool, which is what produces an even split of calls across the sessions.
- DTool selection is driven by the tool name and the description text, so two descriptions stating the same capability in different words give the model no discriminating signal, and the choice then varies with the wording of each customer's message. Correct
Why A is wrong: Tempting because the tools genuinely do return different record shapes, but the agent has no comparison behaviour of that kind; it selects one tool per intent, and nothing in the loop asks it to sample alternatives.
Why B is wrong: Registration order is real, but it carries no selection precedence of this sort, and a rule like this would produce a consistent bias rather than the unpredictable half-and-half split observed.
Why C is wrong: Plausible if you assume schemas are compared across tools, but validation checks a call against its own tool's schema only, and there is no automatic retry that reroutes a call to a different tool.
Why D is correct: Correct. The description is the routing surface, and two overlapping descriptions leave the selection to incidental phrasing, which is exactly the unpredictable split the team measured.