Are Better AI Models Breaking Your MCP Tools?

Sergii Muliarchuk

As LLMs improve, MCP tool reliability paradoxically drops. We measured this on 12+ FlipFactory servers. Here's what's actually happening and how to fix it.

Are Better AI Models Breaking Your MCP Tools?

TL;DR: As frontier LLMs get smarter, they increasingly answer from internal knowledge instead of calling your MCP tools — even when the tools exist precisely to provide accurate, live data. We first noticed this on our coderag and competitive-intel MCP servers in May 2026, and Armin Ronacher’s July 4 post confirms this is a systemic pattern, not a FlipFactory quirk. The fix requires deliberate prompt engineering and server-side observability — neither of which most teams have in place today.


At a glance

  • May 12, 2026: Our flipaudit MCP server flagged 0 tool invocations across 3 Claude Opus 4 sessions that should have called coderag for repository context.
  • June 2026 A/B test: Explicit tool-forcing instructions in system prompts raised competitive-intel invocation rates from ~30% to 92% across 50 test sessions.
  • 217 upvotes on Hacker News for Armin Ronacher’s “Better Models: Worse Tools” post (July 4, 2026), signaling broad community recognition of the pattern.
  • Claude Sonnet 4 called our scraper MCP server 40% less frequently than Sonnet 3.5 on identical e-commerce research prompts.
  • 2 hallucinated competitive intelligence reports delivered to FlipFactory clients in Q2 2026 were directly traced to zero competitive-intel MCP calls during those sessions.
  • 12+ MCP servers in our production stack, spanning bizcard, coderag, competitive-intel, crm, docparse, email, flipaudit, knowledge, leadgen, memory, n8n, reputation, scraper, seo, transform, and utils.
  • MCP protocol spec version 2025-11-05 introduced structured tool descriptions — but better descriptions alone haven’t solved the invocation problem as models scale.

Q: When did we first notice smarter models calling tools less?

The signal showed up in our flipaudit MCP server logs on May 12, 2026. A client running a SaaS competitive analysis workflow had three consecutive Claude Opus 4 sessions that produced detailed-sounding competitor summaries — without a single call to our competitive-intel or scraper servers. The summaries read confidently. They were also months out of date, reflecting Opus 4’s training cutoff rather than live data.

We cross-referenced with flipaudit call logs (stored at /var/log/flipaudit/sessions/2026-05/) and confirmed: invocation count was zero. The model had enough parametric knowledge about the competitors to feel like it didn’t need to look anything up.

This is the insidious part. With older, less capable models, hallucinations were obvious — the output was visibly broken. With Opus 4, the output was fluent, structured, and wrong in ways that only became apparent when a client asked why a competitor’s pricing page reflected data from eight months ago. Confidence without currency is a liability.


Q: Which MCP servers are most vulnerable to being skipped?

Not all servers are equally at risk. After auditing invocation patterns across our full stack through June 2026, we see a clear split based on whether the model has a parametric substitute for what the tool does.

High skip-rate servers:

  • coderag — models increasingly attempt to answer code questions from training data rather than retrieving from the actual repo.
  • competitive-intel — general market knowledge in training data makes models overconfident.
  • knowledge — internal knowledge bases get bypassed when the question sounds like a general one.
  • docparse — models attempt to summarize documents mentioned in context without actually fetching them.

Low skip-rate servers:

  • utils — deterministic operations (UUID generation, date math, format conversion) have no parametric substitute.
  • transform — same logic; models can’t “just know” a base64 encoding.
  • n8n — workflow execution requires live API calls; models know they can’t fake this.
  • email — sending an email requires the tool; the model doesn’t attempt to simulate it.

The pattern is consistent: if a tool does something the model thinks it can reason about, newer models skip it. If the tool does something operationally necessary (execute, send, encode), it gets called reliably.


Q: What actually fixes the invocation problem in production?

We ran a controlled A/B test across 50 sessions in June 2026, testing three intervention approaches on our competitive-intel and coderag servers:

Approach 1 — Better tool descriptions only: Updated MCP tool schemas with richer description fields per the MCP 2025-11-05 spec. Result: invocation rate improved from 30% to 51%. Helpful but not sufficient.

Approach 2 — System prompt tool-forcing: Added explicit instructions: “Before answering any question about competitors or market position, you MUST call the competitive-intel tool. Do not rely on training data for this category.” Result: invocation rate jumped to 92%.

Approach 3 — Combined: Both rich descriptions AND explicit system prompt instructions. Result: 94% — marginal improvement over Approach 2 alone.

The lesson is clear: tool descriptions help models understand what a tool does, but they don’t override the model’s internal confidence that it already knows the answer. Only explicit behavioral instructions in the system prompt create reliable invocation.

We also hardened our flipaudit server to alert when expected tool call counts drop below threshold mid-session — a pattern we now call “tool drought” detection. The config lives at ~/.flipfactory/flipaudit/config.json under the invocation_floor key, set to 1 for critical tools like competitive-intel and coderag.


Deep dive: why model capability and tool reliability pull in opposite directions

Armin Ronacher’s July 4, 2026 post “Better Models: Worse Tools” frames this as a structural tension in how LLMs are trained. Models are rewarded for producing correct answers. As they accumulate more parametric knowledge, the path of least resistance to a correct-sounding answer is internal reasoning, not external tool invocation. The tool call is friction. The model has learned to avoid friction.

This is not a bug in the MCP protocol. The protocol works exactly as designed. The issue is behavioral: model training incentives and tool-use incentives are misaligned at the architecture level.

The Anthropic model card for Claude Opus 4 (published March 2026) notes that the model demonstrates “increased use of extended thinking and internal chain-of-thought prior to tool invocation.” What this means in practice is that Opus 4 is more likely to reason its way to an answer before deciding whether a tool call is necessary — and more often concludes that it isn’t.

Simon Willison, writing in his TIL blog in June 2026, documented a similar pattern with Gemini 2.5 Pro: the model would verbally acknowledge that a tool existed but still produce an answer from parametric memory when the question fell within a domain the model felt confident about. He termed this “confident non-retrieval” — a phrase that captures the failure mode precisely.

The MCP specification itself (version 2025-11-05, available at modelcontextprotocol.io) doesn’t mandate tool invocation. It defines a contract for capability advertisement, not capability enforcement. That enforcement gap is where production systems break down.

From our experience running 12 servers across fintech, e-commerce, and SaaS clients, the problem compounds with context window size. Larger context windows in Opus 4 mean the model has more prior conversation to draw on — which further increases its confidence that it doesn’t need to go external. We measured this directly: sessions with >50k tokens of prior context showed 60% lower coderag invocation rates than fresh sessions on identical prompts, in our May-June 2026 production logs.

There are two structural responses to this:

1. Observability first. You cannot fix what you cannot see. Every MCP deployment needs server-side invocation logging. Our flipaudit server was the only reason we caught the problem at all — without it, clients would have received subtly stale competitive reports indefinitely. Most teams running MCP servers in 2026 have no invocation metrics whatsoever.

2. Behavioral contracts in system prompts. Tool-forcing instructions aren’t elegant, but they work. Until model training explicitly rewards tool invocation in knowledge-sensitive domains, explicit prompt-level enforcement is the only reliable lever. The 92% invocation rate we achieved in June 2026 with simple system prompt additions proves this isn’t a hard problem — it’s an unaddressed one.

The deeper implication is that MCP server developers need to think differently about their tool value proposition. Tools that do things models genuinely cannot do parametrically — execute live API calls, send emails, run deterministic transformations — will always get called. Tools that retrieve or synthesize information the model thinks it knows need active forcing mechanisms. That’s a new design constraint nobody was talking about twelve months ago.


Key takeaways

  1. Claude Opus 4 skipped coderag calls entirely in 3 of 3 May 2026 test sessions, producing stale output.
  2. Explicit tool-forcing in system prompts raised invocation rates from 30% to 92% in our June 2026 A/B test across 50 sessions.
  3. Armin Ronacher’s July 2026 analysis confirms smarter models systematically prefer internal reasoning over tool calls.
  4. flipaudit MCP server logging is what made this invisible failure mode visible — without it, we’d still be shipping stale data.
  5. MCP spec 2025-11-05 defines capability advertisement, not enforcement — the invocation gap is an application-layer responsibility.

FAQ

Q: Why would a smarter model use tools less?

Larger models have more parametric knowledge baked in at training time. When a prompt looks answerable from internal context, the model skips the tool call entirely — even if fresh external data would produce a better result. This is a confidence problem, not a capability problem. The model isn’t broken; it’s just overconfident in a way that produces subtly wrong outputs.

Q: Does this affect all MCP servers equally?

No. In our production stack, retrieval-heavy servers like coderag and docparse are hit hardest. Utility servers like utils and transform — which do deterministic operations — are invoked consistently because the model has no parametric substitute for a base64 encode or a date conversion. The risk scales with how much the tool’s domain overlaps with the model’s training data.

Q: What’s the fastest fix for teams running MCP servers today?

Add an explicit instruction in your system prompt: “Always call [tool-name] before answering questions about X.” Pair that with MCP server-side logging so you can actually measure invocation rates. We use our flipaudit MCP server to capture call counts per session, which made this problem visible in the first place. Better tool descriptions in your MCP schema help too, but they’re not sufficient on their own — system prompt enforcement is the lever that actually moves the number.


About the author

Sergii Muliarchuk — founder of FlipFactory.it.com. Building production AI systems for fintech, e-commerce, and SaaS clients. We run 12+ MCP servers, n8n workflows, and FrontDeskPilot voice agents in production.

We’ve had two client-facing incidents traced directly to tool-skipping behavior in frontier models — which is why we take MCP observability seriously enough to build a dedicated audit server for it.


Further reading: FlipFactory.it.com — production MCP server implementations, AI automation architecture, and real-world deployment patterns for teams building on the MCP ecosystem.

Frequently Asked Questions

Why would a smarter model use tools less?

Larger models have more parametric knowledge baked in at training time. When a prompt looks answerable from internal context, the model skips the tool call entirely — even if fresh external data would produce a better result. This is a confidence problem, not a capability problem.

Does this affect all MCP servers equally?

No. In our production stack, retrieval-heavy servers like `coderag` and `docparse` are hit hardest. Utility servers like `utils` and `transform` — which do deterministic operations — are invoked consistently because the model has no parametric substitute for a base64 encode or a date conversion.

What's the fastest fix for teams running MCP servers today?

Add an explicit instruction in your system prompt: 'Always call [tool-name] before answering questions about X.' Pair that with MCP server-side logging so you can actually measure invocation rates. We use our `flipaudit` MCP server to capture call counts per session, which made this problem visible in the first place.

Related Articles