Model Context Protocol Overview

The Model Context Protocol (MCP) defines a unified, JSON‑RPC‑based interface that lets AI applications reliably request context and invoke actions from a variety of servers, while giving developers fine‑grained control over security, versioning, and user interaction.

Architecture overview

MCP follows a client‑server model where hosts (AI apps) instantiate MCP clients that maintain dedicated connections to MCP servers. The protocol separates a data layer (JSON‑RPC primitives‑tools, resources, prompts) from a transport layer (Stdio or Streamable HTTP), enabling flexible, language‑agnostic communication and real‑time updates.

Architecture overview of the Model Context Protocol (MCP)

Understanding MCP servers

MCP servers expose capabilities, such as tools, resources, and prompts to AI hosts. Tools are callable functions, resources provide read‑only contextual data, and prompts are reusable instruction templates. Servers declare these primitives during initialization, allowing clients to discover, invoke, and receive structured results, while supporting notifications for dynamic changes.

Understanding Model Context Protocol (MCP) servers

Understanding MCP clients

MCP clients are protocol‑level components instantiated by host applications. They manage connections to servers and expose features such as elicitation (requesting user input), roots (defining filesystem boundaries), and sampling (delegating LLM completions to the client). Clients mediate security, user consent, and context scoping for server interactions.

Understanding clients in the Model Context Protocol (MCP)

Understanding versioning

The protocol uses date‑based version strings (YYYY‑MM‑DD) to mark backward‑incompatible changes. The current version is 2025‑11‑25. During initialization, clients and servers negotiate a mutually supported version, and may gracefully terminate if none are compatible.

Understanding versioning in the Model Context Protocol (MCP)

More information