目前网上能看到的 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 的版号)。

<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:从名字可以看出来,就是工具调用时需要传什么参数
@McpServerEndpoint(sseEndpoint = "/sse")
public class HelloService {
@ToolMapping(description = "你好世界")
public String hello(@ToolParam(description = "名字") String name) throws SQLException {
return "hello " + name;
}
}

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

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

@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);
}
}

运行单测后:

Solon AI MCP Server 入门:Helloworld (支持 java8 到 java24。国产解决方案)的更多相关文章

  1. Springboot2.x入门——helloWorld

    Springboot2.x入门--helloWorld 一.简介 1.1 Springboot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的 ...

  2. Azure DevOps Server 入门实践与安装部署

    一,引言 最近一段时间,公司希望在自己的服务器上安装本地版的 Azure DevOps Service(Azure DevOps Server),用于项目内的测试,学习.本着学习的目的,我也就开始学习 ...

  3. 使用的 SQL Server 版本不支持数据类型“datetime2”.

    错误原因,在使用ado.net entity的时候,entity使用的数据库是sqlserver 2008, 但后来实际使用中使用的数据库是sqlserver 2005, 使用的 SQL Server ...

  4. RabbitMQ学习总结 第二篇:快速入门HelloWorld

    目录 RabbitMQ学习总结 第一篇:理论篇 RabbitMQ学习总结 第二篇:快速入门HelloWorld RabbitMQ学习总结 第三篇:工作队列Work Queue RabbitMQ学习总结 ...

  5. SQL Server 2016原生支持JSON

    转载原地址: http://www.cnblogs.com/lyhabc/p/4747694.html SQL Server 2005 开始支持 XML 数据类型,提供原生的 XML数据类型.XML ...

  6. Wix学习整理(1)——快速入门HelloWorld

    原文:Wix学习整理(1)--快速入门HelloWorld 1 Wix简介 Wix是Windows Installer XML的简称,其通过类XML文件格式来指定了用于创建Windows Instal ...

  7. CodeIgniter入门——HelloWorld

    原文:CodeIgniter入门--HelloWorld CodeIgniter(CI)是一套给PHP网站开发者使用的应用程序开发框架和工具包. 初次接触,来一个HelloWorld~~~ ^_^ 准 ...

  8. Flask入门HelloWorld

    Flask入门HelloWorld Flask官网:http://flask.pocoo.org/ Flask中文翻译:http://dormousehole.readthedocs.io/en/la ...

  9. 贝叶斯公式由浅入深大讲解—AI基础算法入门

    1 贝叶斯方法 长久以来,人们对一件事情发生或不发生的概率,只有固定的0和1,即要么发生,要么不发生,从来不会去考虑某件事情发生的概率有多大,不发生的概率又是多大.而且概率虽然未知,但最起码是一个确定 ...

  10. ef SQL Server 版本不支持数据类型“datetime2”

    我遇到这个问题是在用数据库模型的时候.当时我电脑上是sql2008 通过vs2010建立了一个ADO.net数据库模型,之后在项目上线的时候,临时把数据库换成了sql2005,在添加新闻的时候出现了“ ...

随机推荐

  1. Windows 快速启动器

    在日常工作和学习中,我们经常需要快速访问某些功能或资源,例如打开常用网站.启动应用程序或执行特定命令.Linux 用户可以通过 alias 快速实现这些操作,但在 Windows 上缺乏类似的原生支持 ...

  2. [ARC 188A] ABC Symmetry

    solution by XiangXunYi 思路推导 step 1 首先题目中操作二同时删掉 A,B,C 的条件相当于同时将三者数量减一,操作一删掉两个相同字符等同于将某一字符的数量减二,那么我们可 ...

  3. Layer子域名挖掘机

    Layer子域名挖掘机 Layer子域名挖掘机是一款功能强大的域名查询工具,主要用于提供网站子域名的查询服务. 域名与子域名 域名 域名,又称网域,是互联网上用于标识特定计算机或计算机组的一串由点分隔 ...

  4. 普通人也能轻松掌握的20个DeepSeek高频提示词(2025版)

    一.基础原则 1️⃣ 说人话最重要 "不用专业术语,就像和朋友聊天一样描述需求". ️ 错误示范:"请用SWOT分析法输出新能源汽车行业报告". 正确示范:&q ...

  5. Java中的输出格式化

    在Java中,输出格式化是一个非常重要的功能,尤其是在需要精确控制输出格式的场景下. 以下是对代码中输出部分的详细解释: 原代码中的输出: System.out.printf("%.6f\n ...

  6. 多节点oceanbase 集群部署

    安装前准备 硬件要求 CPU最少2核 磁盘最少19G 文件系统EXT4 戓 XFS 关闭透明大页 echo never > /sys/kernel/mm/redhat_transparent_h ...

  7. ABB机器人IO板DSQC651维修检查方法

    ABB机器人作为工业自动化的重要设备,其稳定性和可靠性对于生产线的持续运行至关重要.然而,在实际使用中,由于各种原因,可能会出现ABB机器人IO板DSQC651故障,影响机器人的正常运行. 一.ABB ...

  8. const char*和char*的区别

  9. 从android中删除短信

    代码如下: getContentResolver().delete(Uri.parse("content://sms/#"),"address=?", new ...

  10. mysql where条件:某时间字段为今天的sql语句

    1.查询:注册时间为今天的所有用户数: select count(*) from customer where TO_DAYS(createtime) = TO_DAYS(NOW()) 2.获取当前时 ...