功能特性
- MCP 客户端和服务器端实现支持:
- 多种传输实现:
- 默认传输(包含在核心
mcp模块中,无需外部 Web 框架):- 基于标准输入输出的进程间通信传输
- 基于 Java HttpClient 的 SSE 客户端传输,用于 HTTP SSE 客户端流式传输
- 基于 Servlet 的 SSE 服务器传输,用于 HTTP SSE 服务器流式传输
- 可选的基于 Spring 的传输(使用 Spring Framework 时的便捷选择):
- WebFlux SSE 客户端和服务器传输,用于响应式 HTTP 流式传输
- WebMVC SSE 传输,用于基于 servlet 的 HTTP 流式传输
- 默认传输(包含在核心
- 支持同步和异步编程范式
架构
该 SDK 采用分层架构,具有明确的关注点分离:- 客户端/服务器层 (McpClient/McpServer):两者都使用 McpSession 进行同步/异步操作,McpClient 处理客户端协议操作,McpServer 管理服务器端协议操作。
- 会话层 (McpSession):通过 DefaultMcpSession 实现管理通信模式和状态。
- 传输层 (McpTransport):处理 JSON-RPC 消息的序列化/反序列化,通过:
- 核心模块中的 StdioTransport(标准输入/输出)
- 专用传输模块中的 HTTP SSE 传输(Java HttpClient、Spring WebFlux、Spring WebMVC)


- 客户端/服务器初始化:传输设置、协议兼容性检查、能力协商和实现细节交换。
- 消息流:JSON-RPC 消息处理,包括验证、类型安全的响应处理和错误处理。
- 资源管理:资源发现、基于 URI 模板的访问、订阅系统和内容检索。
依赖
将以下 Maven 依赖添加到您的项目中:- Maven
- Gradle
核心 MCP 功能:核心
mcp 模块已包含默认的 STDIO 和 SSE 传输实现,无需外部 Web 框架。如果您使用 Spring Framework 并想使用 Spring 特定的传输实现,请添加以下可选依赖之一:物料清单 (BOM)
物料清单 (BOM) 声明了特定发布版本所使用的所有依赖项的推荐版本。 在应用程序的构建脚本中使用 BOM 可以避免您自己指定和维护依赖项版本。 相反,您使用的 BOM 版本决定了所使用的依赖项版本。 除非您选择覆盖它们,否则它还确保您默认使用受支持和经过测试的依赖项版本。 将 BOM 添加到您的项目中:- Maven
- Gradle
可用依赖
BOM 管理的可用依赖项如下:- 核心依赖
io.modelcontextprotocol.sdk:mcp- 核心 MCP 库,提供 Model Context Protocol 实现的基本功能和 API,包括默认的 STDIO 和 SSE 客户端及服务器传输实现。无需外部 Web 框架。
- 可选传输依赖(使用 Spring Framework 时的便捷选择)
io.modelcontextprotocol.sdk:mcp-spring-webflux- 基于 WebFlux 的服务器发送事件 (SSE) 传输实现,用于响应式应用程序。io.modelcontextprotocol.sdk:mcp-spring-webmvc- 基于 WebMVC 的服务器发送事件 (SSE) 传输实现,用于基于 servlet 的应用程序。
- 测试依赖
io.modelcontextprotocol.sdk:mcp-test- MCP 应用程序的测试工具和支持。