The MCP Architecture: What I Wish Someone Had Drawn on a Whiteboard for Me
A practical map of MCP architecture for developers who already know the acronym but keep mixing up host, client, and server.
Lee Li
Independent Developer · MCP Enthusiast
A practical map of MCP architecture for developers who already know the acronym but keep mixing up host, client, and server.
The shortest explanation
The useful mental model is:
User -> Host app -> Client connection -> MCP server -> Tools / Resources / Prompts
If you remember one line, remember that one. The host is the app the user is sitting inside. The client is the layer the app uses to communicate with a single MCP server. The server exposes capabilities.
Who this is for
This article is for developers who have already skimmed the MCP docs, even installed one server, but still find themselves asking:
Core Terms
What these MCP words actually mean:
Host = the app you open (Claude Desktop, Cursor).
Client = the part inside the host that handles one specific server connection.
Server = the thing that exposes tools/resources/prompts (e.g. filesystem server).
Tool = something the AI can do: search, query, send a message.
Resource = something the AI can read but not change (documents, schemas).
Prompt = a pre-made instruction from the server (e.g. "analyse this codebase").
The role boundary that matters
The most common confusion is between the host and the server.
If you're using Claude Desktop with a filesystem MCP server:
That separation sounds obvious once you've seen it in action. It is much less obvious if you've only read prose definitions.
One host, many clients, many servers
A single host can manage multiple client connections.
Example:
Claude Desktop
|- Client A -> Filesystem server
|- Client B -> Browser server
|- Client C -> Search server
You do not usually have one global client for everything. The cleaner mental model is one client connection per server.
Transport options
1. stdio
Recommendation: best default for local development.
The host launches the server as a subprocess and communicates over standard input/output.
Pros:
Cons:
2. SSE / HTTP-style transports
Recommendation: Use when the server should live outside the host process model.
Pros:
Cons:
Capability types
Tools
These do work. They are the reason most people care about MCP at all.
Examples:
Resources
These expose data that can be retrieved in a structured way.
Examples:
Prompts
These expose reusable prompt material through the server.
This part of the spec exists and can be useful, but many teams still treat MCP as mostly tool exposure in current practice.
Minimal architecture example
User asks Claude to find a config file
-> Claude Desktop (host) decides a tool call is needed
-> Host uses its client connection to talk to the filesystem MCP server
-> Server returns matching files
-> Host renders the result back to the user
Methodology note
This explanation is based on practical local testing on macOS with Claude Desktop and common filesystem/browser-style MCP setups, not a theoretical walk-through of every part of the spec.
My take
Most architecture explainers make MCP sound more abstract than it is. It is basically a standardised way for an app to speak to tool-providing servers. The spec matters.
Lee Li
Independent Developer · MCP Enthusiast
Building and breaking things with AI tools since 2023. MCP Find started as a personal project to track the rapidly evolving MCP ecosystem. Based in Hong Kong.