Preporato
MCPModel Context ProtocolAnthropicCCA-FNCP-AAIAgent ArchitectureTool Design

Model Context Protocol (MCP) Architecture Guide: From N×M to N+M [2026]

Preporato TeamMay 24, 202614 min readCCA-F
Model Context Protocol (MCP) Architecture Guide: From N×M to N+M [2026]

If your AI team has more than one agent, you have already paid the N×M integration tax. Every agent re-implements lookup_customer, every team writes its own search_knowledge_base, and the day someone changes the CRM API, ten different codebases break in subtly different ways. The Model Context Protocol (MCP) is Anthropic's open standard for ending that tax. It separates what a tool does from which agent uses it, and as of the 2026 specification revision, it does so over stateless HTTP transports that scale on ordinary load balancers. This guide walks through why MCP exists, what changed in 2026, and the architectural decisions tested on the Claude Certified Architect (CCA-F) and NVIDIA NCP-AAI exams.

Hands-on first

This article pairs with our hands-on MCP lab. If you learn faster by typing than reading, skip to building a real MCP server in 40 minutes, then come back here for the architecture context.

N×M tool sprawl collapses to N+M once tools live behind a shared MCP server.
Build it before you theorize

Stand up an MCP server in 40 minutes

Feel the protocol work end-to-end (stdio server, LangChain client, hybrid MCP+native tool agent) before you commit to architectural decisions.

Why MCP Exists: The N×M Problem

Every LLM agent needs tools. Look up a user. Query a database. Call an API. Without a standard, every team writes the same tools differently:

Agent A wants to search the CRM  → Agent A's team writes CRM tool
Agent B wants to search the CRM  → Agent B's team writes CRM tool (differently)
Agent C wants to search the CRM  → Agent C's team writes yet another CRM tool

    N agents × M tools = N×M implementations

With 10 agents and 20 tools, that is 200 implementations to maintain, test, and keep in sync. A CRM pricing change ripples through all of them. A new field becomes a coordinated release across ten teams. This is the integration tax you pay every day in a multi-agent organisation.

What MCP changes

MCP flips the relationship. Write each tool once as an MCP server. Any MCP-compatible client (Claude Desktop, Claude Code, Cursor, LangChain, OpenAI Agents SDK, raw Anthropic API) can use it:

   Agent A ─┐
   Agent B ─┼─▶ MCP Server (CRM tools) ──▶ CRM API
   Agent C ─┘

         N + M (not N × M)

The math is the same shape as REST APIs versus per-client integrations: standardise the contract, write the implementation once, plug new clients in without glue code.

The MCP cost model

Approach10 agents × 20 toolsAdd an 11th agentChange one tool
Per-agent tool reimplementation (N×M)200 implementations+20 implementations10 codebases change
MCP servers (N+M)30 implementations (10 clients + 20 tools)+1 client config1 codebase changes

Preparing for CCA-F? Practice with 390+ exam questions

What Changed in 2026

MCP shipped in late 2024 and the protocol evolved fast. If you are studying from material older than April 2026, expect drift on these three points.

MCP 2026 changes (verified May 2026)

  • Stateless protocol core. The 2026-07-28 specification revision (release candidate now public) makes MCP stateless at the protocol layer. Sessions no longer require sticky load balancing; horizontal scaling works on ordinary HTTP infrastructure.
  • Streamable HTTP replaces HTTP+SSE. SSE is deprecated for new remote servers. Existing SSE servers still work; new code should default to Streamable HTTP.
  • Server discovery metadata. Servers can now publish a manifest a registry or crawler can read without opening a session. This unblocks the public MCP registry initiative.

The three transports you need to know

TransportUse case2026 status
stdioLocal tools, subprocess-spawned servers (Claude Desktop, Claude Code)Stable. Default for local.
Streamable HTTPRemote shared servers, multi-tenant deploymentsThe 2026 standard. Stateless, single endpoint, supports POST and GET.
HTTP+SSEExisting remote deployments from 2024–2025Deprecated. Backwards-compatible but no new features.

The exam tests transport selection directly. The rule of thumb: stdio for anything spawned locally by the client, Streamable HTTP for anything you would deploy behind a load balancer.

What an MCP Server Exposes

A server exposes three primitive types. Understanding which to use when is the most common exam question after transport selection.

PrimitiveWhat it isWhen to use itLangChain analog
ToolsFunctions the LLM can callAnything that takes input and produces output, or has side effects@tool
ResourcesRead-only data exposed at file-like URIsDocuments, configuration, KB entries with stable identifiersA RAG document with a fixed ID
PromptsReusable prompt templates parameterized by clientWorkflow templates the user picks from a menuChatPromptTemplate

The schema for each is derived from the function signature in your server code. Parameter types become the input schema, return types become the output type, docstrings become the description the LLM reads when deciding whether to call the tool. The decorator pattern in FastMCP (the high-level Python SDK) mirrors @tool in LangChain:

from fastmcp import FastMCP

mcp = FastMCP("acme-support")

@mcp.tool
def check_account(email: str) -> str:
    """Look up a customer account by email."""
    # ...
    return f"Account for {email}: Pro plan, active"

if __name__ == "__main__":
    mcp.run()  # defaults to stdio transport

Tool descriptions are prompts

This is the part nobody writes down explicitly. The docstring on your tool is read by the LLM at decision time. Vague docstrings cause tool-selection errors. The exam tests this with scenarios like "an agent with 22 tools has 60% tool-selection accuracy — what changes?" The first-order fix is almost never "use a smarter model"; it is "write more discriminating tool descriptions" or "split the tool surface across subagents."

When to Use MCP vs Anthropic Skills vs Native @tool

This decision shows up across both CCA-F (Domain 2: Tool Design & MCP Integration, 18%) and NCP-AAI (Agent Development, 15%). The exam wants a defensible rule, not vibes.

MCP vs Skills vs native @tool

ApproachBest whenAvoid when
Native @tool / @function_callTool is single-team, single-agent, lives in the same repo as the agentMore than one agent or team needs it
Anthropic SkillsWorkflow is Claude-specific, model-controlled, and benefits from prompt + tool packagingYou need cross-vendor portability or non-Claude clients
MCP serverTool is reused across agents, teams, or vendors. Implementation owned by a platform teamTool is one-off, single-caller, and standing up a server adds more overhead than it saves

The CCA-F exam has a recurring scenario shape: "Team A built an agent with three tools. Team B wants to use two of those tools in a different agent. What is the correct architectural change?" The right answer is almost always "extract the shared tools into an MCP server." It is not "copy the code into Team B's repo." It is not "ask Team A to maintain a Python package." MCP is the explicitly-correct answer pattern for cross-team tool sharing.

Master These Concepts with Practice

Our CCA-F practice bundle includes:

  • 6 full practice exams (390+ questions)
  • Detailed explanations for every answer
  • Domain-by-domain performance tracking

30-day money-back guarantee

Architecture Patterns That Show Up on the Exam

Pattern 1: Platform team owns the MCP server

The most common production pattern. A central platform team owns one or more MCP servers. Agent teams consume them. Schema changes go through the platform team. New tools land in one place. This is the architecture the CCA-F exam expects you to recommend for cross-team scenarios.

Pattern 2: Hybrid agents (MCP + native tools)

Agents do not have to choose. A LangChain or LangGraph agent can mount MCP tools as first-class tools alongside native @tool definitions. The exam tests this: "When should an agent use MCP tools versus its own?" The answer: native for agent-specific logic, MCP for shared infrastructure. Mix them in the same tools=[] list.

Pattern 3: Sub-agent dispatch with MCP

When tool count grows past ~15–20, tool-selection accuracy degrades. The exam-tested fix is sub-agent dispatch: a coordinator routes to specialist sub-agents, each of which sees only its own focused tool surface. MCP servers slot in naturally because each sub-agent can mount only the MCP servers relevant to its domain.

The Exam Angles (CCA-F + NCP-AAI)

The same MCP concepts appear with different framing in both exams.

Claude Certified Architect (CCA-F) — Domain 2: Tool Design & MCP Integration (18%)

  • Transport selection (stdio vs Streamable HTTP) for given deployment shapes
  • .mcp.json configuration placement (project-level vs user-level vs directory-level)
  • Tool description quality and its effect on selection accuracy
  • MCP vs Anthropic Skills vs native @tool decision criteria
  • Error handling: structured errors, isRetryable flags, idempotency

NVIDIA NCP-AAI — Agent Architecture & Design (15%) + Agent Development (15%)

  • Why standardized protocols matter at multi-agent scale (the N×M argument)
  • Tool architecture: separation of tool implementation from agent reasoning
  • Cross-framework interop (Claude Desktop, LangChain, OpenAI Agents SDK speaking MCP)
  • When to introduce MCP as part of an agent platform

If you have not built an MCP server end-to-end, both exams will feel abstract on these questions. The lab below fixes that.

What sets us apart

Read the protocol, then build one

Practice questions teach the rules. The lab makes the protocol muscle memory by walking you through a real server end-to-end.

Browse all labs

Frequently Asked Questions

Next Steps

If you are preparing for either CCA-F or NCP-AAI, the fastest way to make these concepts stick is to build a server. Read the protocol, then write 50 lines of FastMCP, then connect a LangChain agent to it. The exam tests pattern recognition; the lab makes the patterns muscle memory.

Make it muscle memory

Open the MCP lab

Stand up a server, connect a client, build a hybrid MCP+native agent. ~40 minutes, all in your browser.

Ready to Pass the CCA-F Exam?

Join thousands who passed with Preporato practice tests

Instant access30-day guaranteeUpdated monthly