模型上下文协议(MCP)

模型上下文协议(MCP) 是一种标准化协议,使 AI 模型能够以结构化的方式与外部工具和资源进行交互。它支持多种传输机制,从而提供跨不同环境的灵活性。

MCP Java SDK提供了模型上下文协议的 Java 实现,支持通过同步和异步通信模式与 AI 模型和工具进行标准化交互。

Spring AI MCP通过 Spring Boot 集成扩展了 MCP Java SDK,提供客户端和服务器启动器。使用Spring Initializer引导您的 AI 应用程序,使其支持 MCP 。

MCP Java SDK 架构

  • 客户端/服务器层:McpClient 处理客户端操作,而 McpServer 管理服务器端协议操作。两者都使用 McpSession 进行通信管理。

  • 会话层(McpSession):通过 McpClientSession 和 McpServerSession 实现管理通信模式和状态。

  • 传输层(McpTransport):处理 JSON-RPC 消息序列化和反序列化,支持多种传输实现。

MCP 客户端

MCP 客户端是模型上下文协议 (MCP) 架构中的关键组件,负责建立和管理与 MCP 服务器的连接。它实现了协议的客户端功能,处理以下操作:

  • 协议版本协商以确保与服务器的兼容性
  • 能力协商以确定可用功能
  • 消息传输和 JSON-RPC 通信
  • 工具发现和执行
  • 资源访问和管理
  • 提示系统交互
  • 可选功能:
    • 根部管理
    • 采样支持
    • 同步和异步操作
  • 交通选择:
    • 基于 Stdio 的传输,用于基于进程的通信
    • 基于 Java HttpClient 的 SSE 客户端传输
    • 用于反应式 HTTP 流的 WebFlux SSE 客户端传输

MCP 服务器

MCP 服务器是模型上下文协议 (MCP) 架构中的基础组件,为客户端提供工具、资源和功能。它实现了协议的服务器端,负责:

  • 服务器端协议操作实现
    • 工具曝光和发现
    • 基于 URI 访问的资源管理
    • 及时提供和处理模板
    • 与客户进行能力谈判
    • 结构化日志记录和通知
    • 并发客户端连接管理
    • 同步和异步 API 支持
  • 运输实施:
    • 基于 Stdio 的传输,用于基于进程的通信
    • 基于 Servlet 的 SSE 服务器传输
    • 用于反应式 HTTP 流的 WebFlux SSE 服务器传输
    • 用于基于 servlet 的 HTTP 流的 WebMVC SSE 服务器传输

Spring AI MCP 集成

Spring AI 通过以下 Spring Boot 启动器提供 MCP 集成:

客户端启动器

  • spring-ai-starter-mcp-client - 核心启动器提供 STDIO 和基于 HTTP 的 SSE 支持
  • spring-ai-starter-mcp-client -webflux - 基于 WebFlux 的 SSE 传输实现

服务器启动器

  • spring-ai-starter-mcp-server - 具有 STDIO 传输支持的核心服务器
  • spring-ai-starter-mcp-server-webmvc - 基于Spring MVC的SSE传输实现
  • spring-ai-starter-mcp-server-webflux - 基于 WebFlux 的 SSE 传输实现
作者:Jeebiz  创建时间:2025-08-03 12:39
最后编辑:Jeebiz  更新时间:2025-08-08 00:47