MCP概述
模型上下文协议的Java SDK实现了AI模型和工具之间的标准化集成。
备注
0.8.x版本的重大变更 ⚠️
注意: 0.8.x版本引入了几个重大变更,包括新的基于会话的架构。 如果您从0.7.0版本升级,请参考迁移指南获取详细说明。
概述
MCP Java SDK使您能够将AI模型与工具进行标准化集成。它提供了:
- 协议版本兼容性协商
- 工具发现和调用
- 资源管理和访问
- 提示模板和生成
- 与AI模型的交互采样
- 同步和异步编程范式支持
架构
MCP SDK采用分层架构,具有清晰的关注点分离:
-
客户端/服务器层
- 实现协议消息处理
- 管理连接和会话
- 处理工具调用和资源访问
-
会话层
- 管理客户端和服务器之间的通信
- 处理消息路由和状态
- 提供错误处理和恢复
-
传输层
- 处理底层通信协议
- 支持多种传输实现
- 管理连接生命周期
依赖
Maven
<dependencyManagement>
<dependencies>
<dependency>
<groupId>io.modelcontextprotocol</groupId>
<artifactId>mcp-bom</artifactId>
<version>0.8.0</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<dependencies>
<!-- 核心MCP功能 -->
<dependency>
<groupId>io.modelcontextprotocol</groupId>
<artifactId>mcp</artifactId>
</dependency>
<!-- HTTP SSE传输实现 -->
<dependency>
<groupId>io.modelcontextprotocol</groupId>
<artifactId>mcp-spring-webflux</artifactId>
</dependency>
<!-- 测试工具 -->
<dependency>
<groupId>io.modelcontextprotocol</groupId>
<artifactId>mcp-testing</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
Gradle
plugins {
id 'java'
id 'io.spring.dependency-management' version '1.1.4'
}
repositories {
mavenCentral()
}
dependencyManagement {
imports {
mavenBom 'io.modelcontextprotocol:mcp-bom:0.8.0'
}
}
dependencies {
// 核心MCP功能
implementation 'io.modelcontextprotocol:mcp'
// HTTP SSE传输实现
implementation 'io.modelcontextprotocol:mcp-spring-webflux'
// 测试工具
testImplementation 'io.modelcontextprotocol:mcp-testing'
}
可用依赖
核心依赖
mcp
: 核心MCP功能mcp-bom
: 依赖版本管理
传输实现
mcp-spring-webflux
: HTTP SSE传输mcp-spring-webmvc
: Spring WebMVC SSE传输mcp-spring-servlet
: Servlet SSE传输
测试工具
mcp-testing
: 测试工具和实用程序
下一步
提示
Spring AI MCP扩展了MCP Java SDK,提供Spring Boot集成,
包括客户端和服务器 Boot Starter。
您可以使用Spring Initializer引导您的AI Spring应用程序。
架构
SDK遵循分层架构,关注点分离清晰:
- 客户端/服务器层(McpClient/McpServer):两者都使用McpSession进行同步/异步操作, McpClient处理客户端协议操作,McpServer管理服务器端协议操作。
- 会话层(McpSession):使用DefaultMcpSession实现管理通信模式和状态。
- 传输层(McpTransport):通过以下方式处理JSON-RPC消息序列化/反序列化:
- 核心模块中的StdioTransport(stdin/stdout)
- 专用传输模块中的HTTP SSE传输(Java HttpClient、Spring WebFlux、Spring WebMVC)
MCP客户端是模型上下文协议(MCP)架构中的关键组件,负责建立和管理与MCP服务器的连接。 它实现了协议的客户端部分。
MCP服务器是模型上下文协议(MCP)架构中的基础组件,向客户端提供工具、资源和功能。 它实现了协议的服务器端部分。
关键交互:
- 客户端/服务器初始化:传输设置、协议兼容性检查、能力协商和实现细节交换。
- 消息流:JSON-RPC消息处理,包括验证、类型安全响应处理和错误处理。
- 资源管理:资源发现、基于URI模板的访问、订阅系统和内容检索。