Host, client and server: who does what
Say your AI app has a weather server connected and you ask about New York. A small part of the app called a client sends that server one short request: run the tool called get_weather, with New York as the location. The server runs it and returns the result, and the model answers from that.
MCP fixes the shape of that request and its reply, so one server works in any app that speaks the protocol. The app itself, whether Claude Code, Claude Desktop or VS Code, is the host. It keeps one client per server, each holding a single connection, so VS Code with Sentry's server and the local filesystem server attached runs two of them.
The word "server" says nothing about where the program runs. A local one is launched by the host on your own machine, under your account, the way Claude Desktop starts the filesystem server, and it usually serves one client. A remote one runs on someone else's platform, as Sentry's does, and usually serves many clients at once.
Think of MCP like a USB-C port for AI applications. Just as USB-C provides a standardized way to connect electronic devices, MCP provides a standardized way to connect AI applications to external systems.
What an MCP server lets an agent do
Connected to the right servers, an agent can read your Google Calendar and Notion, and Claude Code can build a whole web app from a Figma design.
Every tool counts as arbitrary code execution under the specification, and a host must get your explicit consent before calling one. The spec's tools page also asks apps to show you the inputs a call will send. For a local server, that prompt comes late: the program is already running when it appears. So read the command in the app's config before the server starts: which program it runs, and with which arguments.
- The official servers repository keeps a short set of reference servers: Everything, Fetch, Filesystem, Git, Memory, Sequential Thinking and Time. Its README calls them educational examples for people building their own, not production-ready solutions.
- Starting one takes a single line, such as
npx -y @modelcontextprotocol/server-memoryoruvx mcp-server-git. - A remote server has nothing to install. Claude Code adds Notion's with
claude mcp add --transport http notion https://mcp.notion.com/mcp, the example in Anthropic's MCP docs.
The shots on this page are X's own embeds of each post, with times in US Pacific time. Select one to open the post on X.
What a server offers: tools, resources and prompts
Before a client can ask for the weather, it has to know the tool exists. It first asks for the server's tools and gets back each one's name, description and the inputs it accepts (tools/list), and only then calls one (tools/call). A resource is fetched with resources/read, and prompts often turn up in an app as slash commands.
On a database server, the app loads the schema into context as a resource. When your question needs data, the model runs a query through a tool. The prompt with worked examples for those tools is yours to pick.
A server can also ask you for more input, for example to confirm an action. The spec calls that elicitation.
| Primitive | What it is | Examples in the MCP docs | Who controls it |
|---|---|---|---|
| Tools | Functions the model calls to act: write to a database, call an API, change a file | Search flights, send messages, create calendar events | The model |
| Resources | Read-only data the app pulls in as context, each at its own URI | Documents, knowledge bases, calendars | The application |
| Prompts | Instruction templates that tell the model how to use the server's tools and resources | Plan a vacation, summarize my meetings, draft an email | The user |
Who made MCP, and who runs it now
Anthropic open-sourced MCP on November 25, 2024, calling it "a new standard for connecting AI assistants to the systems where data lives." The problem it named was integration sprawl, where every new data source needed its own custom implementation. Ready-made servers for Google Drive, Slack, GitHub, Git, Postgres and Puppeteer shipped with it.
No single company owns it today. The project sits under LF Projects, LLC as its own series, named Model Context Protocol, and seats on its steering group belong to people, not their employers. A change to the spec starts as a Specification Enhancement Proposal (SEP), published before it lands.
The official MCP Registry, still in preview, stores metadata about public servers but not their code. Security scanning is left to package registries such as npm and PyPI and to marketplaces downstream, so an entry there tells you a server exists, not that it's safe.
10,000+
active public MCP servers on 9 December 2025
Source: Anthropic, 9 December 2025 (read November 3, 2026)
97M+
monthly SDK downloads across Python and TypeScript, counted the same day
Source: Anthropic, 9 December 2025 (read November 3, 2026)
Anthropic open-sources MCP
Ready-made servers ship with it.
Source: Anthropic, 25 November 2024 (read November 2, 2026)
Revision 2025-03-26 is finalized
Streamable HTTP replaces HTTP+SSE, and OAuth 2.1 authorization arrives.
Source: MCP changelog, revision 2025-03-26 (read November 3, 2026)
Revision 2025-11-25
Adds URL mode elicitation and experimental tasks.
Source: MCP changelog, revision 2025-11-25 (read November 3, 2026)
Anthropic donates MCP to the Agentic AI Foundation
A directed fund under the Linux Foundation.
Source: Anthropic, 9 December 2025 (read November 3, 2026)
Revision 2026-07-28 makes MCP stateless
No protocol-level sessions and no initialize handshake.
Source: MCP changelog, revision 2026-07-28 (read November 3, 2026)
Read on November 2, 2026: every page linked here and under Sources. Re-read on November 3: the specification changelogs, the versioning page and Anthropic's donation post. The three shots are from that day.
Reference: how MCP messages travel, stdio and Streamable HTTP
With stdio, the host starts the server as a subprocess on your machine. The server reads requests from standard input and writes replies to standard output, one message per line. The stdio binding forbids it from writing anything to stdout that isn't a valid MCP message, so one stray debug print can break a local server. Logs go to stderr, which the client may keep or ignore.
With Streamable HTTP, the server runs as its own process behind one endpoint, such as https://example.com/mcp. Each client message is a separate HTTP POST. The server answers with one JSON object, or a short stream of events that belongs to that request alone. This transport replaced the older HTTP+SSE transport in protocol version 2025-03-26, and Claude Code's docs mark their SSE option deprecated too.
Revision 2026-07-28, the current specification, made MCP stateless: every request carries its own protocol version and capabilities, so a server can handle each one by itself. Earlier revisions opened a session with an initialize handshake. The new one drops protocol-level sessions and the long-lived GET stream, and a client may send server/discover first to learn which versions and features a server supports.
Two older client features are now deprecated: sampling, where a server asks the host's model for a completion, and logging.
Sign-in is optional. Under the authorization spec, a server reached over HTTP should use its OAuth 2.1 flow, while a stdio server takes its credentials from the environment.
Each revision of the specification is named for the date of its last backward-incompatible change, and an older app may still speak an earlier one.
Messages travel as JSON-RPC 2.0, as in this tools/call request for the weather, copied from the spec's tools page without the metadata a real request carries.
{
"jsonrpc": "2.0",
"id": 2,
"method": "tools/call",
"params": {
"name": "get_weather",
"arguments": { "location": "New York" }
}
}| 2024-11-05 | 2025-03-26 | 2025-11-25 | 2026-07-28 Our pick | |
|---|---|---|---|---|
| Streamable HTTP transport | No | Yes | Yes | Yes |
| OAuth 2.1 authorization framework | No | Yes | Yes | Yes |
| An initialize handshake before any request | Yes | Yes | Yes | No |
| URL mode elicitation | No | No | Yes | Yes |
| Tasks for long-running requests | No | No | Experimental | An extension |
Our pick: 2026-07-28. The current revision, per MCP's versioning page, and the one to write a new server against.
Sources: MCP changelog, revision 2025-03-26 (read November 3, 2026), MCP changelog, revision 2025-11-25 (read November 3, 2026), MCP changelog, revision 2026-07-28 (read November 3, 2026), MCP versioning page (read November 3, 2026)
Frequently asked questions
Is an MCP server the same as an API?
No. An API is one service's own interface, designed its own way, and an MCP tool often calls one underneath. A weather server might call a weather API inside, while the host only sees a tool named get_weather and the inputs it takes.
Do I need to write code to use an MCP server?
You change a setting, not code: a command in Claude Code, or a block of JSON in an app such as Claude Desktop or Cursor. Code comes in only when you write a server of your own, in any of the several languages the official SDKs cover.
Is MCP the same as Agent Skills?
No. A skill is a folder of instructions, and an MCP server is a live connection to another program. The specification does list one extension, Skills over MCP, that sends structured instructions for agent workflows over an MCP connection.
Which apps can use MCP servers?
Claude, ChatGPT, Visual Studio Code and Cursor are among the apps MCP's introduction names, and each keeps its own configuration. Claude Code stores servers in ~/.claude.json or in a project's .mcp.json, while Claude Desktop, Cursor and others read an mcpServers block of JSON.
Is MCP free to use?
The protocol is. Code and specification contributions are under the Apache License 2.0, and documentation outside the specification is under Creative Commons Attribution 4.0. A server can still need your own account or API key for the service behind it.
Can an MCP server see my whole conversation?
No, only what the host sends it. The specification says a host needs your explicit consent before it exposes your data to a server, and without that consent it may not pass resource data on elsewhere either.
Sources
- Model Context Protocol: What is MCP? https://modelcontextprotocol.io/docs/getting-started/intro
- MCP docs: Architecture overview https://modelcontextprotocol.io/docs/learn/architecture
- MCP docs: Understanding MCP servers https://modelcontextprotocol.io/docs/learn/server-concepts
- MCP specification (revision 2026-07-28) https://modelcontextprotocol.io/specification/latest
- MCP specification: Transports https://modelcontextprotocol.io/specification/latest/basic/transports
- MCP specification: stdio transport https://modelcontextprotocol.io/specification/latest/basic/transports/stdio
- MCP specification: Streamable HTTP transport https://modelcontextprotocol.io/specification/latest/basic/transports/streamable-http
- MCP specification: Authorization https://modelcontextprotocol.io/specification/latest/basic/authorization
- MCP specification: Tools https://modelcontextprotocol.io/specification/latest/server/tools
- MCP: Governance and stewardship https://modelcontextprotocol.io/community/governance
- MCP: The MCP Registry https://modelcontextprotocol.io/registry/about
- Anthropic: Introducing the Model Context Protocol https://www.anthropic.com/news/model-context-protocol
- GitHub: modelcontextprotocol/servers https://github.com/modelcontextprotocol/servers
- Claude Code docs: Connect Claude Code to tools via MCP https://code.claude.com/docs/en/mcp
- MCP specification changelog: revision 2025-03-26 https://modelcontextprotocol.io/specification/2025-03-26/changelog
- MCP specification changelog: revision 2025-11-25 https://modelcontextprotocol.io/specification/2025-11-25/changelog
- MCP specification changelog: revision 2026-07-28 https://modelcontextprotocol.io/specification/2026-07-28/changelog
- MCP specification: Versioning https://modelcontextprotocol.io/specification/versioning
- Anthropic: Donating the Model Context Protocol and establishing the Agentic AI Foundation https://www.anthropic.com/news/donating-the-model-context-protocol-and-establishing-of-the-agentic-ai-foundation



