Overview

The Model Context Protocol (MCP) is an open JSON-RPC protocol, introduced by Anthropic in late 2024 and now stewarded under the Linux Foundation, that lets AI clients discover and use capabilities exposed by servers. A server offers three primitives: tools (callable functions, listed with tools/list and invoked with tools/call), resources (readable data), and prompts (reusable templates). One server works with any MCP-capable client, which removes per-app, per-tool adapters.

The standard transports are stdio (a local subprocess) and Streamable HTTP (each message is an HTTP POST to one endpoint, with replies as JSON or an SSE stream). The older standalone HTTP+SSE transport is deprecated. The current specification revision, 2026-07-28, is stateless: it removes the initialize handshake and session IDs, so every request carries its protocol version and capabilities, and it deprecates roots, sampling, and logging. Clients and servers fall back to the older handshake when talking to older revisions.

Build an MCP server when the same tools should serve several clients. For one app and one model, native tool-use is simpler. Treat every server as a trust boundary: tool descriptions and results are untrusted input (prompt-injection), so scope permissions tightly.