In partnership with

Scale AI support on AWS, see how July 9

Customer expectations keep rising. Support budgets don't. On July 9, Fin and AWS are hosting a live executive session on how leading enterprises close that gap: scaling AI-powered support while simplifying how they buy it.

You'll see how to resolve an average 76% of conversations with Fin on AWS enterprise-grade infrastructure, procure through AWS Marketplace to put committed cloud spend to work, and turn the Fin and AWS collaboration into lower support costs. Register for the live session to see how.

A new MCP patterns paper sets a 10-15 tool ceiling. Most production servers are already over it. A new MCP patterns paper sets a 10-15 tool ceiling. Most production servers ship over it.
researchaudio.io  ·  Issue 18  ·  2026-07-06

A new MCP patterns paper sets a 10-15 tool ceiling. Most production servers are already over it.

A 2-author ICSME industry paper catalogues 5 MCP server patterns, 4 anti-patterns, and the production telemetry that says your server is probably too big.
 
Claude Haiku 4.5 picks the right tool 91% of the time when you hand it 10 tools. Drop to 15 tools and it picks right 87% of the time. Claude Sonnet 4 buys you another notch: 95% at 10 tools, holds above 90% up to 20, drops below at 30.
That is the load-bearing finding in the new ICSME 2026 industry paper, “MCP Server Architecture Patterns for LLM-Integrated Applications” (Rodrigues & Vas, arXiv 2606.30317, submitted 2026-06-29). The five patterns get the press. The numbers are the story.
The load-bearing finding
10 tools.
91% accuracy.
15 tools. 87%.
Most production MCP servers ship 20–50+ tools per context. The number is wrong.

What the paper says

Rodrigues (Celabe, operator of the ANSYR voice AI platform) and Vas (University of Waterloo) catalogue the architectural shapes MCP servers are taking in production. The paper is a patterns book in the Gamma et al. tradition: context, problem, solution, consequences, known uses. Five patterns, four anti-patterns, cross-cutting concerns. The contribution is not the structural skeletons — every pattern has a classical ancestor (Repository, Facade, Mediator, Adapter). The contribution is the LLM-client delta: the constraint that the client selects tools by reading natural-language descriptions, not by inspecting schemas or reading documentation.
The corpus is fifteen servers: five production servers from ANSYR (anonymized Server-A through E) plus ten from the official modelcontextprotocol/servers registry. Coding was single-author open coding with secondary verification; an inter-rater reliability study on 54 held-out servers (Section VI-A) was the mitigation.

The five patterns

1Resource GatewayRead-mostly backend data through a sanitization layer. MongoDB connector, GitHub issues-as-read.
2Tool OrchestratorMulti-system workflow as a single named tool. Create-ticket → notify → post.
3Stateful Session ServerMulti-turn context preserved server-side. Code editor agent (open → edit → save).
4Proxy AggregatorSingle endpoint across N upstream servers, namespaced tool names. Enterprise MCP gateway.
5Domain-Specific AdapterWraps an LLM-hostile complex API. Salesforce, Kubernetes, FHIR.

The four anti-patterns

1. The God Tooldo_anything(action, params). Selection accuracy collapses.
2. Unsanitized Resource Content — user content returned as resource data. “Ignore previous instructions” becomes an instruction, not data.
3. Synchronous Long-Running Operations — video encoding as sync call. Return a job ID; expose poll_job(id).
4. Missing or Vague Tool Descriptionssend_message with no description. LLMs pick tools by reading descriptions, not schemas.
“Transport overhead is dominated by network RTT, not by the protocol layer.”
Section VI-B. In-host: under 1 ms. Same-region remote: 30 ms p50, 180 ms p99. Two to three orders of magnitude.
The gap to the ceiling

What the numbers actually show

Three measurements. The patterns are the vocabulary. These are the proof.

A. Inter-rater reliability (N=54 held-out servers)

Cohen's κ between two LLM raters0.76 (95% CI [0.62, 0.88])
Raw agreement81.5%
Author-vs-rater (Haiku 4.5)68.5%
Author-vs-rater (Sonnet 4)75.9%
Pilot on author-written descriptions97% (measures wording, not taxonomy)
The 97% pilot is the misleading number. It was on author-written canonical descriptions that named their own architecture. Strip that out — descriptions like “stage changes, commit, show diffs, switch branches in a repository” — and the agreement drops to 69–76%.

B. Transport latency (Table III, ms)

TransportMethodp50p95p99
stdio (local)measured0.010.020.02
streamable-http (loopback)measured0.390.450.48
streamable-http (same-region remote)modeled30.480.4180.4
Stateful Session Server (remote)modeled38.4100.4216.4
Proxy Aggregator (remote, single hop)modeled62.4160.4308.4

C. Tool-count vs. accuracy (observational, ANSYR production)

Tools in contextClaude Haiku 4.5Claude Sonnet 4
1091% (245 ms median)95% (410 ms median)
1587%above 90%
20≥90%
30drops below 90%
Wilson 95% CIs within ±4 percentage points. Prior work (Gan and Sun, Kate et al.) places the wider degradation onset beyond ~30 tools.

How it actually works

In plain English: MCP is a standardized way for an AI model to call tools, read files, and use templates from a server. The server is a program that exposes those capabilities; the client is the AI app. The same server works with Claude, GPT, Gemini, or any compliant agent.
MCP is built on JSON-RPC 2.0 with three primitives: tools (callable functions with name, description, and JSON schema), resources (URI-addressed data, static or dynamic), and prompts (parameterized templates managed server-side). Two transports: stdio for local in-process, streamable-http (HTTP plus optional server-sent events) for remote. The LSP parallel is exact: a single LSP server works across VS Code, Neovim, Emacs. MCP aims for the same decoupling between agent and capability provider.
The proxy aggregator path: when the catalog outgrows one server

Where it works, where it collapses

In plain English: the patterns are right; the reliability study is honest; the limitations section is the bit most readers will skip.
What it gets right. The LLM-client delta framing is the right mental model. Every one of the five patterns shows up in the public MCP registry. The tool-count study is production data, N=200 per bucket, Wilson 95% CIs within ±4 points. The limitations section is honest.
Where it collapses. The 0.76 κ is the ceiling, not the floor — the 97% pilot is on author-written descriptions that named their own architecture. Three of five transport rows are modeled, not measured. Single-coder derivation is admitted as a limitation. The corpus is fifteen servers from one org plus the official registry; more than 8,000 public MCP servers exist.
What the framing skips. The paper's biggest idea is the inversion of API design: the LLM picks a tool by reading its natural-language description, not by consulting documentation. This is load-bearing. The “Missing or Vague Tool Descriptions” anti-pattern is the most underappreciated of the four, because it operates not at the architecture level but at the description-string level. Practitioners who treat tool descriptions as documentation comments will find their servers underperform.
Qualitative failures
No HN signal on this paper. Per the newsletter rule, this section runs the paper's own failure modes instead of invented community reaction.
Failure 1 — the 10-15 tool ceiling for current Haiku-class models. ANSYR production telemetry, Wilson 95% CIs within ±4pp. Most production MCP servers today bundle 20–50+ tools. The paper's own mitigation: the scoped Proxy Aggregator variant (per-context tool filtering).

Failure 2 — 0.76 κ on architecture-neutral descriptions. The 97% pilot masked the structural problem. Statefulness, domain logic, and read-style tool behavior are invisible from a function description. The authors' fix (treat them as cross-cutting attributes) is a workaround that moves the disagreement rather than resolves it.

Failure 3 — three pattern-boundary ambiguities the paper localizes but does not solve. (1) Statefulness invisible — every stateful server classified as Tool Orchestrator. (2) Domain logic invisible — adapters split between Tool Orchestrator and Resource Gateway. (3) Read-style tools resemble gateways — retrieval-oriented orchestrators reclassified as Resource Gateways. The recommendation: draw on implementation signals, not a capability list alone.

Failure 4 — single-coder derivation, admitted. First-author open coding with secondary verification, not independent dual coding. The reliability study is the mitigation; the limitation remains. The replication package makes it reproducible, but reproducibility of a single-coder derivation is reproducibility of one person's reading.

Failure 5 — three of five transport rows are modeled, not measured. Table III labels each row. The relative ordering is robust. The absolute numbers depend on the network and the deployment region.

What this means for

Junior engineers.
Read the four anti-patterns first. The patterns are vocabulary. The anti-patterns are the failure modes you will actually hit on your first MCP server. The God Tool is the most common. Missing or vague descriptions is the second.
Senior engineers.
The 10-15 tool ceiling is the load-bearing finding. Audit your current MCP servers. Count tools per context. If you are over 15 for any user-visible context, the scoped Proxy Aggregator variant is the next refactor. Co-locate the MCP server with the client if you have any latency budget under 100 ms p50.
Hiring managers.
The skill you are hiring for is description-writing, not just schema-design. A senior MCP engineer who cannot write a one-paragraph tool description that an LLM picks correctly is not a senior MCP engineer.
Founders.
The transport finding is “don't use remote MCP for latency-constrained deployments.” Voice agents, real-time copilots will pay 30–180 ms per remote tool call. That is not an optimization; it is the architecture. Co-locate. And: the unsanitized-resource-content anti-pattern is a prompt injection surface.

The metric that actually matters

Tool selection accuracy at 10 / 15 / 20 / 30 tools per context, ANSYR production telemetry, N=200 per bucket, Wilson 95% CI within ±4pp.
Claude Haiku 4.5       Claude Sonnet 4
─────────────────      ─────────────────
10 tools   91%  ████████████████████░░░  95%  ███████████████████░░░░
15 tools   87%  ██████████████████░░░░░  ~93% ██████████████████░░░░░
20 tools  ~85%  █████████████████░░░░░░  ≥90% ██████████████████░░░░
30 tools  ~78%  ███████████████░░░░░░░░  <90% █████████████████░░░░░
────────────────────────────────────────────────────
            90% threshold · 10-tool budget
The number to walk away with: 10 tools per context. The practical accuracy boundary for current Haiku-class models, measured on production traffic, with the paper's own mitigation (scoped Proxy Aggregator, retrieval-over-tools) as the only safe way to exceed it.
Share this
An LLM picks a tool by reading its description. Not by consulting documentation. Not by inspecting the schema. Treat tool descriptions as load-bearing artifacts, not code comments.
The five patterns are vocabulary. The tool-count ceiling is the architecture. The descriptions are the operationally important bit. Treat all three accordingly.

Reader challenge

1. Count the tools in your largest MCP server. If you are over 15 in any user-visible context, the scoped Proxy Aggregator variant is the next refactor. What is the smallest refactor that would partition the catalog?
2. Read the tool descriptions in your MCP server. Pick three that a human engineer would find obvious. Would a 12-year-old reading only the description know when to use them? If not, rewrite.
3. For latency-constrained deployments, is your MCP server co-located with the client? If not, what is the network RTT p50 / p95 / p99 between them? If p99 is over 200 ms, the transport table says you are paying 200 ms per tool call before the LLM does any work.

Next issue

Issue 19 looks at Gan and Sun's RAG-MCP paper (arXiv 2505.03275) — the retrieval-over-tools approach the MCP patterns paper cites as the mitigation. When retrieval-over-tools works. When the retrieval model itself becomes the bottleneck.
-- researchaudio.io

Keep Reading