使用java8开发mcp server(mcp sse方式)
SolonMCP(全称:solon-ai-mcp)是 solon 的一个扩展。支持内嵌到 jfinal,vert.x,springboot2,springboot3 等框架使用。
·
目前,MCP官网给出的java sdk必须要求java17+以上。然而,使用 SolonMCP,可以基于 java8 开发(像 MVC 的开发风格),比较简单。本文就基于Solon AI MCP 实现一个简单的 MCP Server 入门。
官网java-sdk:For Server Developers - Model Context Protocol
一、SolonMCP 简介
SolonMCP(全称:solon-ai-mcp)是 solon 的一个扩展。支持内嵌到 jfinal,vert.x,springboot2,springboot3 等框架使用。
Maven 主要依赖包:
<dependency>
<groupId>org.noear</groupId>
<artifactId>solon-ai-mcp</artifactId>
<version>3.3.1</version>
</dependency>
solon-ai-mcp:https://solon.noear.org/article/993
二、 编写tools
1、启动类
可以用idea基于solon创建一个初始项目,也可以创建一个空的maven项目开始。
import org.noear.solon.Solon;
import org.noear.solon.annotation.SolonMain;
@SolonMain
public class App {
public static void main(String[] args) {
Solon.start(App.class, args);
}
}
2、mcp tools
solon-ai-mcp 支持多端点的架构,可以手动构建端点,或者注解构建端点(@McpServerEndpoint)。再使用 @ToolMapping 注解编写工具,就像开发 MVC 一样简单和熟悉。
- @ToolMapping 注解标记这个方法是一个工具映射,通过 description 属性告诉大模型这个工具是做什么的,其实就是提示词,大模型会根据自己的理解调用这个工具,所以这个描述很重要。
- @Param:工具调用时需要传什么参数
import org.noear.solon.ai.annotation.ToolMapping;
import org.noear.solon.ai.mcp.server.annotation.McpServerEndpoint;
import org.noear.solon.annotation.Param;
import java.sql.SQLException;
@McpServerEndpoint(sseEndpoint = "/sse/mcp")
public class McpController {
@ToolMapping(description = "查询手机号归属地")
public String getPhone(@Param(name = "phone", description = "手机号") String phone) {
return "手机号归属地:北京";
}
@ToolMapping(description = "查询IP归属地")
public String getIp(@Param(name = "ip", description = "IP") String ip) {
return "IP归属地:上海";
}
}
配置下配置文件里的端口既可以启动服务了,本地可以运行启动类,如下就说明启动成功。

3、单测测试
@SolonTest(App.class)
public class HelloTest extends HttpTester {
@Test
public void testmcp() throws IOException {
McpClientToolProvider clientToolProvider = McpClientToolProvider.builder()
.apiUrl("http://localhost:8080/sse/mcp")
.build();
String rst = clientToolProvider.callToolAsText("getPhone", Maps.of("phone", "11111112222"));
log.warn(rst);
}
如下说明测试成功

4、客户端测试
使用cursor等客户端连接测试。
首先启动服务,服务可以本地启动,也可以部署到一个服务器上运行,客户端上配置 http://ip:端口/sse/mcp即可

更多推荐
所有评论(0)