A universal adapter for AI
Without a standard, every AI app needs custom integration code for every service. The Model Context Protocol (MCP) is an open standard that fixes this: write an MCP server once for a service (GitHub, Postgres, your internal API), and any MCP client (Claude Code, Claude Desktop and many other apps) can use it.
| Role | What it does | Example |
|---|---|---|
| Host / client | The AI app that connects to servers and gives their capabilities to the model | Claude Code |
| Server | Exposes capabilities from a service | A GitHub, Sentry or database server |
Messages between them follow the same format no matter how they travel. That's what makes MCP transport-agnostic.
Transports
| Transport | How it works | Typical use |
|---|---|---|
| stdio | The client launches the server as a local process and talks over stdin/stdout | Local tools, CLIs and file access |
| HTTP (streamable HTTP) | The server runs remotely and the client connects over HTTPS | Hosted SaaS servers like Notion or Sentry |
| SSE | An older streaming transport | Legacy servers. It's deprecated, so prefer HTTP. |
The three primitives
The control split is the key idea:
- Tools are chosen by the model while it works.
- Resources are selected by the application or user to supply context.
- Prompts are triggered by the user as ready-made workflows.
create_pull_request(title, body)schema://users from your database serverquery_metrics(service, window)How MCP fits into Claude Code's context
At session start, Claude Code loads only the names of each server's tools plus any server instructions. Full tool schemas load on demand when Claude needs them (tool search is on by default). Connecting a server with 40 tools doesn't eat 40 tools' worth of context up front.
If a good CLI exists (gh, aws, stripe), Claude can often just use it through Bash. Reach for MCP when there's no CLI, when you need authenticated SaaS access (OAuth), or when you want structured tools and resources.
Check your understanding
In MCP, which side exposes capabilities from a service?
Who controls when a TOOL is used?
Which transport launches the server as a local process?
How do MCP tools load into Claude Code at session start?