Context exposure
How context (data, tools, prompts) is exposed to AI applications.
Before MCP, every AI application had to build custom integrations for every data source or tool it wanted to use — the N×M integration problem: N applications × M integrations, each one bespoke.
MCP solves this by defining a single open standard for connecting AI applications to external systems. Build an MCP server once, and any MCP-compatible host can use it.
flowchart LR
subgraph before["Before: N×M custom integrations"]
A1[App 1] --> D1[(Data source 1)]
A1 --> D2[(Data source 2)]
A2[App 2] --> D1
A2 --> D2
A3[App 3] --> D1
A3 --> D2
end
subgraph after["With MCP: N+M"]
B1[App 1] --> P{{MCP}}
B2[App 2] --> P
B3[App 3] --> P
P --> S1[(Server 1)]
P --> S2[(Server 2)]
end
before ~~~ after
Think of MCP as the “USB-C of AI applications”: one standard connector between models and the outside world.
Context exposure
How context (data, tools, prompts) is exposed to AI applications.
Message format
JSON-RPC 2.0 messages exchanged between clients and servers.
Version & capability negotiation
How clients and servers agree on protocol versions and features — a connection handshake in legacy revisions; per-request metadata plus server discovery in the current stateless revision.
Primitives & transports
Server primitives (tools, resources, prompts), client primitives (e.g. elicitation), and standard transports: stdio and Streamable HTTP.
📝 Check your knowledge