Solon AI MCP Server 入门:Helloworld (支持 java8 到 java24。国产解决方案)

目前网上能看到的 MCP Server 基本上都是基于 Python 或者 nodejs ,虽然也有 Java 版本的 MCP SDK,但是鲜有基于 Java 开发的。 作为Java 开发中的国产顶级框架 Solon 已经基于 MCP SDK 在进行 Solon AI MCP 框架开发了,本文将使用 Solon AI MCP 做一个简单的 MCP Server 入门。

引入依赖

Solon AI MCP 是 Solon AI 最新增加的特性。支持 Mcp Server 和 Mcp Client,且支持 Java 8 到 Java 24。最新的版本号为 3.2.0(随 Solon 的版号)。

xml 复制代码
<dependency>
    <groupId>org.noear</groupId>
    <artifactId>solon-ai-mcp</artifactId>
    <version>3.2.0</version>
</dependency>

开始写工具

solon-ai-mcp 支持多端点的架构,可以手动构建端点,或者注解构建端点(@McpServerEndpoint)。再使用 @ToolMapping 注解编写工具,就像开发 MVC 一样简单和熟悉。

  • @ToolMapping 注解标记这个方法是一个工具映射,通过 description 属性告诉大模型这个工具是做什么的,其实就是提示词,大模型会根据自己的理解调用这个工具,所以这个描述很重要。
  • @ToolParam:从名字可以看出来,就是工具调用时需要传什么参数
java 复制代码
@McpServerEndpoint(sseEndpoint = "/sse")
public class HelloService {
    @ToolMapping(description = "你好世界")
    public String hello(@ToolParam(description = "名字") String name) throws SQLException {
        return "hello " + name;
    }
}

这样就可以了。启动时就会自动注册。并且打印基本的信息:

用客户端做个单测(调用这个工具)

java 复制代码
@Slf4j
@SolonTest(App.class)
public class HelloTest extends HttpTester {
    @Test
    public void hello() throws IOException {
        McpClientToolProvider clientToolProvider = McpClientToolProvider.builder()
                .apiUrl("http://localhost:8080/sse")
                .build();

        String rst = clientToolProvider.callToolAsText("hello", Maps.of("name", "solon"));
        log.warn(rst);
    }
}

运行单测后:

相关推荐
无巧不成书02182 分钟前
Java核心技术全景解析:从白皮书到实战踩坑
java·开发语言
智算菩萨4 分钟前
AGI神话:人工通用智能的幻象如何扭曲与分散数字治理的注意力
论文阅读·人工智能·深度学习·ai·agi
Roy_Sashulin4 分钟前
基于AI的Java编程平台
java·开发语言·人工智能·sashulin·deepseek
大傻^11 分钟前
Spring AI Alibaba 企业级实战:从0到1构建智能客服系统
java·人工智能·后端·spring·springaialibaba
贼爱学习的小黄16 分钟前
NC BIP增加按钮
java
短剑重铸之日16 分钟前
《ShardingSphere解读》11 解析引擎:SQL 解析流程应该包括哪些核心阶段?(上)
java·后端·spring·shardingsphere·分库分表
Javatutouhouduan20 分钟前
Netty进阶指南:基础+中级+高级+架构行业运用+源码分析
java·netty·java面试·网络io·后端开发·java程序员·互联网大厂
编码忘我22 分钟前
java开发模式之静态代理、动态代理、CGLIB代理
java
冬夜戏雪23 分钟前
实习面经摘录(八)
java
拾年27525 分钟前
别再让 NullPointerException 搞崩你的代码了!Optional + Stream 组合拳详解
java