🧩MCP
约 1652 字大约 6 分钟
MCP
2025-04-17
什么是 MCP?
MCP(模型上下文协议)是 AI 应用程序和代理连接并使用数据源(例如本地文件、数据库或内容存储库)和工具(例如 GitHub、Google Maps 或 Puppeteer)的标准方式。
可以将 MCP 视为 AI 应用的通用适配器,类似于 USB-C 之于物理设备。USB-C 充当通用适配器,将设备连接到各种外设和配件。同样,MCP 提供了一种标准化的方式,将 AI 应用连接到不同的数据和工具。
在 USB-C 出现之前,不同的连接需要不同的线缆。同样,在 MCP 出现之前,开发人员必须为每个 AI 应用程序所需的数据源或工具构建自定义连接——这是一个耗时的过程,而且常常导致功能受限。现在,有了 MCP,开发人员可以轻松地为他们的 AI 应用程序添加连接,从而让他们的应用程序从一开始就更加强大。
MCP协议
MCP(Model Context Protocol,模型上下文协议)是一种开放协议,旨在实现大型语言模型(LLM) 应用与外部数据源、工具和服务之间的无缝集成,类似于网络中的 HTTP 协议或邮件中的 SMTP 协议。
MCP 协议通过标准化模型与外部资源的交互方式,提升 LLM 应用的功能性、灵活性和可扩展性。


MCP 的核心概念
MCP 的核心是模型上下文,即 LLM 在运行过程中所需的所有外部信息和工具。
MCP 通过定义标准化的接口和协议,使 LLM 能够动态访问和集成以下内容:
- 外部数据源:如数据库、API、文档库等,为 LLM 提供实时或历史数据。
- 工具和服务:如计算工具、搜索引擎、第三方服务等,扩展 LLM 的功能。
- 上下文管理:动态维护 LLM 的对话上下文,确保连贯性和一致性。
MCP 的架构
MCP 的架构由四个关键部分组成:
- 主机(Host):主机是期望从服务器获取数据的人工智能应用,例如一个集成开发环境(IDE)、聊天机器人等。主机负责初始化和管理客户端、处理用户授权、管理上下文聚合等。
- 客户端(Client):客户端是主机与服务器之间的桥梁。它与服务器保持一对一的连接,负责消息路由、能力管理、协议协商和订阅管理等。客户端确保主机和服务器之间的通信清晰、安全且高效。
- 服务器(Server):服务器是提供外部数据和工具的组件。它通过工具、资源和提示模板为大型语言模型提供额外的上下文和功能。例如,一个服务器可以提供与Gmail、Slack等外部服务的API调用。
- 基础协议(Base Protocol):基础协议定义了主机、客户端和服务器之间如何通信。它包括消息格式、生命周期管理和传输机制等。
MCP 就像 USB-C 一样,可以让不同设备能够通过相同的接口连接在一起。

MCP 的工作原理
MCP 通过定义标准化的数据格式和通信协议,实现 LLM 与外部资源的交互。
MCP 使用 JSON-RPC 2.0 作为消息格式,通过标准的请求、响应和通知消息进行通信。
MCP 支持多种传输机制,包括本地的标准输入/输出(Stdio)和基于HTTP的服务器发送事件(SSE)。
MCP的生命周期包括初始化、运行和关闭三个阶段,确保连接的建立、通信和终止都符合协议规范。
传统的AI调用外部工具的方式

目前的通用处理策略使通过Function Call(Tool方法)方法实现对于特定API的访问,这里以调取某地区的天气状况的API为例:

MCP Function Calling

MCP 为何重要?
- 对于AI应用程序用户 MCP 意味着您的 AI 应用程序可以访问您每天使用的信息和工具,从而提供更强大的帮助。AI 不再局限于其已知的知识,现在它可以理解您的特定文档、数据和工作环境。
例如,通过使用 MCP 服务器,应用程序可以从 Google Drive 访问您的个人文档或从 GitHub 访问有关您的代码库的数据,从而提供更加个性化和上下文相关的帮助。
想象一下询问人工智能助手:
“总结上周的团队会议记录并安排与每个人的后续会议。”
通过使用由 MCP 提供支持的数据源连接,AI 助手可以:
通过 MCP 服务器连接到您的 Google Drive 来阅读会议记录
根据笔记了解谁需要跟进 通过另一个 MCP 服务器连接到您的日历以自动安排会议
- 对于开发人员 在构建需要访问各种数据源的 AI 应用程序时,MCP 可以缩短开发时间并降低开发复杂性。借助 MCP,开发者可以专注于构建卓越的 AI 体验,而无需重复创建自定义连接器。
传统上,将应用程序与数据源连接起来需要为每个数据源和每个应用程序构建自定义的一次性连接。这造成了大量重复工作——每个想要将其 AI 应用程序连接到 Google Drive 或 Slack 的开发人员都需要自行构建连接。
MCP 简化了这一过程,它允许开发者为数据源构建 MCP 服务器,并让各种应用程序可以重复使用。
例如,使用开源的 Google Drive MCP 服务器,许多不同的应用程序都可以访问 Google Drive 中的数据,而无需每个开发者都构建自定义连接。
这种 MCP 服务器的开源生态系统意味着开发人员可以利用现有工作,而不是从头开始,从而更容易构建强大的 AI 应用程序,并与用户已经依赖的工具和数据源无缝集成。
