MCP 是什么?它是如何运作的?

大语言模型 (LLM) 功能强大,但存在两大局限性:其知识在训练时就已固定,且无法与外部世界交互。这意味着它们无法访问实时数据,也无法执行如预订会议或更新客户记录等操作。

Model Context Protocol (MCP) 是一种旨在解决该问题的开放标准。MCP 由 Anthropic 于 2024 年 11 月推出,为 LLM 与外部数据、应用和服务之间的通信提供一种安全且标准化的“语言”。它充当桥梁,使 AI 不再局限于静态知识,而成为一个能够检索当前信息并执行操作的动态智能体,从而提升其准确性、实用性与自动化能力。

了解 Model Context Protocol

MCP 为 AI 应用创建了标准化的双向连接,使 LLM 能够轻松连接各种数据源和工具。MCP 建立在工具使用和函数调用等现有概念之上,并对其进行标准化。这样就无需为每个新的 AI 模型和外部系统创建自定义连接。它使 LLM 能够使用最新的真实数据、执行操作,并访问其原始训练中未包含的专业功能。

MCP 架构和组件

Model Context Protocol 具有清晰的结构,各组件协同工作,帮助 LLM 与外部系统轻松交互。

MCP 主机

LLM 包含在 MCP 主机中,也就是 AI 应用或环境,例如由 AI 赋能的 IDE 或对话式 AI。这通常是用户的交互点,MCP 主机会在此使用 LLM 处理可能需要外部数据或工具的请求。

MCP 客户端

MCP 客户端位于 MCP 主机内,帮助 LLM 与 MCP 服务器进行通信。它将 LLM 的请求转换为 MCP 可处理的格式,并将 MCP 的回复转换为 LLM 可理解的格式。它还会发现并调用可用的 MCP 服务器。

MCP 服务器

MCP 服务器是为 LLM 提供上下文、数据和功能的外部服务。它通过连接数据库和 Web 服务等外部系统来帮助 LLM,将这些系统的响应转换为 LLM 可理解的格式,从而协助开发者提供多样化的功能。

传输层

传输层通过 JSON-RPC 2.0 消息在客户端和服务器之间通信,主要采用以下两种传输方式:

  • 标准输入/输出 (stdio):适用于本地资源,可实现快速的同步消息传输
  • 服务器发送的事件 (SSE):是远程资源的首选方法,可实现高效的实时数据流传输

MCP 的工作原理是什么?

Model Context Protocol 的核心功能是允许 LLM 请求外部工具协助回答查询或完成任务。假设您向 AI 助理发出以下指令:“在我们的数据库中查找最新的销售报告,并将其通过电子邮件发送给我的经理。”

以下简要说明 MCP 将如何处理这种情况:

  1. 请求与工具发现:LLM 明白其本身无法访问数据库或发送电子邮件。它使用 MCP 客户端搜索可用工具,并在 MCP 服务器上找到了两个相关工具:database_query 工具和 email_sender 工具。
  2. 工具调用:LLM 生成结构化请求来使用这些工具。首先,它会调用 database_query 工具,并指定报告的名称。然后,MCP 客户端会将此请求发送到相应的 MCP 服务器。
  3. 外部操作与数据返回:MCP 服务器接收请求,将其转换为面向公司数据库的安全 SQL 查询,并检索销售报告。然后,它会将这些数据格式化后发送回 LLM。
  4. 第二个操作与响应生成:现在已获得报告数据,LLM 调用 email_sender 工具,提供经理的邮箱地址和报告内容。邮件发送后,MCP 服务器会确认操作已完成。
  5. 最终确认:LLM 向您提供最终回应:“我已找到最新的销售报告,并通过邮件发送给您的经理。”

MCP 与 RAG

Model Context Protocol (MCP) 和检索增强生成 (RAG) 都通过外部信息来增强 LLM,但方式不同,目的各异。RAG 用于查找和使用信息以生成文本,而 MCP 是一个更广泛的交互与操作系统。

功能

Model Context Protocol (MCP)

检索增强生成 (RAG)

主要目标

标准化 LLM 的双向通信,使其能够访问并与外部工具、数据源和服务交互,从而在检索信息的同时执行操作。

在生成回答之前,从权威知识库中检索相关信息,以增强 LLM 的回答。

机制

定义了用于 LLM 应用调用外部函数或从专用服务器请求结构化数据的标准化协议,从而实现操作和动态上下文集成。

包含一个信息检索组件,用于根据用户查询从知识库或数据源中拉取信息。然后,检索到的信息将增强 LLM 的提示内容。

输出类型

使 LLM 能够生成结构化调用以调用工具、接收结果,并根据这些结果和操作生成可供人类阅读的文本。也可以涉及实时数据和函数。

LLM 根据其训练数据生成回答,该数据已通过外部文档中与查询相关的文本进行增强。通常重点关注事实准确性。

互动

专为主动交互和在外部系统中执行任务而设计,为 LLM“使用”外部功能提供“语法”。

主要用于被动检索信息,为文本生成提供依据;通常不用于在外部系统中执行操作。

标准化

这是一种开放标准,规范 AI 应用为 LLM 提供上下文的方式,从而实现集成标准化并减少对自定义 API 的依赖。

这是一种用于改进 LLM 的技术或框架,但并非适用于不同供应商或系统之间工具交互的通用协议。

使用场景

AI 智能体可执行任务(例如预订航班、更新 CRM、运行代码)、提取实时数据,并实现高级集成。

问答系统、能提供最新事实信息的聊天机器人、文档摘要功能,以及降低文本生成中幻觉内容的出现。

功能

Model Context Protocol (MCP)

检索增强生成 (RAG)

主要目标

标准化 LLM 的双向通信,使其能够访问并与外部工具、数据源和服务交互,从而在检索信息的同时执行操作。

在生成回答之前,从权威知识库中检索相关信息,以增强 LLM 的回答。

机制

定义了用于 LLM 应用调用外部函数或从专用服务器请求结构化数据的标准化协议,从而实现操作和动态上下文集成。

包含一个信息检索组件,用于根据用户查询从知识库或数据源中拉取信息。然后,检索到的信息将增强 LLM 的提示内容。

输出类型

使 LLM 能够生成结构化调用以调用工具、接收结果,并根据这些结果和操作生成可供人类阅读的文本。也可以涉及实时数据和函数。

LLM 根据其训练数据生成回答,该数据已通过外部文档中与查询相关的文本进行增强。通常重点关注事实准确性。

互动

专为主动交互和在外部系统中执行任务而设计,为 LLM“使用”外部功能提供“语法”。

主要用于被动检索信息,为文本生成提供依据;通常不用于在外部系统中执行操作。

标准化

这是一种开放标准,规范 AI 应用为 LLM 提供上下文的方式,从而实现集成标准化并减少对自定义 API 的依赖。

这是一种用于改进 LLM 的技术或框架,但并非适用于不同供应商或系统之间工具交互的通用协议。

使用场景

AI 智能体可执行任务(例如预订航班、更新 CRM、运行代码)、提取实时数据,并实现高级集成。

问答系统、能提供最新事实信息的聊天机器人、文档摘要功能,以及降低文本生成中幻觉内容的出现。

使用 MCP 的优势

Model Context Protocol 为开发和部署 AI 驱动的应用带来多项潜在优势,使 LLM 更加多功能、可靠且高效。

减少幻觉

LLM 本质上可能会编造事实,或生成看似合理但实则错误的信息(产生幻觉),因为其回答基于训练数据而非实时信息。MCP 提供清晰路径,使 LLM 能访问外部可靠数据源,从而提高回答的真实性并减少幻觉。

提升 AI 的实用性与自动化能力

该协议可扩展 AI 的能力,并实现其自主运行。通常,LLM 仅了解其训练数据,而这些数据可能很快变得过时。不过,借助 MCP,LLM 可以连接多个现成工具与集成,如业务软件、内容存储库和开发环境。这意味着 AI 能胜任更复杂的任务,例如更新 CRM 系统中的客户信息、在线查询时事或执行特定计算。通过直接连接这些外部工具,LLM 不再是单一的聊天程序,而是具备自主行为能力的智能体,从而实现更大程度的自动化。

为 AI 提供更便捷的连接

在 MCP 推出之前,LLM 要连接到不同的外部数据源和工具非常困难,通常需要专用连接或供应商专属方法。这导致系统变得极其复杂且混乱,通常称为“N x M”问题,因为每新增一个模型或工具,所需的自定义连接数量都会快速增长。MCP 提供了一个通用的开放标准,简化了连接过程,就像 USB-C 接口让设备连接更轻松一样。这种简化的方法有助于降低开发成本,加快 AI 应用开发,并构建更互联的 AI 环境。开发者还可以更轻松地在不同 LLM 提供商之间切换,并添加新工具,无需大幅修改。

MCP 与安全

虽然 Model Context Protocol 通过连接外部系统提升了 LLM 的能力,但也带来了关键的安全考量。由于 MCP 可访问任意数据,且可能通过连接工具运行代码,因此必须具备强大的安全机制。

MCP 的核心安全原则包括:

  • 用户同意与控制:用户需清晰了解并同意 LLM 通过 MCP 所执行的全部操作和数据访问。他们应能够控制共享的数据和执行的操作,理想情况下通过易于使用的授权界面完成。
  • 数据隐私:在将用户数据暴露给 MCP 服务器之前,主机必须获得用户的明确授权。应通过适当的访问控制机制保护敏感数据,防止意外泄露或共享,尤其是 LLM 处理大量数据时。必须使用加密和严格的访问控制规则。
  • 工具安全性:通过 MCP 关联的工具可能用于运行代码。除非工具说明来自可靠服务器,开发者不应轻信。用户在使用任何工具之前应先授予权限,并在允许其运行前了解工具的功能。
  • 安全输出处理:必须谨慎处理 MCP 交互生成的 LLM 输出,以防出现安全问题,例如跨站脚本攻击 (XSS) 或其他 Web 应用攻击(当输出显示给用户时)。正确清理输入并过滤输出非常重要,同时应避免在提示中包含敏感数据。
  • 供应链安全:MCP 服务器及其连接的外部工具必须具备高度可靠性。组织应确保 LLM 供应链的所有环节都安全可靠,以防止偏差结果、安全漏洞或运行故障。
  • 监控和审核:定期检查 LLM 活动及其与 MCP 服务器的交互情况,有助于发现异常行为或潜在滥用。构建强大的日志记录与审核系统,可跟踪数据流动与工具使用,有助于应对安全事件。

开发者遵循这些原则,即可充分发挥 MCP 的能力,同时防范潜在风险。

构建并部署由 MCP 赋能的应用

要实现 Model Context Protocol,您需要一套强大且可靠的基础架构,以支持 LLM、MCP 服务器和底层数据源的高效运行。云平台提供构建完整解决方案所需的可扩缩、安全组件。您可以按照以下方式着手实施:

托管和扩缩您的 MCP 服务器

MCP 服务器是连接您外部工具的桥梁。您可以根据自身需求选择:

  • 无服务器环境(如 Cloud Run):适用于构建简单的无状态工具。无服务器平台会根据需求自动扩缩服务器(甚至缩减至零),因此您只需为实际使用的资源付费。非常适合高效部署单个工具。
  • 容器编排(例如 Google Kubernetes Engine (GKE)):对于需要对网络和资源进行精细控制的复杂有状态应用,托管式 Kubernetes 环境可提供在企业级规模下运行复杂 MCP 基础设施所需的强大性能与灵活性。

将 MCP 连接到您的数据和工具

MCP 的核心价值在于其可访问的各类工具。您可以将 LLM 连接至以下资源:

  • 托管式数据库(如 Cloud SQLSpanner):允许 AI 安全查询关系型数据库,如客户信息、库存或运营数据
  • 数据仓库(如 BigQuery):LLM 可用于分析任务,通过数据仓库处理海量数据集,并根据用户查询得出深层次的上下文洞见

使用 Vertex AI 编排端到端 AI 工作流

统一的 AI 平台对于整合所有组件至关重要。Vertex AI 可帮助您管理由 MCP 提供支持的应用的整个生命周期:

  • LLM 托管:部署和管理 Gemini 等强大的基础模型,它们是应用的“大脑”。
  • 智能体与编排框架:构建 AI 智能体通常涉及复杂工作流。Vertex AI 提供工具,可简化 LLM 与 MCP 服务器提供的上下文之间的信息流,从而加快具备推理和行动能力的复杂智能体的开发。

更进一步

获享 $300 赠金以及 20 多种提供“始终免费”用量的产品,开始在 Google Cloud 上构建项目。