Solon v3.2.0

mcp - 发布 Tool 服务,使用 Tool 服务

</> markdown

在 solon-web 项目里添加依赖:

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

1、服务端示例(发布工具服务)

很简单,添加个 @McpServerEndpoint 注解类就好。并使用 @ToolMapping 申明工具映射。

@McpServerEndpoint(sseEndpoint = "/mcp/sse")
public class McpServerTool {
    //
    // 建议开启编译参数:-parameters (否则,要再配置参数的 name)
    //
    @ToolMapping(description = "查询天气预报")
    public String getWeather(@ToolParam(description = "城市位置") String location) {
        return "晴,14度";
    }
}

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

3、客户端示例(使用工具服务)

使用 McpClientToolProvider 可以快速使用工具服务。(也可以使用第三方的工具,或平台)

  • 直接调用
public void case1() {
    McpClientToolProvider clientToolProvider = McpClientToolProvider.builder()
                .apiUrl("http://localhost:8080/mcp/sse")
                .build();

    String rst = clientToolProvider.callToolAsText("getWeather", Map.of("location", "杭州"));
}

4、MCP 之于 AI 应用开发

  • 以前调用第三方接口,我们需要先封装成本地的 Tool 规范,再给 ChatModel。
  • 现在,第三方接口直接提供 Tool RPC(通过 MCP 协议)。可以直接整合给 ChatModel 用了。
  • 再进一步的话,能过“配置”就可以使用第三方的 Tool 服务