正式推出 Spring AI MCP:用于 MCP(模型上下文协议)的 Java SDK
时间: 2025-03-21 16:08:35 浏览: 304
### Spring AI MCP Java SDK 概述
Spring AI MCP 是一种基于 Model Context Protocol (MCP) 的 Java 实现,旨在简化模型上下文协议的应用开发过程。通过该 SDK,开发者可以轻松构建支持 MCP 协议的服务端和客户端应用程序[^1]。
#### 核心功能
- **多传输选项**:支持多种通信方式,便于灵活集成到不同的技术栈中。
- **三层架构设计**:
- **MCP 客户端**:负责向服务端发送请求并处理响应。
- **MCP 服务器**:提供 API 接口供客户端调用,并管理模型的上下文数据。
- **工具回调接口(ToolCallbackProvider)**:允许扩展自定义行为以适应特定需求[^2]。
---
### 使用方法
以下是关于如何使用 Spring AI MCP Java SDK 构建服务端和客户端的具体指导:
#### 1. 引入 Maven 依赖
在项目的 `pom.xml` 文件中添加以下依赖项来引入 Spring AI MCP SDK:
```xml
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-mcp</artifactId>
<version>1.0.0-M6</version>
</dependency>
```
#### 2. 配置 YML 文件
创建或修改项目中的 `application.yml` 或 `application.properties` 文件,设置必要的参数。例如:
```yaml
spring:
ai:
mcp:
server-url: http://localhost:8080/mcp-server
client-id: my-client-id
secret-key: my-secret-key
```
#### 3. 编写服务端代码
服务端需要实现 ToolCallbackProvider 并将其注册到容器中。示例代码如下:
```java
import org.springframework.ai.mcp.ToolCallbackProvider;
import org.springframework.stereotype.Component;
@Component
public class MyToolCallbackProvider implements ToolCallbackProvider {
@Override
public String handleRequest(String requestPayload) {
// 自定义逻辑处理接收到的数据
return "Response from tool callback provider";
}
}
```
同时,在控制器类中暴露 RESTful API 来接收来自客户端的请求:
```java
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/mcp-server")
public class McpServerController {
private final ToolCallbackProvider toolCallbackProvider;
public McpServerController(ToolCallbackProvider toolCallbackProvider) {
this.toolCallbackProvider = toolCallbackProvider;
}
@PostMapping("/process")
public String process(@RequestBody String payload) {
return toolCallbackProvider.handleRequest(payload);
}
}
```
#### 4. 编写客户端代码
客户端可以通过简单的 HTTP 请求与服务端交互。下面展示了一个基本的 Controller 示例:
```java
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.client.RestTemplate;
@RestController
@RequestMapping("/mcp-client")
public class McpClientController {
private final RestTemplate restTemplate;
@Value("${spring.ai.mcp.server-url}")
private String serverUrl;
public McpClientController(RestTemplate restTemplate) {
this.restTemplate = restTemplate;
}
@GetMapping("/send-request")
public ResponseEntity<String> sendRequest() {
String url = serverUrl + "/process";
String requestBody = "{\"key\":\"value\"}";
return restTemplate.postForEntity(url, requestBody, String.class);
}
}
```
---
### 总结
Spring AI MCP 提供了一套完整的解决方案,帮助开发者快速搭建基于 MCP 协议的应用程序。无论是作为服务提供商还是消费者角色,都可以借助其强大的功能模块完成复杂的业务场景需求。
阅读全文
相关推荐










