Skip to content

架构

库分层

┌─────────────────────────────────────┐
│  mcp-server        mcp-client       │  服务器和客户端 API
├─────────────────────────────────────┤
│  mcp-protocol                       │  WireCodec、McpSessionHandler
├─────────────────────────────────────┤
│  mcp-transport       mcp-http       │  传输层实现、Streamable HTTP、SSE
├─────────────────────────────────────┤
│  mcp-core                           │  类型、JSON-RPC、接口
└─────────────────────────────────────┘

mcp-core(STATIC)

核心协议类型和 JSON 基础设施:JsonValue(基于 std::variant 的递归 JSON)、JsonRpcRequestJsonRpcResponseJsonRpcNotificationJsonRpcErrorResponse、错误码、能力声明(ClientCapabilitiesServerCapabilities)、内容类型(TextContentImageContentEmbeddedResourceResourceLink)、传输层接口(ITransportIClientTransport)。

mcp-transport(STATIC)

传输层实现:StdioServerTransportStdioClientTransportSseClientTransportInMemoryTransportWebSocketClientTransportStreamableHttpServerTransportStreamableHttpClientTransport。平台相关 I/O 位于 detail/ 目录下(posix、win32)。

mcp-protocol(STATIC)

JSON-RPC 引擎(McpSessionHandler):基于 MessageChannel 的异步消息循环、请求/响应关联与超时、通过 unordered_map 进行处理器分发、双时代 WireCodec(2025-11-25 initialize 握手 / 2026-07-28 每请求 _meta)、入站/出站 MessageFilter 管道。

mcp-server(STATIC)

McpServer:工具/资源/提示注册、Extension 框架(SEP-2133)、IMcpTaskStore(含用于持久化的 FileTaskStore)、服务器到客户端的 Elicit、MRTR(InputRequiredResult)、订阅管理、Streamable HTTP 的无状态模式。

mcp-client(STATIC)

McpClient:服务器发现(server/discover → initialize 回退)、版本协商、工具缓存、MRTR 驱动(MrtrDriver)、OAuth(PKCE、DCR、令牌刷新/撤销、FileTokenCache)。

mcp-http(STATIC)

用于 Streamable HTTP 模式的 HTTP 服务器:HttpServerEventStore(SSE 事件持久化和重放)、StreamableHttpServerTransportStreamableHttpClientTransport

依赖图

mcp-core (STATIC)
  ├── simdjson  (JSON 解析,内部使用)
  └── libhv     (HTTP/WebSocket,通过 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(可选)