MCP Architecture
Definition
MCP's client-server design: a host application coordinates one MCP client per server, communicating across a data layer (JSON-RPC 2.0) and a transport layer (STDIO / Streamable HTTP with SSE).
Key points
- MCP follows a client-server architecture where an MCP host — an AI application like Claude Code or Claude Desktop — establishes connections to one or more MCP servers. The host creates one MCP client for each MCP server; each MCP client maintains a dedicated connection with its corresponding MCP server.
- Roles (verbatim):
- MCP Host: "The AI application that coordinates and manages one or multiple MCP clients."
- MCP Client: "A component that maintains a connection to an MCP server and obtains context from an MCP server for the MCP host to use."
- MCP Server: "A program that provides context to MCP clients" — regardless of where it runs (local or remote).
- Two layers:
- Data layer: the JSON-RPC 2.0 based protocol for client-server communication, including lifecycle management and core primitives (tools, resources, prompts, notifications). The inner layer.
- Transport layer: communication mechanisms/channels — connection establishment, message framing, and authorization. The outer layer.
- Transports:
- Stdio transport: standard input/output streams for direct process communication between local processes on the same machine — optimal performance, no network overhead. Local servers typically use STDIO and serve a single client.
- Streamable HTTP transport: HTTP POST for client-to-server messages with optional Server-Sent Events (SSE) for streaming. Enables remote communication; supports standard HTTP auth (bearer tokens, API keys, custom headers); "MCP recommends using OAuth." Remote servers typically use Streamable HTTP and serve many clients.
- SSE appears as the streaming option within Streamable HTTP, not as a separate standalone transport.
- Lifecycle: MCP is a stateful protocol. Initialization is a capability negotiation handshake — client sends
initialize(withprotocolVersion, e.g.2025-06-18, andcapabilities), server responds, then client sendsnotifications/initialized.
Why it matters for the exam
- Tests the host/client/server roles and the one client per server / dedicated connection rule.
- Tests the data-layer vs transport-layer split and which transport is local (STDIO) vs remote (Streamable HTTP).
Common gotchas
- It is one client per server, not one client for all servers — the host coordinates multiple clients.
- SSE is streaming within Streamable HTTP, not a third standalone transport.
- The API MCP connector is remote-HTTP only — local STDIO is not supported there.
See also
Sources
Referenced by
Practice questions optional · AI
Generate fresh practice questions about this concept with AI. These are not vault-verified.