无耳 Solon Ai MCP,发布工具服务,使用工具服务。效果预览!

solon-ai-mcp 是 solon-ai 的扩展特性。提供 mcp 协议的支持。通过它,可以方便的发布 Tool Service,方便的使用 Tool Service。

引入依赖包

<dependency>
    <groupId>org.noear</groupId>
    <artifactId>solon-ai-mcp</artifactId>
    <version>3.1.3-SNAPSHOT</version>
</dependency>

服务端演示(发布工具服务)

引入依赖包后,服务端默认不会启用,需要通过配置启用。

solon.ai.mcp.server:  
  enabled: true            
  sseEndpoint: "/mcp/sse"  

启用 mcp server 后,所有组件的 @FunctionMapping 方法,会自动成为 mcp server 的 tool 服务。

@Component
public class McpServerTool {
    @FunctionMapping(description = "查询天气预报")
    public String getWeather(@FunctionParam(description = "城市位置") String location) {
        return "晴,14度";
    }
}

public class McpServerApp {
    public static void main(String[] args) {
        Solon.start(McpServerApp.class, args);
    }
}

客户端演示(使用工具服务)

客户端可以使用原生的 modelcontextprotocol 接口,也可以使用 McpClientWrapper (包装简化过)

  • 直接调用
public void case1(){
    McpClientWrapper mcpClient = new McpClientWrapper("http://localhost:8080", "/mcp/sse");

    String rst = mcpClient.callToolAsText("getWeather", Map.of("location", "杭州"));
}
  • 绑定给模型使用
public void case2(){
    ChatModel chatModel = null;
    McpClientWrapper mcpClient = null;

    chatModel.prompt("杭州今天的天气怎么样?")
            .options(options -> {
                //转为函数集合用于绑定
                options.functionAdd(mcpClient.toFunctions());
            })
            .call();
}

项目仓库地址

官网

### Solon AI MCP 示例代码与教程 Solon AI MCP 是一种用于构建 MCP 服务器的强大框架,支持多种 Java 版本(如 Java 8 及以上),并且可以轻松嵌入到其他流行的框架中,例如 Spring Boot、JFinal 和 Vert.x[^2]。 下面是一些关于如何使用 Solon AI MCP 进行 Java 开发的具体示例代码和教程。 #### 1. 安装与环境准备 首先,确保您的项目环境中包含了 Solon AI MCP 的依赖项。如果您正在使用 Maven 构建工具,可以在 `pom.xml` 文件中添加以下内容: ```xml <dependency> <groupId>org.noear.solon</groupId> <artifactId>solon-ai-mcp</artifactId> <version>最新版本号</version> </dependency> ``` 此配置将导入 Solon AI MCP 所需的核心库[^3]。 #### 2. 创建一个简单的 MCP Server 接下来,我们将通过编写一些基本代码来启动一个 MCP Server。这里展示了一个非常基础的例子,演示了如何接收客户端请求并返回响应数据。 ##### 主程序入口 ```java import org.noear.solon.Solon; import org.noear.solon.core.AopContext; public class MainApp { public static void main(String[] args) { AopContext.context().scan("com.example.mcp"); Solon.start(MainApp.class, args); } } ``` 这段代码设置了扫描包路径以便自动加载控制器和其他组件,并启动了应用程序实例[^4]。 #### 3. 配置 Controller 处理 HTTP 请求 现在我们定义一个 controller 类用来处理传入的 HTTP 请求。假设我们要实现一个 RESTful API 接口,该接口接受 POST 方法并将接收到的信息回显给调用方。 ```java package com.example.mcp.controller; import org.noear.solon.annotation.Controller; import org.noear.solon.annotation.Mapping; import org.noear.solon.annotation.Param; import org.noear.solon.core.handle.ModelAndView; @Controller @Mapping("/api/mcp") public class McpController { @Mapping(value = "echo", method = "POST") public ModelAndView echo(@Param("message") String message){ ModelAndView mv = new ModelAndView(); mv.put("result", "Echo: "+message); return mv; } } ``` 在这个例子中,当有 POST 请求到达 `/api/mcp/echo` 路径时,参数中的 'message' 字段会被读取出来并通过视图模型对象返回给前端显示[^5]。 #### 4. 测试您的新服务 最后一步就是测试我们的新创建的服务是否正常运作。您可以借助 Postman 或 curl 命令行工具向刚才部署好的 URL 发送模拟请求验证其行为表现。 例如,如果运行的是本地主机上的默认端口号 (通常是 8080),那么可以用下面这样的命令试试看效果: ```bash curl --location --request POST 'http://localhost:8080/api/mcp/echo' \ --header 'Content-Type: application/x-www-form-urlencoded' \ --data-urlencode 'message=Hello World!' ``` 预期输出应该是类似于这样的一条记录: ```json { "result": "Echo: Hello World!" } ``` --- ###
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值