目前,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即可

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐