The Model Context Protocol is an open standard that lets any AI app plug into any tool or data source through one common socket — like USB-C did for chargers. Instead of writing custom glue for every integration, you run an MCP server that exposes tools, resources, and prompts, and any MCP client (Claude Desktop, Claude Code, your app) can use them.
MCP has three roles. Hover the diagram pieces. The key insight: the server is reusable across every host, and the host can connect many servers at once. That many-to-many web is what makes the ecosystem compound.
Hover a box to see its role.
| Primitive | What it is | Example |
|---|---|---|
| Tools | Actions the model can call (model-controlled) — same anatomy as native tools. | create_issue, run_query |
| Resources | Read-only data the host can attach as context (app-controlled). | a file, a DB row, a wiki page |
| Prompts | Reusable prompt templates a user can invoke (user-controlled). | a "/summarize-PR" template |
A client talks to a server over a transport. Two common ones: stdio — the server runs as a local subprocess, ideal for local tools (your filesystem, a local DB); and streamable HTTP — the server runs remotely, ideal for shared/hosted integrations with auth. Choosing the transport is a deployment decision: local-and-private → stdio; shared-and-networked → HTTP.
Curated companion: modelcontextprotocol.io — Introduction · Anthropic — MCP.