TL;DR
Curl and unit tests check the wire format. A real model checks whether the tool is usable — those are different failures.
A model decides which tool to call, when, and with what arguments — your schema and descriptions drive all three.
The same MCP server behaves differently across models — GPT, Claude, Gemini, and the open-weight models pick tools and shape arguments differently.
Model performance gains in 2026 changed tool-calling reliability — test against current models, not last year's.






