An MCP server is a process that wraps an external system and exposes tools, resources, and prompts to MCP clients over stdio (local) or streamable HTTP (remote).
Think of the AI app on your laptop as someone sitting in an office. The office has special doors on the wall labeled GitHub, Filesystem, Postgres, Slack. Behind each door is a tiny helper whose only job is to carry requests from the office to that external system and bring results back. Each helper is an MCP server. Some helpers live in the same building (the host launches them as a program on your machine). Others live far away in a data center (you reach them over the internet). The helper does the real work on the other side and shields the office from the complexity.
Concept explanation~2 min read
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
Concept explanation~2 min read
Everything you need to truly understand this topic: intuition, mechanics, step by step explanation, code, formulas, and worked example. Click to expand.
When your teammate says they built an MCP server, they built a process that wraps an external system and exposes it to AI hosts through a standard protocol. Of the three MCP roles (host, client, server), the server does the most concrete work: it actually talks to GitHub, the filesystem, Postgres, Slack, or whatever the integration targets.
This deep dive covers what the server is, what it exposes, the two deployment shapes, and where the role boundary between server, client, and host delivers its payoff.
The definition, unpacked
An MCP server is a process that exposes capabilities (tools, resources, and prompt templates) to MCP clients over a transport.
Four pieces carry weight. Process means a real running OS process you can list with ps or see in a metrics dashboard. Exposes capabilities means the server advertises what it can do through the initialize handshake and responds to client requests against that catalog. Tools, resources, and prompts are the three primitive families the protocol defines, and a server can offer any combination. Over a transport means the JSON-RPC messages travel over a pluggable wire layer; the server does not care which transport, only that messages arrive correctly framed.
The server does not see the LLM. The model lives in the host application, several layers away. When the model decides to call a tool, the host's MCP client sends a tools/call message to the server. The server executes the underlying action and returns a result. The server has no idea which model emitted the call, what prompt triggered it, or what the host will do with the response. This separation is what makes servers composable.
Situations where this technique stops working.
2–4 min · Everything important, quickly.
Real products, models, and research that use this idea.
- Official Anthropic servers (filesystem, fetch, memory, sqlite, sequential-thinking) ship at github.com/modelcontextprotocol/servers and are the default local servers for Claude Desktop.
- The GitHub MCP server was rewritten in Go in 2025 and is the canonical example of a remote server exposing issues, PRs, and code search through MCP.
What an interviewer would ask next. Try answering before peeking at the approach.
QHow does a stdio server differ operationally from a streamable HTTP server?
Stdio: the host launches the binary as a subprocess, talks over stdin/stdout, inherits the host's sandbox, no network exposure. HTTP: long-lived service in the vendor's cloud, multi-tenant, requires OAuth 2.1 plus PKCE. The same JSON-RPC messages travel either way; only the framing differs.
Red flags & common mistakes
The phrases that signal junior thinking. Click to expand.
Red flags & common mistakes
The phrases that signal junior thinking. Click to expand.
Calling the server an AI service. The server is plumbing that wraps an existing system; the model lives in the host, not the server.
60 second bullets to scan on the way to the call.
Define an MCP server using the three capability families it exposes (tools, resources, prompts).
Name the two deployment shapes: stdio subprocess and remote HTTP service.
Primary sources. Browse if you want the original framing.
Same topic, related formats. Practice these next.