What MCP is
MCP is an open protocol, introduced by Anthropic in November 2024, that standardizes how AI apps connect to external tools, data, and prompts. The tagline: "USB-C for AI" — one connector between models and the world. Messages use JSON-RPC 2.0.
The problem it solves: M×N → M+N
Without a standard, connecting M AI apps to N tools means M×N bespoke integrations. MCP lets each app implement a client once and each tool ship a server once → M + N. That "integration explosion" framing is the canonical interview answer for why MCP exists.
Architecture — three roles (candidates conflate these)
- Host — the AI app the user interacts with (Claude Desktop, an IDE like Cursor, a custom agent). Manages the LLM and orchestrates clients.
- Client — lives inside the host; keeps a 1:1 stateful connection to a single server. N servers = N clients.
- Server — a program that exposes capabilities (a GitHub server, a Postgres server). Servers hold no LLM; they just expose primitives.
Three primitives — by who controls invocation
- Tools (model-controlled) — functions the model chooses to invoke to act (query a DB, send email).
tools/list,tools/call. - Resources (app-controlled) — read-only data/context the host decides to surface, addressed by URI.
resources/read. - Prompts (user-controlled) — pre-authored templates the user explicitly selects (a slash command).
prompts/get.
Mnemonic: Tools = model decides, Resources = app decides, Prompts = user decides.
Transport & auth (where stale content goes wrong — be current)
- stdio — the client launches the server as a subprocess (JSON-RPC over stdin/stdout). For servers.