本文是专栏《从零看懂 AI Agent》第 5 篇。回到目录与导读。上一篇:工具调用与 Function Calling。
先说它要解决的痛点
上一篇我们知道,给 Agent 加能力就是加工具。但在 MCP 出现之前,加工具是件很痛苦的事:
- 你想让 Agent 连你的数据库,得手写一套对接代码;
- 换个模型/框架,这套代码可能又得重写;
- 连 GitHub、连 Slack、连本地文件……每一个都要单独"手搓"一遍。
业界有个说法:MCP 之前,做 Agent 八成的工作量都花在这种"接线管道"上,每接一个新工具都要写定制封装、调脆弱的 prompt。这显然不可持续。
USB-C 的比喻
MCP 全称 Model Context Protocol(模型上下文协议),由 Anthropic 在 2024 年底提出。最贴切的比喻是:
MCP 就是 AI 世界的 USB-C。
想想 USB-C 出现之前:充电线、数据线、各种口,一团乱麻。USB-C 出来后,一个口通吃。MCP 想做的是同一件事——定一个统一的"接口标准",让任何 Agent 都能用同样的方式接入任何工具/数据源,不用再为每个组合手写对接。
到 2026 年,这个标准已经被主流 AI 厂商广泛采纳,社区里冒出了上千个现成的 MCP 服务器(可以理解为一个个即插即用的工具包),Agent 想连什么,很多时候直接装一个就行。
MCP 的三种"能力"
MCP 把 Agent 能用的东西归成了三类,理解了这三类就理解了 MCP 的大半:
| 类型 | 是什么 | 类比 | 例子 |
|---|---|---|---|
| Tools(工具) | 可执行的函数,模型决定要不要调 | 手能操作的按钮 | search_web、write_file、run_sql |
| Resources(资源) | 只读的数据,供模型参考 | 摆在桌上的资料 | 一个文件、一段数据库快照、API 返回 |
| Prompts(提示词模板) | 预置的标准化指令模板 | 填空的表格 | "总结这份文档"的标准套路 |
其中 Tools 最核心,它就是上一篇讲的那种"可执行函数 + 说明书",只不过现在用统一的协议格式来描述。Resources 和 Prompts 则解决了"只读数据怎么给"和"常用指令怎么复用"的问题。
它是怎么工作的:客户端 + 服务器
MCP 借用了软件里成熟的"客户端 / 服务器"结构:
┌────────────┐ MCP 标准协议 ┌──────────────────┐
│ 你的 Agent │ ◄──────────────────────► │ MCP 服务器 │
│ (MCP 客户端)│ "你有哪些工具?" │ (封装了 GitHub / │
│ │ "帮我调用 xxx" │ 数据库 / 文件等) │
└────────────┘ └──────────────────┘
- MCP 服务器:把某个具体能力(比如操作 GitHub)按 MCP 标准包装好,对外暴露"我有哪些工具、哪些资源"。
- MCP 客户端:就是你的 Agent 那一侧,用标准协议问服务器"你能干啥",然后按需调用。
好处立刻显现:GitHub 官方(或社区)写好一个 MCP 服务器,所有 Agent 都能直接用,不用各写各的。工具的提供方和使用方彻底解耦了。
为什么这件事是"标准"才有意义
MCP 的价值不在技术多复杂,而在它是个大家都认的标准。这和当年 USB、HTTP 一样——
- 对工具提供方:写一次 MCP 服务器,所有 Agent 都能接,不用适配一堆框架。
- 对Agent 开发者:想加能力,去 MCP 生态里找现成的服务器,装上即用。
- 对整个生态:工具可以自由组合、复用,创新速度大大加快。
这也解决了上一篇结尾那个坑——工具太多、对接太碎。MCP 把"接线"这件事标准化、外包给了生态。
几个要拎清的点
- MCP 不是替代 Function Calling,而是把它标准化。 底层模型"点菜"的机制没变(还是第 4 篇那套),MCP 规范的是"菜单怎么写、厨房怎么对接"。
- 装 MCP 服务器等于给 Agent 开权限,要当心。 一个能读写你文件、连你数据库的服务器,本质上是把这些能力交给了模型。来路不明的 MCP 服务器可能带来安全风险——这属于第 8 篇要讲的护栏范畴。
- 它还在快速演进。 作为一个较新的标准,MCP 的细节仍在迭代,但"统一接口"这个大方向已经稳了。
小结
- MCP(模型上下文协议)= AI 世界的 USB-C,一个连接 Agent 与工具/数据的统一标准。
- 它规范了三类能力:Tools(可执行)、Resources(只读数据)、Prompts(指令模板)。
- 采用客户端/服务器结构,让工具提供方和使用方解耦——写一次,处处能用。
- 它的意义在于"标准"本身:解决了过去每接一个工具都要手搓的痛点。
到这里,Agent 的"动手"部分就讲完了。下一篇我们转向"记忆"——模型明明记不住长对话,Agent 是怎么记住你的偏好、又怎么从海量资料里查到该用的那一段的?