My Notes on MCP - Part 1
Why MCP?
Before MCP, every AI application had to build custom integrations for every data source or tool it wanted to use, creating the N × M integration problem.
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.
MCP Does Not Standardize
- Which AI model to be used, or how the model reasons
- How the host application renders UI or manages conversations
- The internal implementation of servers (any language, any backend)
- Agent orchestration logic
Key Facts
- MCP is open source and model-agnostic, meaning it works with any LLM.
- MCP was introduced by Anthropic in November 2024.
- In December 2025, Anthropic donated MCP to the Agentic AI Foundation (AAIF), part of the Linux Foundation.
- The MCP specification changed significantly in the 2026-07-28 revision, introducing stateless requests and removing the initialize handshake.
There are 3 Participants in MCP:
1. Host
The AI application the user interacts with (e.g., Claude Desktop).
Responsibilities:
- Manages clients
- Enforces security policies and user consent
- Coordinates the model
2. Client
A component inside the host that maintains a 1:1 relationship with exactly one server.
3. Server
A program that exposes capabilities to clients, including:
- Tools
- Resources
- Prompts
Servers can run locally or remotely.
One host can run many clients, but each client connects to exactly one server.
Primitives
1. Server-Side Primitives
- Tools - controlled By - Model
- Resources - controlled By - Application
- Prompts - controlled By - User
2. Client-Side Primitives
- Elicitation: The server requests additional input from the user via the client.
- Sampling: Deprecated in the new version.
- Roots: Deprecated in the new version.
The 2026-07-28 specification revision deprecated Sampling and Roots, though they will remain in the specification for at least 12 months.
Layers
1. Data Layer
Defines the message format using JSON-RPC 2.0.
Examples:
- Requests
- Responses
- Notifications
2. Transport Layer
Defines how data moves between client and server.
Supported transports include:
- stdio
- Streamable HTTP
Connection Model
1. Legacy MCP
Connection starts with an /initialize request.
- Client and server exchange protocol versions and capabilities.
- Client sends the
notifications/initializednotification.
2. Latest MCP (2026-07-28)
MCP is now stateless and does not require a handshake.
Every client request carries:
- Protocol version
- Client information
- Client capabilities
These are included in the _meta fields.
Server capabilities are discovered through:
Protocol Versioning
Protocol versions use a date-based format:
Example:
If a server does not support the protocol version declared in a request, it responds with: