近日,中国国家地理墨脱自然中心正式落成,成为墨脱“科学+文旅”新地标。自然中心位于墨脱县游客中心二层,400平方米的通透空间内,天光透过莲花形天窗倾洒...
2025-07-26 0
上次我们分享了基于python搭建MCP Server的方式,详见《干货:手把手教你搭建自己的MCP Server》,今天我们来分享一下如何通过Spring AI把Java接口封装成MCP Server。
Spring AI已经支持MCP服务端和客户端,只需要引入对应的依赖,就可以开发自己的服务端和客户端程序。
官网:https://docs.spring.io/spring-ai/reference/api/mcp/mcp-server-boot-starter-docs.html#_tools
JDK17、Cursor(代码开发使用)、Trae(交叉验证MCP Server使用)
废话不多说直接上代码,你可以按小编的详细步骤轻松完成MCP Server的配置与使用。
1.添加Spring AI依赖
MCP Server有三种依赖方式,这里我们选择基于Spring MVC的SSE传输实现方式。
spring-ai-starter-mcp-server:支持STDIO(标准流)传输的核心服务器
spring-ai-starter-mcp-server-webmvc:基于Spring MVC的SSE传输实现
spring-ai-starter-mcp-server-webflux:基于Spring WebFlux的SSE传输实现
<!-- 依赖Spring AI 1.0,要放在dependencies外--><dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-bom</artifactId> <version>1.0.0-M7</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies></dependencyManagement><!-- 实际要用到的依赖,要放在dependencies内 --><dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-starter-mcp-server-webmvc</artifactId></dependency>
2.创建一个接口类UserService.java
主要是定义MCP Server要提供哪些具体的tools。
public interface UserService { String queryUserAddress(String userName); String queryUserName(String userNumber);}
3.创建一个实现类UserServiceImpl.java
MCP Server提供的tools具体实现逻辑,为了演示方便,此处直接在代码中初始化了接口数据。
@Slf4j@Servicepublic class UserServiceImpl implements UserService { // 初始化一些用户信息 private static final Map<String, String> userAddressMap = new HashMap<>(); private static final Map<String, String> userNameMap = new HashMap<>(); static { userAddressMap.put("张三", "北京市海淀区中关村大街1号"); userAddressMap.put("李四", "上海市浦东新区陆家嘴1号"); userAddressMap.put("王五", "广州市天河区珠江新城1号"); userAddressMap.put("赵六", "深圳市南山区科技园1号"); userNameMap.put("N001", "张三"); userNameMap.put("N002", "李四"); userNameMap.put("N003", "王五"); userNameMap.put("N004", "赵六"); } /** * 定义为MCP tool */ @Tool(description = "按姓名查询住址") @Override public String queryUserAddress(@ToolParam(description = "姓名") String userName) { log.info("按姓名查询住址: {}", userName); return userAddressMap.get(userName); } /** * 定义为MCP tool */ @Tool(description = "按学号查询姓名") @Override public String queryUserName(@ToolParam(description = "学号") String userNumber) { log.info("按学号查询姓名: {}", userNumber); return userNameMap.get(userNumber); }}
4.注册MCP方法
在启动类 DemoApplication.java 中追加如下MCP Server tools的注册
/** * 通过Spring beans实现工具规范配置 * * 用户信息查询tools * * @param userService * @return */ @Bean public ToolCallbackProvider userTools(UserService userService) { return MethodToolCallbackProvider.builder().toolObjects(userService).build(); }
5.配置文件
spring.application.name=mcp-demoserver.port=7766# MCP 服务spring.ai.mcp.server.name=webmvc-mcp-serverspring.ai.mcp.server.sse-message-endpoint=/mcp/messagesspring.ai.mcp.server.version=1.0.0spring.ai.mcp.server.type=SYNC# 日志配置logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%nlogging.level.root=INFO
6.启动MCP Server
编译并启动Spring项目,可以从日志上看到,有2个tools已经注册成功
1.配置MCP Server:
将以下配置手动注册到Trae的MCP Server中,成功注册后,我们会发现有2个可用的tools。
{ "mcpServers": { "lyj-mcp-server": { "command": "java", "args": [ "-Dspring.ai.mcp.server.stdio=true", "-Dspring.main.web-application-type=none", "-Dlogging.pattern.console=", "-jar", "/Users/admin/02-Work/workspace_ai/mcp-server-test/target/demo-0.0.1-SNAPSHOT.jar" ], "env": {} } }}
2.添加智能体验证
把刚刚注册的MCP Server添加到某个智能体上,就可以在对话框中验证啦,以下是验证截图,大家可以参考。
示例1:查找张三住址
示例2:查询学号N001学生的住址
基于Spring AI搭建MCP Server如此简单,大家赶紧实操一下吧。
关注小编并回复“MCP”即可获取完整示例代码。
相关文章
近日,中国国家地理墨脱自然中心正式落成,成为墨脱“科学+文旅”新地标。自然中心位于墨脱县游客中心二层,400平方米的通透空间内,天光透过莲花形天窗倾洒...
2025-07-26 0
7月15日,二十届中央纪委常委会举行集体学习,中共中央政治局常委、中央纪委书记李希主持会议并讲话。本次学习聚焦的主题,是推动科技创新和产业创新融合发展...
2025-07-26 0
最近一段时间,网上对于国产下一代新机的爆料越发密集了,不仅范围大,中、高端机型都有,部分机型甚至还让官方人员亲自下场爆料,但话又说回来,按每年更新的惯...
2025-07-26 0
【2025世界人工智能大会发表《人工智能全球治理行动计划》】财联社7月26日电,据新华社,7月26日,2025世界人工智能大会暨人工智能全球治理高级别...
2025-07-26 0
荣耀正为 Magic 8 Pro 的主摄带来一次“大换血”。这颗全新传感器不仅有望显著提升成像质量,还将把视频分辨率推向新高。据 智慧皮卡丘爆料,荣耀...
2025-07-26 0
“当前许多企业在AI尝试上止步于孤立项目,难以形成规模效应,而面向生成式AI的转型,已愈发从可选项走向必选项。”2025世界人工智能大会刚刚启幕,毕马...
2025-07-26 0
根据相关报道,杭州江女士的母亲为了解锁短剧续集在不知不觉中刷光了账户的2000多元,直到阳光机械无法识别它的视力数据,此时它的近视已高达2300度。这...
2025-07-26 0
西北角·中国甘肃网记者 宋芳科55年前,一架伊尔-14飞机顺利降落兰州中川机场,自此,甘肃民航事业开启了崭新篇章。从最初的简陋航站,到如今的西北航空枢...
2025-07-26 0
发表评论