1. SpringAI MCP 服务端概述
SpringAI的Model Context Protocol(MCP)是一个强大的工具集成框架,它允许开发者将各种功能封装成可调用的工具,并通过标准化协议与AI模型进行交互。作为一名长期从事Java开发的工程师,我在实际项目中发现MCP特别适合构建需要AI增强能力的服务端应用。
MCP服务端主要支持三种通信模式:
- Stdio(标准输入输出):适合本地调试和简单工具
- SSE(Server-Sent Events):适用于需要流式响应的场景
- Streamable HTTP:功能最完整的HTTP协议实现
这三种模式各有优势,开发者可以根据具体需求选择。下面我将通过四个实际案例,详细讲解如何构建不同类型的MCP服务端。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Stdio服务端实现:高德天气查询
2.1 项目配置与依赖
首先创建一个基础的Spring Boot项目,添加以下关键依赖:
xml复制<properties>
<java.version>17</java.version>
<spring-ai.version>1.1.2</spring-ai.version>
</properties>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-mcp-server</artifactId>
</dependency>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>${spring-ai.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
这里使用SpringAI 1.1.2版本,需要Java 17或更高版本。MCP服务端核心依赖是spring-ai-starter-mcp-server。
2.2 天气服务工具实现
核心工具类需要完成两个功能:
- 根据城市名获取城市编码
- 根据城市编码获取天气信息
java复制@Service
public class WeatherService {
private final String KEY;
private final RestClient restClient;
public WeatherService() {
this.restClient = RestClient.builder().build();
this.KEY = System.get
