跳到主要内容

模型上下文协议 (MCP)

DeepSeek V3 中英对照 Model Context Protocol (MCP)

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

MCP Java SDK

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

Java MCP 实现遵循三层架构:

MCP 堆栈架构

  • 客户端/服务器层: McpClient 处理客户端操作,而 McpServer 管理服务器端协议操作。两者都使用 McpSession 进行通信管理。
  • 会话层 (McpSession): 通过 DefaultMcpSession 实现管理通信模式和状态。
  • 传输层 (McpTransport): 处理 JSON-RPC 消息的序列化和反序列化,支持多种传输实现。
MCP 客户端
MCP 客户端是模型上下文协议(MCP)架构中的关键组件,负责与 MCP 服务器建立和管理连接。它实现了协议的客户端部分,处理以下内容:

- 协议版本协商,以确保与服务器的兼容性

- 功能协商,以确定可用的特性

- 消息传输和 JSON-RPC 通信

- 工具发现与执行

- 资源访问与管理

- 提示系统交互

- 可选功能:

- Roots 管理

- 采样支持


- 同步和异步操作

- 传输选项:

- 基于 Stdio 的传输,用于基于进程的通信

- 基于 Java HttpClient 的 SSE 客户端传输

- WebFlux SSE 客户端传输,用于响应式 HTTP 流
Java MCP 客户端架构
MCP Server
MCP Server 是 Model Context Protocol (MCP) 架构中的一个基础组件,为客户端提供工具、资源和能力。它实现了协议的服务器端,负责以下内容:

- 服务器端协议操作的实现

- 工具的暴露和发现

- 基于 URI 的资源管理

- 提示模板的提供和处理

- 与客户端的能力协商

- 结构化日志记录和通知


- 并发客户端连接管理

- 同步和异步 API 支持

- 传输实现:

- 基于 Stdio 的传输,用于基于进程的通信

- 基于 Servlet 的 SSE 服务器传输

- WebFlux SSE 服务器传输,用于响应式 HTTP 流

- WebMVC SSE 服务器传输,用于基于 Servlet 的 HTTP 流
Java MCP Server 架构

有关使用低级 MCP 客户端/服务器 API 的详细实现指南,请参阅 MCP Java SDK 文档。要使用 Spring Boot 进行简化设置,请使用下面描述的 MCP Boot Starters。

Spring AI MCP 集成

Spring AI 通过以下 Spring Boot starters 提供 MCP 集成:

  • spring-ai-mcp-client-spring-boot-starter - 核心 starter,提供 STDIO 和基于 HTTP 的 SSE 支持

  • spring-ai-mcp-client-webflux-spring-boot-starter - 基于 WebFlux 的 SSE 传输实现

  • spring-ai-mcp-server-spring-boot-starter - 核心服务器,支持 STDIO 传输

  • spring-ai-mcp-server-webmvc-spring-boot-starter - 基于 Spring MVC 的 SSE 传输实现

  • spring-ai-mcp-server-webflux-spring-boot-starter - 基于 WebFlux 的 SSE 传输实现

附加资源

章节摘要