When using HTTP transports, the connection is typically stateless. However, MCP 1.0 required a stateful session to keep track of capabilities, roots, and subscriptions. In MCP 1.5 (2026), the core protocol transitioned to a Stateless Core, shifting state management to the Host rather than relying on persistent connections.
When an MCP connection opens, the first step is the handshake:
capabilities (e.g., "I support roots and sampling"). Note: Roots, Sampling, and Logging are deprecated in MCP 1.5 in favor of the Stateless Core.MCP Apps extend the protocol to allow servers to return interactive user interfaces — forms, dashboards, and visualisations rendered in sandboxed iframes — directly within host applications like Claude, ChatGPT, and VS Code. This transforms MCP from a data-only protocol into a full interactive experience layer.
Tool annotations provide metadata about tool behaviour — marking tools as read-only or destructive. Clients use these annotations to make informed decisions about approval workflows, enabling auto-approval of safe read-only tools while requiring explicit confirmation for destructive operations like file deletion or database writes.