|
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 服务。
@Componentpublic 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(){ McpClientWrapper mcpClient = new McpClientWrapper("http://localhost:8080", "/mcp/sse"); ChatModel chatModel = ChatModel.of("http://127.0.0.1:11434/api/chat") .provider("ollama") .model("qwen2.5:1.5b") .build(); ChatResponse resp = chatModel.prompt("杭州今天的天气怎么样?") .options(options -> { //转为函数集合用于绑定 options.functionAdd(mcpClient.toFunctions()); }) .call();}项目仓库地址
官网
|
|