大模型中常说的 MCP 是什么?

背景

大型语言模型(LLMs)虽然在文本生成、语言理解、代码编写等方面展现出强大能力,但存在一个固有局限:它们的能力受限于训练数据范围,缺乏实时信息感知和外部交互能力。 传统解决方案是为每个数据源(数据库、API、文件系统)构建定制化集成方案。这导致了"MxN问题":M个AI模型需要与N个外部工具连接,集成数量呈M×N增长。 为解决这一挑战,Anthropic于2024年11月推出了模型上下文协议(Model Context Protocol,MCP)。该协议在2025年3月开始获得广泛关注,得到了Cursor、Github、Google、Cloudflare等公司支持,OpenAI也宣布将支持MCP协议。国内百度地图、高德地图等公司也在积极跟进。

mcp概念

模型上下文协议(MCP)是一个开放协议,它定义了一种标准化的方式,使得应用程序能够为大型语言模型(LLMs)提供上下文信息。其核心目标是实现 AI 模型与外部工具、数据库和 API 之间的无缝且标准化的集成。

可以将 MCP 视为 AI 领域的“USB-C 接口”。正如 USB-C 为各种设备连接到计算机提供了通用的接口一样,MCP 为 AI 模型与各种外部资源进行交互提供了一个标准化的方法。它充当了一个“通用连接器”或“通用适配器”,使得 LLMs 能够动态地与外部资源进行交互,从而获取实时的、准确的、相关的信息,并利用外部工具执行任务。

MCP 的架构

模型上下文协议(MCP)基于客户端 - 服务器架构运行,包含三个关键组成部分:

  • 主机端 (Host):一个 AI 应用程序(例如 Claude 桌面版、Cursor),它为 AI 交互提供环境,能够访问工具和数据,并运行 MCP 客户端。
  • MCP 客户端 (MCP Client):在主机端内部运行,负责实现与 MCP 服务器的通信。
  • 服务器 (Server):处理来自 MCP 客户端的请求,进行数据处理,并返回相关的响应。

MCP 客户端 负责发起与 MCP 服务器的连接,并发送请求以检索信息或执行特定任务。它们管理与服务器的通信,发现服务器提供的功能(如可用的工具、资源和提示),并有效地利用这些功能。此外,客户端还处理连接管理、错误处理,并且通常实施安全措施,例如在 AI 执行某些操作之前需要人工批准。

MCP 服务器 是轻量级的程序或服务,它们提供对外部工具和数据源的访问。它们充当通往数据库、API、文件系统和其他系统的网关。MCP 服务器通过“原语”(primitives)定义并向 AI 客户端暴露特定的功能。这些原语包括:

  • 工具(Tools):可执行的函数或操作,AI 模型可以通过服务器调用它们来执行诸如查询数据库或发送电子邮件之类的任务。
  • 资源(Resources):结构化数据,例如文档片段或代码片段,服务器可以提供这些数据以丰富模型的上下文。
  • 提示(Prompts):预先编写的指令或模板,用于指导 AI 模型与服务器的交互或执行特定任务。

服务器处理来自客户端的请求,与底层的数据库或工具进行交互,并将响应发送回客户端。

交互流程 通常如下:MCP 客户端首先与 MCP 服务器建立连接。然后,客户端可以通过称为“反射”(reflection)的过程发现服务器提供的功能,从而了解哪些工具、资源和提示可用。当 AI 模型需要访问外部信息或执行操作时,客户端会向相应的服务器发送请求,指定所需的工具或资源以及任何必要的参数。服务器处理该请求,与相关的外部系统进行交互,并将结构化的响应发送回客户端。

MCP 的关键特性

  • 双向通信能力: MCP 支持双向通信,这意味着 AI 模型不仅可以接收信息,还可以通过服务器触发外部系统中的操作。

  • 灵活的传输方式: 客户端和服务器之间的通信可以通过各种传输方法进行,包括标准输入 / 输出(stdio)、WebSockets、HTTP 服务器发送事件(SSE)和 UNIX 套接字,为不同的部署场景提供了灵活性。

  • 标准化的连接过程: 建立 MCP 连接涉及一个握手过程,客户端和服务器在此过程中交换关于其协议版本和功能的信息。

  • 模块化架构设计: MCP 架构中清晰的角色分离使得 AI 集成能够采用模块化和可扩展的方法。AI 应用程序(客户端)可以专注于其核心的推理和交互逻辑,同时依赖于专门的 MCP 服务器来处理与各种外部系统接口的复杂性。这种设计促进了代码的重用,简化了开发过程,并促进了更加互联的 AI 生态系统的发展。

MCP 的安全机制

安全是模型上下文协议设计中一个核心原则。确保安全通信和对数据与工具的受控访问至关重要。宿主应用程序(即运行 AI 模型的应用程序)通过控制哪些 MCP 客户端可以连接到哪些 MCP 服务器以及它们拥有的权限来管理安全性。MCP 包含多种安全机制,包括:

  • 身份验证和授权:MCP 强调使用强大的身份验证方法来验证客户端和服务器的身份,并实施授权策略来控制每一方允许执行的操作。这可能涉及多因素身份验证(MFA)和基于角色的访问控制(RBAC)等技术。对于远程连接,通常使用 OAuth 2.0 和 OpenID Connect 进行安全的 API 身份验证。
  • 数据加密:客户端和服务器之间交换的敏感数据在传输过程中(例如,使用 TLS)和存储时(例如,使用 AES-256)都会受到加密保护。安全密钥管理在这个过程中也至关重要。
  • 数据验证和完整性检查:MCP 的实现通常包括验证传入数据并确保其完整性的机制。这可能涉及使用校验和和加密哈希进行数据验证,以及实施实时异常检测以识别可疑活动。
  • 安全的 API 端点和数据交换:鼓励在 MCP 实现中采用保护 API 端点的最佳实践,例如清理输入、验证所有传入数据以及定期更新 API 安全设置。还可以采用速率限制来防止潜在的滥用。
  • 最小权限原则:遵循最小权限原则,即仅向客户端和服务器授予执行其特定任务所需的必要权限,这是 MCP 中的一个关键安全考虑因素。
  • 监控和审计:对协议事件、消息流和错误进行全面日志记录对于安全监控和合规性至关重要。这使得组织能够跟踪 AI 活动,检测异常交互,并维护所有 MCP 服务器交互和资源访问模式的审计跟踪。
  • 用户同意:MCP 通常要求在 AI 模型可以访问敏感数据或调用可能产生副作用的工具之前获得用户的明确同意,从而确保透明度和用户对 AI 操作的控制。细粒度的同意选项允许用户微调不同操作的权限。

对于可以通过互联网访问的远程 MCP 服务器,身份验证和授权变得更加重要。通常使用

MCP与其他方案对比

功能 MCP 传统API 函数调用 其他AI集成框架
集成工作量 单一、标准化 每个API单独集成 因LLM提供商而异 因框架而异
实时通信 是/否
动态发现 是/否
可扩展性 更容易 可能很复杂 取决于实现 因框架而异

结尾

2025年被誉为"AI Agent元年",MCP作为开放标准,为LLM与外部世界的交互提供了统一接口。它不仅简化了技术集成,更代表着AI生态系统向更互联、更高效的方向发展,为构建复杂的AI Agent奠定了基础。

打 赏