🏛️ MCP 架构:Host · Client · Server 全解析

吴恩达 MCP 课程 · 第 3 集「MCP架构」(14:53,全课最长) · 来源 DeepLearning.AI · B站 BV1qkHrzHEh4
一句话:MCP 采用 Host(AI 应用)→ Client(1对1 连接管理员)→ Server(工具/提示/资源提供方)三层架构,客户端与服务器用 JSON-RPC 2.0 通信,本地走 stdio、远程走 HTTP+SSE,三大原语 Tools / Prompts / Resources 分别由模型、用户、应用控制。

1 三种角色:责任清晰的三层结构

🏠 Host 主机 = 你的 AI 应用
聊天机器人 / Claude Desktop / IDE / 代理 · 负责编排、权限控制、决定暴露哪些工具给模型
🔌 MCP 客户端 ① ⇄ GitHub 服务器
1 对 1 连接,负责通信与协议转换
🔌 MCP 客户端 ② ⇄ Google Drive 服务器
每个客户端只对应一台服务器
🔌 MCP 客户端 ③ ⇄ 文件系统服务器
客户端是 Host 内部的「连接管理器」
Host:用户直接面对的 AI 应用本体,掌控全局——何时连接服务器、给模型哪些工具、请求是否放行。
Client:驻留在 Host 内部,维持与单台服务器的 1:1 连接;N 台服务器 = N 个客户端。
Server:独立进程或远程服务,对外暴露工具、提示与资源,可被任何 MCP 兼容应用复用。
🧩 职责分离🔁 可复用🚫 模型无关

2 通信协议栈:JSON-RPC 2.0 + 两种传输方式

应用层原语 · Tools 工具|Prompts 提示|Resources 资源
消息层 · JSON-RPC 2.0:请求 / 响应 / 通知
传输层 · 📟 stdio(本地子进程,标准输入输出)|🌐 HTTP + SSE(远程服务器,服务器推送事件)

3 服务器三大原语:谁来控制是关键

🛠️
Tools 工具
模型控制 (Model-controlled)
LLM 自主决定何时调用,如查 GitHub、写文件;可执行、可产生副作用。
📝
Prompts 提示
用户控制 (User-controlled)
预置的提示模板,用户主动选用,把常见任务标准化。
📂
Resources 资源
应用控制 (App-controlled)
文件、数据等上下文材料,由应用决定附加给模型,只读为主。

4 一次工具调用的完整旅程

1💬 用户提问Host 收集已连接服务器暴露的工具清单
2🧠 模型决策LLM 结合上下文,判断是否调用、调用哪个工具
3🔌 客户端转发经 JSON-RPC 把调用请求发给对应服务器
4⚙️ 服务器执行真正调用 API / 读取数据,返回结果
5📨 结果回传客户端交还 Host,模型据此生成最终回答
Generated with Tabbit.