模型上下文协议(MCP):架构、用途和实现的综合指南

大型语言模型(LLMs)在推理、总结和自然语言理解任务方面取得了巨大增长,但在企业部署中因无法访问或操作结构化操作数据而受到限制。

  • 发展历程:2023 年以前,LLMs 大多限于基于提示的设置,生成纯文本响应,无法访问外部数据源或执行实际计算。2023 年 6 月,OpenAI 推出 GPT-4 的函数调用功能,让模型可返回结构化 JSON 输出,但仍需手动注册工具定义。各公司的模型如 Anthropic 的 Claude、Cohere 的 Command R+和 Google 的 PaLM 2 等也有类似的集成方式。2024 年 11 月,Anthropic 发布 Model Context Protocol(MCP),旨在解决这些限制,它定义了正式的客户端-服务器架构,基于 JSON-RPC 2.0,支持多种传输协议,引入了主机、客户端和服务器三个角色。
  • MCP 架构与组件

    • 概念架构与组件角色:MCP 架构有主机、客户端和服务器三个组件。主机是 LLM 的执行上下文,客户端负责管理会话,服务器提供工具、数据和提示的访问。这种架构分离了责任,提高了安全性和适应性。
    • 通信架构与消息流程:MCP 使用 JSON-RPC 2.0 构建消息层,每个消息包含特定字段,通过多种核心方法进行通信,支持同步和异步模式,服务器自省功能可实现动态工具发现,消息结构和响应格式有助于审计和追踪。
    • 传输机制与部署灵活性:MCP 支持 stdio 和 HTTP/SSE 两种传输协议,可在不同环境中部署,如在隔离环境中使用 stdio 传输,在浏览器或 Web 应用中使用 HTTP/SSE 传输。Spring AI 的 MCP SDK 支持多种传输,并提供了相应的客户端类和集成示例。
  • 技术细节

    • JSON-RPC 2.0 基础与结构:MCP 基于 JSON-RPC 2.0,请求消息有固定结构,包括 12 种方法,所有工具等需用 JSON Schema 定义输入输出结构,错误消息符合标准,JSON-RPC 是低延迟、模式化 RPC 传输的首选协议。
    • 会话管理与状态连接:MCP 不定义全局会话 ID,但通过结构化消息上下文和可选会话元数据支持有状态连接,包括用户 ID、会话令牌等信息,授权信息需包含在参数中。
    • 能力协商与特性发现:通过 serverInfo 和 listCapabilities 等方法实现能力协商,客户端可解析响应并进行运行时验证,Spring AI 的 SDK 支持多版本工具条目等。
    • 错误处理与恢复机制:MCP 使用 JSON-RPC 定义的错误代码,包括解析错误、参数错误等,研究表明在测试中能有效处理各种错误情况。
    • 安全框架:MCP 不强制特定认证标准,允许使用多种方式,工具定义可包含权限字段,通过结构限制执行,与其他安全框架如 ISO/IEC 27001 等相契合。
  • MCP 功能与特性

    • 客户端提供的功能:客户端提供的功能用于配置模型级交互和验证会话上下文,通过 schema-validated 结构与服务器通信,可拦截和控制工具调用。
    • 设计原则与实现理念:围绕 schema-first 验证、角色分离等五个核心原则设计,Spring AI 的 SDK 等在多个位置进行 schema 验证,以确保系统的安全性和稳定性。
    • 高级功能与扩展机制:通过六个 introspection 方法实现扩展,Spring AI 的 SDK 支持 introspection 并提供动态扩展功能,工具执行参数可通过 SDK 控制。
  • 用例与应用:在多个领域有广泛应用,如数据库集成、DevOps、内容管理、Web 自动化等,通过 MCP 实现工具与系统的集成和协作,提高效率和准确性。
  • 实施示例与代码样本:以 Spring AI 的 SDK 为例,展示了基本的 MCP 服务器实现、工具定义、输入输出验证等,包括 Java 代码示例和相关的架构图,如数据库集成示例等。
  • MCP 与传统功能调用对比:与 OpenAI 的函数调用相比,MCP 分离了工具发现、验证和执行,支持多种传输和角色定义,在测试中表现出更低的失败率和更好的可扩展性,Spring AI 的实现也更具优势。
  • 安全、隐私与最佳实践:在威胁处理、零信任和用户同意方面,通过输入验证、TLS 认证等方式防止未经授权的访问;在服务器设计方面,加强输入验证和日志记录;在数据最小化方面,遵守相关标准,限制数据处理。
  • 未来展望与行业采用:生态系统不断增长,通过 GitHub 贡献等方式扩展文档和实现;在社区贡献方面,各团队提供了不同的方法和框架;在企业准备方面,因其隔离执行和模式控制等特点,受到企业的关注和采用;在多代理系统集成方面,为任务路由提供了有效的解决方案。
  • 结论:MCP 提供了连接 AI 系统与外部工具的结构化方法,减少了复杂性,提高了可追溯性和可移植性,是 AI 系统发展的重要协议。
阅读 51
0 条评论