MCP server architecture and how the protocol works
MCP's architecture is three roles and one message format. A host application embeds one or more clients; each client holds a 1:1 connection to a server; every message is JSON-RPC. Once that shape is clear, most confusing behaviour stops being confusing.
The design decisions that actually affect you are transport (a local stdio process sees your filesystem and sends nothing to a third party; a remote HTTP endpoint is shareable but puts a vendor in the path) and which primitives a server uses — tools are model-controlled, resources are application-controlled, and mixing them up produces servers that agents use badly.
These pieces explain the protocol as it is implemented today, including the parts with thin client support, so you know what you can rely on.
Transport is a data-boundary decision before it is a technical one. Choose it based on where you are willing for the data to go.
9 articles
Local MCP Server: Run Tools On Your Own Machine
A local MCP server gives an AI client controlled access to tools and data on the same computer, without turning that capability into a hosted service.
MCP Elicitation: Ask the User Mid-Tool-Call
MCP elicitation turns a one-shot tool call into a user-guided workflow, but only when the client, transport, and server all handle interruption correctly.
MCP Sampling: Let Servers Call the Model Back
MCP sampling gives a server access to the client’s model without its own API key, but its limited support and deprecation make it a compatibility feature, not a sound new dependency.
MCP Transports: stdio vs SSE vs Streamable HTTP
Three transports, one right answer for each situation — and one you should stop using.
MCP Tools vs Resources vs Prompts: When to Use Each
Three primitives, one you'll actually use, and two most servers skip on purpose.
What Is an MCP Gateway (and Do You Need One)?
One endpoint for every MCP server sounds tidy — until you count the tools it dumps into your context window.
How does MCP actually work? The request flow in plain English
Strip away the buzzwords and MCP is almost boringly simple: three parts, one connection, four steps. Once you see the flow, every 'why won't it connect' problem becomes obvious.
The State of MCP Servers: what 3,646 tools across 300 servers actually tell us
I pulled every tool from every server we track and counted. The ecosystem is younger, more local, and less differentiated than the launch posts imply.
Local or remote MCP? The decision most people get backwards
Remote MCP sounds modern, so people reach for it. The data and the tradeoffs both say: default to local, and go remote only for specific reasons.
FAQ
What are the three roles in MCP architecture?
Host, client and server. The host is the AI application (Claude Desktop, Cursor); it embeds one client per server connection; each server exposes tools, resources or prompts. Messages travel as JSON-RPC over either stdio or HTTP.
What is the difference between stdio and HTTP transport?
stdio runs the server as a local subprocess that talks over standard input/output — private, fast, and able to see your filesystem. HTTP (streamable HTTP) reaches a hosted endpoint over the network — shareable across a team, but the vendor sits in the request path. Around 90% of servers today are stdio.
What are tools, resources and prompts?
Three primitives with different controllers. Tools are model-controlled actions the agent decides to call. Resources are application-controlled data the host chooses to attach. Prompts are user-controlled templates. Servers that expose data as tools when it should be a resource make agents call things they should just be given.
Other topics
Looking for a server rather than an article? Best MCP servers by task