What is the Model Context Protocol?

模型上下文协议(Model Context Protocol)是什么?对现代开发者有什么影响?

前言

AI 解决一些上下文清晰的小问题如 LeetCode 时效率与准确率惊人,但在真实情境下常显不足,因为环境上下文和需求模糊。如何更好地让 AI 看清与外部世界的互动,达成更有效率的产出,而 MCP 是一种大型语言模型的统一协议,帮助达成该目标。

三阶段了解为什么需要 MCP

阶段一:只有大型语言模型(LLM)

LLM 运作上完全依靠训练资料来评估最有可能出现的下一个词汇,它的局限性在于无法达成任何训练之外的事情,例如:了解最新的天气资料(上下文)或寄电子邮件(工具)。

用户

LLM

阶段二:连接额外的应用程序接口(API)

所以开发者们提供了各项 API 供 LLM 呼叫使用,问题在于不同 API 各自定义资料格式、验证方式、回应结构,导致 LLM 要处理不同规格的接口,整合成本高,打造稳定体验的工具需要耗费大量时间且容易带来许多混乱。

用户

LLM

API A

API B

API C

阶段三:模型上下文协议(MCP)

一种统一的方式提供 AI 应用上下文与工具

MCP 是 Anthropic🔗 公布的开源标准,提供不同环境的 SDK🔗 方便开发者制作 MCP Server,以更好地让 AI 访问资源,具体来说有三种方式:

  • 工具:提供功能(像是 POST 端点,供执行代码或副作用例如:文件操作、API 调用、数据库查询)
  • 资源:暴露数据(像是 GET 端点,供 LLM 载入信息,例如:文件内容、数据库记录、API 回应)
  • 提示:定义 Prompt(像是可重复使用的 LLM 互动模板)

架构上用户会在本地通过 MCP Host 协调和管理一个或多个 MCP Client 的 AI 应用程序如:Claude Desktop🔗,当连接到 MCP Server 时用于:

  • 创建和管理多个 Client 实例
  • 控制 Client 连接权限和生命周期
  • 执行安全策略和同意要求
  • 处理用户授权决策
  • 协调 AI/LLM 集成和取样
  • 管理跨 Client 的上下文聚合

而每个 MCP Client 维护与 MCP Server 的连接并取得资源供 MCP Host 使用:

  • 为每个 Server 创建一个有状态会话
  • 处理协议协商和功能交换
  • 双向路由协议消息
  • 管理订阅和通知
  • 维护 Server 之间的安全边界

最后 MCP Server 是专门向 MCP Client 提供服务的程序,可以于本地建立或由第三方服务提供。

  • 通过 MCP 原语公开资源、工具和提示
  • 独立运行,职责明确
  • 通过 Client 接口请求采样
  • 必须遵守安全约束
  • 可以是本地应用或远程服务

MCP Host

用户

LLM

MCP Client - Plugin A

MCP Client - Plugin B

MCP Client - Plugin C

MCP Server - Plugin A

MCP Server - Plugin B

MCP Server - Plugin C

总结

  • 现代开发者:可以用更统一且规范化的方式提供上下文与服务与 AI 互动
  • 一般用户:一致的方式扩充 AI 的能力。

MCP 架构使得各种 App 可以有统一的方式与 AI 进行互动,想象 USB-C 标准,各家电器厂商不用烦恼数据传输如何对接,只需统一遵循相同的接口,MCP 是 AI 时代的统一沟通标准。想试试 MCP 可以参考:Example Clients🔗Example Servers🔗 有详细的比较清单与说明。

延伸阅读