AINotes 101
菜单

MCP

模型上下文协议

一套开放协议,把「模型连工具」从 N×M 次适配变成 N+M 个实现。

BUILD #protocol#engineering

一句话定义

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 是工具调用的分发方式,底层仍是模型输出结构化调用请求。
  • 「协议会立刻统一生态」:标准化的价值需要时间兑现,早期实现的稳定性差异很大。

延伸阅读

继续阅读

与 MCP 同属一个层级,或在本条目中被显式引用。