前言
AI 解决一些上下文清晰的小问题如 LeetCode 时效率与准确率惊人,但在真实情境下常显不足,因为环境上下文和需求模糊。如何更好地让 AI 看清与外部世界的互动,达成更有效率的产出,而 MCP 是一种大型语言模型的统一协议,帮助达成该目标。
三阶段了解为什么需要 MCP
阶段一:只有大型语言模型(LLM)
LLM 运作上完全依靠训练资料来评估最有可能出现的下一个词汇,它的局限性在于无法达成任何训练之外的事情,例如:了解最新的天气资料(上下文)或寄电子邮件(工具)。
阶段二:连接额外的应用程序接口(API)
所以开发者们提供了各项 API 供 LLM 呼叫使用,问题在于不同 API 各自定义资料格式、验证方式、回应结构,导致 LLM 要处理不同规格的接口,整合成本高,打造稳定体验的工具需要耗费大量时间且容易带来许多混乱。
阶段三:模型上下文协议(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 接口请求采样
- 必须遵守安全约束
- 可以是本地应用或远程服务
总结
- 现代开发者:可以用更统一且规范化的方式提供上下文与服务与 AI 互动
- 一般用户:一致的方式扩充 AI 的能力。
MCP 架构使得各种 App 可以有统一的方式与 AI 进行互动,想象 USB-C 标准,各家电器厂商不用烦恼数据传输如何对接,只需统一遵循相同的接口,MCP 是 AI 时代的统一沟通标准。想试试 MCP 可以参考:Example Clients 与 Example Servers 有详细的比较清单与说明。
延伸阅读
- Introducing the Model Context Protocol - ANTHROPIC
- What is MCP? Integrate AI Agents with Databases & APIs - IBM Technology
- MCP vs API: Simplifying AI Agent Integration with External Data - IBM Technology