一句话定义
MCP(Model Context Protocol)是一套开放协议,规定了 AI 应用(Host)如何发现并调用外部能力(Server)提供的工具、数据与提示模板。
它要解决的是组合爆炸:过去每个 AI 应用都要为每个数据源写一次适配,成本是 N×M;有了统一协议,只需 N 个 host 实现加 M 个 server 实现。
为什么重要
MCP 之于 AI 应用,类似 USB-C 之于设备,或者 LSP 之于编辑器。它不是新技术能力,而是接口标准化。
标准化带来的连锁反应才是关键:一旦接口统一,工具就可以被独立开发、独立分发、跨产品复用。生态会自发增长。
在工程上,它的直接价值是关注点分离:工具的作者不需要关心哪个模型在用,AI 应用的作者不需要关心每个工具怎么实现。
核心概念
- Host:面向用户的 AI 应用,负责模型调用与整体编排。
- Client:Host 内部与 Server 一一对应的连接器。
- Server:能力提供方,暴露工具、资源或提示。
- Transport:通信方式,本地常用 stdio,远程用 HTTP 流式传输。
- Capabilities:握手时声明自己支持哪些能力,这决定了后续可用的交互。
Server 通常暴露三类东西:
| 类型 | 含义 | 由谁发起 |
|---|---|---|
| Tools | 可调用的动作 | 模型 |
| Resources | 可读取的数据 | 应用 / 用户 |
| Prompts | 预设的提示模板 | 用户 |
什么时候值得写一个 Server
- 你的数据源会被多个 AI 工具使用。
- 你希望把它作为产品对外暴露能力。
- 团队内部有多个 AI 应用需要接同一套系统。
如果只是给一个应用接一个 API,直接写工具调用更简单。协议的价值来自复用,没有复用就没有收益。
安全上必须注意的事
MCP 把「模型可以调用的东西」变成了可插拔的,这同时放大了风险:
- 来源可信:第三方 Server 等同于在你机器上运行代码。
- 权限最小化:只读 Server 不应该有写权限。
- 不可信内容隔离:Server 返回的文本必须被当作数据,不能当指令执行,否则就是提示注入的入口。
- 可审计:记录每一次工具调用的参数与结果。
常见误解
- 「MCP 是模型的一部分」:它是应用层的协议,与模型无关。
- 「有了 MCP 就不需要工具调用了」:MCP 是工具调用的分发方式,底层仍是模型输出结构化调用请求。
- 「协议会立刻统一生态」:标准化的价值需要时间兑现,早期实现的稳定性差异很大。
延伸阅读
- Tool Calling:MCP 底层的机制
- Skills:与 MCP 互补的另一种封装方式
- Agent Harness:MCP 的运行时宿主