Skip to content

Architecture

Library Layers

┌─────────────────────────────────────┐
│  mcp-server        mcp-client       │  Server & Client API
├─────────────────────────────────────┤
│  mcp-protocol                       │  WireCodec, McpSessionHandler
├─────────────────────────────────────┤
│  mcp-transport       mcp-http       │  Transports, Streamable HTTP, SSE
├─────────────────────────────────────┤
│  mcp-core                           │  Types, JSON-RPC, interfaces
└─────────────────────────────────────┘

mcp-core (STATIC)

Core protocol types and JSON infrastructure: JsonValue (recursive std::variant-based JSON), JsonRpcRequest, JsonRpcResponse, JsonRpcNotification, JsonRpcErrorResponse, error codes, capability declarations (ClientCapabilities, ServerCapabilities), content types (TextContent, ImageContent, EmbeddedResource, ResourceLink), transport interfaces (ITransport, IClientTransport).

mcp-transport (STATIC)

Transport implementations: StdioServerTransport, StdioClientTransport, SseClientTransport, InMemoryTransport, WebSocketClientTransport, StreamableHttpServerTransport, StreamableHttpClientTransport. Platform-specific I/O in detail/ (posix, win32).

mcp-protocol (STATIC)

JSON-RPC engine (McpSessionHandler): async message loop over MessageChannel, request/response correlation with timeout, handler dispatch via unordered_map, dual-era WireCodec (2025-11-25 initialize handshake / 2026-07-28 per-request _meta), inbound/outbound MessageFilter pipeline.

mcp-server (STATIC)

McpServer: tool/resource/prompt registration, Extension framework (SEP-2133), IMcpTaskStore (with FileTaskStore for persistence), server-to-client Elicit, MRTR (InputRequiredResult), subscription management, stateless mode for Streamable HTTP.

mcp-client (STATIC)

McpClient: server discovery (server/discover → initialize fallback), version negotiation, tool cache, MRTR driver (MrtrDriver), OAuth (PKCE, DCR, token refresh/revocation, FileTokenCache).

mcp-http (STATIC)

HTTP server for Streamable HTTP mode: HttpServer, EventStore (SSE event persistence and replay), StreamableHttpServerTransport, StreamableHttpClientTransport.

Dependency Graph

mcp-core (STATIC)
  ├── simdjson  (JSON parsing, internal)
  └── libhv     (HTTP/WebSocket, via mcp-transport)

mcp-transport (STATIC)
  └── mcp-core + libhv

mcp-protocol (STATIC)
  └── mcp-transport

mcp-http (STATIC)
  └── mcp-transport + libhv

mcp-server (STATIC)
  └── mcp-protocol

mcp-client (STATIC)
  └── mcp-protocol + OpenSSL (optional)