What is MCP, actually?
Model Context Protocol explained without the marketing. What it solves, what it doesn't, and when stdio beats HTTP.
MCP is a wire-level protocol. That's the whole answer, and the whole confusion.
I started building MCP servers in February 2026. The official docs talk about "tools, prompts, resources" like they are three peer concepts. After 56 tools across six servers I will tell you the truth: tools is 95% of why you use it. Prompts and resources are nice. Tools is what makes the model do things.
A tool in MCP is a JSON-RPC endpoint with a typed schema. The model sees the schema, decides to call the tool, sends arguments, gets a response. That is the entire mechanism. Everything else, transport, auth, discovery, multi-tenancy, is wrapping around that one mechanism.
The thing the docs don't tell you: MCP doesn't care about latency. The protocol assumes you are local or on a fast connection. If you bolt MCP onto a slow remote API, the model sits there waiting and the user gets a sluggish response. I learned this the hard way trying to wrap a public REST API behind MCP without a cache.
When MCP wins: you have a structured action surface (a CRM, a memory store, a video pipeline), the model needs to invoke the action, and you want type-safety on the arguments. When MCP loses: you just want the model to read a doc. Use llms.txt for that. MCP is for verbs, llms.txt is for nouns.
The repos in my hub that show this: local-memory-mcp wraps SQLite + FTS5 + a knowledge graph behind 13 tools. mcp-personal-suite wraps email, calendar, messaging, and four other domains behind 49 tools. mcp-video wraps ffmpeg + Playwright behind 8 tools. Each one is a domain expressed as MCP verbs, nothing more.
If you remember one thing: MCP is the mechanism your model uses to act on a domain. Pick the domain first, write the verbs second, choose the transport last.