每个 AI 应用都想接入日历、邮件、数据库、代码仓库等外部工具,但如果每个应用都为每个工具单独写一套集成,工作量会成倍增长。MCP(Model Context Protocol,模型上下文协议)试图解决的就是这个问题:定义一套通用协议,让工具只需实现一次,就能被所有支持该协议的 AI 应用使用。 它最早由 Anthropic 提出并开源,此后获得了较广泛的生态支持。

MCP 解决了什么问题

在 MCP 之前,工具集成通常是“M 乘 N”的问题:M 个 AI 应用,N 个工具,最坏情况需要 M×N 套集成代码。MCP 把它变成了“M 加 N”:每个应用实现一次 MCP 客户端,每个工具实现一次 MCP 服务器,彼此就能互通。

这和 USB 接口的意义类似:设备厂商不需要为每台电脑单独设计接口,只要遵循统一标准即可。

核心概念

主机、客户端与服务器

  • 主机(Host):用户直接使用的 AI 应用,比如桌面助手、代码编辑器;
  • 客户端(Client):主机内部负责与某个 MCP 服务器通信的组件;
  • 服务器(Server):对外暴露能力的程序,比如一个能读写文件的服务、一个能查询数据库的服务。

服务器既可以在本地运行,通过标准输入输出与客户端通信;也可以部署在远程,通过网络协议访问。

服务器能提供什么

MCP 服务器主要提供几类能力:

  1. 工具(Tools):模型可以调用的函数,例如“创建日程”“搜索文档”,本质上与 Function Calling 中的工具相同;
  2. 资源(Resources):可以读取的数据,例如文件内容、数据库记录;
  3. 提示模板(Prompts):预定义的提示词模板,方便用户快速发起特定任务。

典型使用场景

  • 开发工具:让编码助手访问代码仓库、问题追踪系统、数据库结构;
  • 个人效率:让桌面 AI 助手读取本地文件、管理日程和笔记;
  • 企业集成:把内部系统封装成 MCP 服务器,供多个 AI 应用统一调用,避免重复开发;
  • Agent 平台:让 Agent 按需发现和使用工具,而不是把所有工具写死在代码里。

接入 MCP 服务的安全注意事项

MCP 让接入工具变得容易,但也意味着风险更容易被引入:

谨慎安装第三方服务器

一个 MCP 服务器可能拥有读写本地文件、执行命令或访问账号的能力。安装来源不明的服务器,相当于给未知程序授予了权限。应只使用可信来源,并审查其请求的权限范围。

工具描述也可能是攻击面

模型依据工具描述来决定如何使用工具。恶意服务器可以在描述中嵌入隐藏指令,诱导模型执行非预期操作。这是提示注入的一种新形式,详见提示注入攻击与防御。

最小权限与操作确认

为每个服务器只授予完成任务所需的最低权限;对删除、发送、支付等敏感操作,在主机层面设置人工确认,参见人在回路的设计。

关注凭证管理

远程服务器通常需要认证。不要把长期有效的高权限令牌直接写在配置文件里,优先使用规范的授权流程和可撤销的短期凭证。

小结

MCP 为 AI 应用连接外部世界提供了一个标准接口,降低了工具集成的重复劳动,也推动了 Agent 生态的发展。但标准化不等于安全化:接入任何 MCP 服务时,都要像安装软件一样审视它的来源和权限。