When you read 20–50 real traces from an ads-MCP agent, failures tend to cluster into five buckets. Here they are, ordered by how much damage they do:
**T1 · Wrong tool arguments** — bad date ranges, wrong account IDs, invalid enum values. Frequent, cheap to detect with a code judge.
**T2 · Unfaithful summarisation** — the generated report contradicts the data that was actually retrieved. Moderate frequency, needs a semantic judge.
**T3 · Premature finish** — the agent concludes before checking all relevant campaigns. Only visible at trajectory level, not in the final answer.
**T4 · Error swallowing** — a tool returned an error, but the run reported success anyway. Rare in practice, catastrophic when it happens. This is the one your client remembers: a silenced error in a tool that touches budgets.
**T5 · Over-stepping** — 30 tool calls where 6 would do. Frequent, and it directly affects your cost-per-task number.
Build your judges in severity order. T4 gets a judge before T1 gets a second one.