MCP 栈:客户端链 + 服务端引擎双泳道

MCP 栈:客户端链 + 服务端引擎双泳道 由 Archify 生成的架构图。 Agent / 宿主 · invokeMcpTool 调用 · 客户端侧:SDK 作为 MCP 调用方 Agent / 宿主 invokeMcpTool 调用 McpGateway · 单例 · callTool/listTools · 客户端侧:SDK 作为 MCP 调用方 · core McpGateway 单例 · callTool/listTools core McpClient · ClientFactory 复用 · 客户端侧:SDK 作为 MCP 调用方 McpClient ClientFactory 复用 McpTransport · Stdio / SSE / StreamableHttp · 客户端侧:SDK 作为 MCP 调用方 McpTransport Stdio / SSE / StreamableHttp MCP Server · 远端 / 本机进程 · 架构组件 MCP Server 远端 / 本机进程 McpConfigManager · mcp.json 配置源 · 客户端侧:SDK 作为 MCP 调用方 McpConfigManager mcp.json 配置源 @McpService 类 · @McpTool/Prompt/Resource · 服务端侧:SDK 暴露本地能力为 MCP Server @McpService 类 @McpTool/Prompt/Resource McpServerFactory · 装配服务引擎 · 服务端侧:SDK 暴露本地能力为 MCP Server McpServerFactory 装配服务引擎 Server 引擎 ×3 · Stdio / Sse / StreamableHttp · 服务端侧:SDK 暴露本地能力为 MCP Server Server 引擎 ×3 Stdio / Sse / StreamableHttp McpAuthProvider · BearerToken 校验 · 服务端侧:SDK 暴露本地能力为 MCP Server McpAuthProvider BearerToken 校验 ① 工具调用/枚举 ② 复用 client ③ 按配置选通道 ④ JSON-RPC 帧 ⑤ 配置加载 ⑥ 注解注册 ⑦ 建引擎 ⑧ 请求鉴权 客户端侧:SDK 作为 MCP 调用方 服务端侧:SDK 暴露本地能力为 MCP Server 图例 前端 后端 数据库 云服务 安全 外部系统

客户端链

  • • McpGateway 是单例门面:listTools 走 McpGatewayToolRegistry 聚合多 server 工具;callTool 按 serverId 路由
  • • McpGatewayClientFactory 复用 McpClient 连接;McpTransportFactory 按 TransportConfig 选 Stdio/SSE/StreamableHttp

三种传输

  • • StdioTransport:拉起本地子进程走 stdin/stdout;SseTransport:SSE 读 + POST 写
  • • StreamableHttpTransport:单端点双向流式(新版推荐);McpProtocolProfile 记录协议版本协商

服务端链与鉴权

  • • @McpService 标注的类经 McpServerFactory 装配成 Server 引擎;StdioMcpServer 供本机、Sse/StreamableHttp 供远端
  • • McpServerSessionSupport 管理会话态;BearerTokenAuthProvider 在 HTTP 引擎前校验 Bearer token