┌─────────────────────────────┐
│ Claude Desktop │
│ (or other LLM) │
└────────────┬────────────────┘
│ (HTTP/SSE or stdio)
▼
┌──────────────────────┐
│ │
│ MCP Gateway │
│ (Actix + rmcp) │
│ │
├──────────┬───────────┤
│ │ │
[1] /sse │ [2] /message │ [3] /servers
│ ▼ │
│ ┌───────────────┐ │
│ │ Routing Layer │ │
│ └──────┬────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────┐ │
│ │ Async Proxy Layer│ │
│ └────┬──────┬──────┘ │
│ │ │ │
▼ ▼ ▼ ▼
┌────────┐ ┌────────┐ ┌────────┐
│ MCP #1 │ │ MCP #2 │ │ MCP #N │
│(SSE or │ │(Stdio │ │(...) │
│ rmcp) │ │ rmcp) │ │ │
└────────┘ └────────┘ └────────┘
| 组件 | 角色 |
|---|
| 克劳德桌面/法学硕士 | 通过SSE或stdio向网关发送消息并接收响应 |
| MCP网关 | 处理客户端请求和管理后端的主服务器 |
| 布线层 | 决定哪个后端MCP服务器收到请求 |
| 异步代理层 | 用途 rmcp 将请求转发到每个MCP服务器(SSE或stdio) |
| MCP服务器 | 通过暴露的现有工具 rmcp::ServiceExt |