Class 1: Why MCP Exists
Duration: ~20 minutes | Level: Beginner | Prerequisites: None, this is where everything starts.
This course teaches the protocol itself instead of any one SDK, so it tracks the current specification: 2026-07-28, published 28 July 2026. A revision is named by a date in the form YYYY-MM-DD, the last date on which a change broke backwards compatibility. The spec calls revisions up to 2025-11-25 legacy, calls 2026-07-28 and later modern, and its compatibility matrix gives the outcome of each pairing:
| Client | Server | Outcome |
|---|---|---|
| Modern | Modern | Works. A version the server does not support comes back as UnsupportedProtocolVersionError, code -32022, listing the versions it does support, and the client retries with one of those. |
| Modern | Legacy | Fails. The legacy server may reject the request with an error of its own choosing, or stay silent. |
| Legacy | Modern | Fails. A legacy client cannot move forward to a newer revision. |
| Dual-era | Modern or legacy | Works. The client probes the server, sees which era answers, and speaks that one. |
| Legacy | Dual-era | Works. The server answers initialize and serves the legacy revision. |
Plenty of deployed servers, and the Java MCP SDK 2.0.0, are still legacy. So where a mechanism changed, this course labels it with the revision it belongs to instead of dropping the older form: understanding why the old design was replaced is most of the value. The Java courses on this site pin to 2025-11-25 deliberately, because that is what the Java SDK can actually run.
The Problem: A Model That Cannot Reach Anything
A large language model is in the position of an expert locked in a windowless room. People pass notes under the door and the expert writes replies. The advice can be very good, but the expert can only work with what the note contains.
ChatGPT, Claude and Gemini reason, write and synthesise information well. By default, though, they know only what is in their training data, the text they learned from before release, and whatever you paste into the prompt. They cannot:
- Query your database
- Read a file from your filesystem
- Call your company's internal API
- Check what's currently in your calendar
- Look at the error your application threw five minutes ago
Only two paths carry information into the model:
Nothing connects the model to the five boxes on the right. This is an architectural limitation: the model is trained on data fixed at training time, while the information it would need changes constantly. Something has to carry that changing information in to the model.
The First Wave: Ad-hoc Integrations
When OpenAI released GPT-4's function-calling feature in 2023, developers rushed to connect AI to the real world. "Function calling" is the model API feature where you describe a set of functions to the model: name, parameters, and what each does. The model can then ask your code to run one of them with structured arguments, a JSON object matching the parameter schema you declared, instead of producing text. The pattern was simple:
- Define functions in the API request
- The model decides when to call them
- Your code executes the function and feeds results back
Those three steps travel as six messages:
Only your application touches the database. The model asks for the function to be run, and your application decides whether to run it.
Function calling connected models to real systems and is still in wide use, but every integration was completely custom. You wrote the tool definition, the execution logic, and the result-handling for every application, every model, every use case. If you wanted the same database tool to work in your internal chatbot and in the AI code assistant your team was evaluating, you wrote it twice. If you switched AI providers, you rewrote the tool layer from scratch. The API contract changed between OpenAI and Anthropic and Google, incompatibly.
Every AI application needed its own integration with every tool:
| AI applications | Tools or data sources | Integrations written ad-hoc | Integrations written with MCP |
|---|---|---|---|
| 2 | 2 | 4 | 4 |
| 3 | 4 | 12 | 7 |
| 5 | 10 | 50 | 15 |
| 10 | 20 | 200 | 30 |
The ad-hoc column multiplies the two counts, and the MCP column adds them.
Enter MCP: A Standard Protocol
In November 2024, Anthropic published the Model Context Protocol (MCP), an open standard for connecting AI models to external tools and data sources.
Agree on one protocol for how an AI model communicates with external capabilities, and each side is implemented once. The server author implements the protocol instead of one integration per client, and the client author instead of one integration per server.
- MCP servers expose capabilities: tools the model can run, resources it can read, prompts the user can pick. Class 3 takes each one apart.
- MCP clients, embedded in AI applications, consume them. Class 2 separates the four actors: host, client, server and model.
- The protocol between them is standardised: JSON-RPC 2.0 names a method, passes its arguments as JSON and returns a JSON result. It travels over a defined transport, the channel the messages take: a local pipe or an HTTP connection. Class 4 covers the messages, Class 5 the transports.
Build an MCP server for your database once, and every MCP-compatible AI application that speaks a revision your server also speaks can use it. Switching from Claude Desktop to Cursor to a custom agent framework leaves the server unchanged, and a server that wants both eras implements both. Before and after:
The three custom integrations on the left collapse into one protocol on the right. The server also holds the credentials and decides what each client may do. Class 7 covers consent, token audience, and what a server must refuse.
Why Anthropic? Why Now?
Why did Anthropic create this, and not OpenAI? OpenAI was the bigger player at the time and had the market reach to impose a standard on its own. MCP came from Anthropic for a pragmatic reason: Anthropic was building Claude's tool-use capabilities and Claude Desktop simultaneously. They were building both sides themselves, which exposed the full cost of ad-hoc integration. The protocol emerged from internal necessity and was open-sourced.
Why 2024? Several things converged: models were finally capable enough that tool use became the bottleneck. Autonomous agents ("agentic AI", meaning AI systems that decide on their own which actions to take to achieve a goal, instead of responding to a single instruction) became a serious engineering concern. And the ecosystem was fragmented enough that developers were loudly demanding a standard.
Adoption
A protocol is only useful once enough implementations speak it. Within months of publication, MCP was integrated into:
| Application | What it is |
|---|---|
| Claude Desktop | Anthropic's own application |
| Cursor | one of the leading code editors built around a model |
| Zed | the editor |
| GitHub Copilot | Microsoft's coding assistant |
| Continue | open-source AI coding assistant |
Dozens of community tools and frameworks followed. ChatGPT and Gemini became MCP clients later, so by December 2025 the list covered OpenAI, Google, Microsoft and Anthropic products.
The community published over a thousand MCP servers within the first six months. By the time MCP entered the Linux Foundation in December 2025, the published counts looked like this:
| Measure | Value | As of | Published in |
|---|---|---|---|
| MCP Registry entries | close to 2,000 | 25 November 2025 | One Year of MCP |
| Published MCP servers | more than 10,000 | 9 December 2025 | Linux Foundation press release |
| Monthly SDK downloads | over 97 million | 9 December 2025 | MCP project announcement |
SDK here means the client and server libraries the project publishes for Python, TypeScript, Java and other languages. The numbers keep moving, so follow the links for the current ones.
On 9 December 2025, MCP became a founding project of the newly-formed Agentic AI Foundation (AAIF), a directed fund under the Linux Foundation co-founded by Anthropic, Block, and OpenAI, formalising it as a vendor-neutral industry standard.
What MCP Is Not
Four things MCP is often mistaken for:
| MCP is not | What is true instead |
|---|---|
| a model | Claude, GPT and Gemini do the reasoning. MCP carries the tool calls they produce and does not add any AI capability of its own. |
| a cloud service | Your own processes. You run every MCP server yourself: locally over a pipe, or remotely over HTTP. |
| an agent framework | LangChain, LangGraph and CrewAI in Python, or LangChain4j and Embabel on the JVM, run the higher-level loop of "decide what to do next, then what, then what". They call MCP to reach the tools the agent asks for. |
| Anthropic-only | An open specification, governed since December 2025 by the Agentic AI Foundation. Any client and any server can implement it, and Claude is one client among many. |
What to Take Into the Next Class
The problem MCP addresses is one of coordination. Without an agreed protocol, the same database or ticketing system gets wrapped once per application.
HTTP and USB-C did the same thing in their own areas. In both cases the technology underneath changed relatively little, and what changed was the contract: the shared agreement about how two things communicate, which let anyone build either side independently.
The dates in order:
This course teaches the last box, and the Java courses on this site teach the third.
In the next class, we look at the four actors in the MCP contract and how they relate.
Further Reading
- Specification: 2026-07-28: the overview page of the revision this course teaches, listing the JSON-RPC 2.0 base, the server features and the security principles.
- Versioning and Compatibility: where legacy, modern and dual-era are defined, and where the full compatibility matrix lives.
- Architecture: the specification's own description of hosts, clients and servers, which is where Class 2 picks up.
- JSON-RPC 2.0 Specification: the short RPC specification MCP encodes every message in, readable in one sitting.
- The 2026-07-28 Specification: the release post for the current revision, explaining the stateless core and what the migration costs.
- Introducing the Model Context Protocol: Anthropic's launch announcement of 25 November 2024, and the record of the first adopters.
- MCP joins the Agentic AI Foundation: the governance move, the founding members, and the adoption figures quoted above.
- OWASP LLM06:2025 Excessive Agency: why giving a model broad tool access without a permission step is a named risk, which is the problem Class 7 works on.
Sources
- Versioning and Compatibility: the legacy and modern definitions, the
-32022error code, and the compatibility matrix reproduced above. - Protocol Versioning: the
YYYY-MM-DDrevision name as the last date a backwards incompatible change was made. - The 2026-07-28 Specification: the publication date of the current revision and the breaking changes it carries.
- Specification: 2026-07-28: JSON-RPC 2.0 as the message format, and tools, resources and prompts as the features a server offers.
- Introducing the Model Context Protocol: the November 2024 publication date and MCP as an open standard.
- MCP joins the Agentic AI Foundation: the 9 December 2025 date, the AAIF as a directed fund co-founded by Anthropic, Block and OpenAI, and the 97 million monthly SDK downloads.
- Linux Foundation announces the formation of the Agentic AI Foundation: the "more than 10,000 published MCP servers" figure and the client list.
- One Year of MCP: the MCP Registry entry count as of 25 November 2025.
- Release v2.0.0, modelcontextprotocol/java-sdk: the Java MCP SDK 2.0.0 tracking specification revision 2025-11-25.
- Security Best Practices: an MCP server must not accept tokens that were not issued for it.