模型上下文协议(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
最后编辑:Jeebiz 更新时间:2025-08-08 00:47