work hard work smart

专注于AI+Java后端开发。 不断总结,举一反三。
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

AgentScope学习笔记 mcp工具使用

Posted on 2026-09-26 17:05  work hard work smart  阅读(2)  评论(0)    收藏  举报

AgentScope mcp工具使用。

前提条件:先启动 mcp-server-sse

public class McpClientDemo {

    public static void main(String[] args) {
        String apiKey = "sk-8980de1b287d490eb259d1f70eebeab4";

        // 1. 通过 SSE 传输方式连接到 MCP Server(mcp-server-sse 模块,端口 8003)
        McpClientWrapper mcpClient = McpClientBuilder.create("weather-mcp")
                .sseTransport("http://127.0.0.1:8003/sse")
                .timeout(Duration.ofSeconds(30))
                .buildAsync()
                .block();

        System.out.println("✅ 已成功连接到 MCP Server (SSE)");

        // 2. 创建 Toolkit 并注册 MCP 客户端中的所有工具
        Toolkit toolkit = new Toolkit();
        toolkit.registerMcpClient(mcpClient).block();

        // 打印已注册的工具
        System.out.println("📦 已注册的工具列表: " + toolkit.getToolNames());

        // 3. 创建 ReActAgent,配置模型与工具
        ReActAgent agent = ReActAgent.builder()
                .name("WeatherAssistant")
                .sysPrompt("你是一个天气助手,可以帮用户查询各个城市的天气信息。请使用工具来获取天气数据。")
                .model(DashScopeChatModel.builder()
                        .apiKey(apiKey)
                        .modelName("qwen-max")
                        .build())
                .toolkit(toolkit)
                .memory(new InMemoryMemory())
                .build();

        // 4. 发送消息,让 Agent 调用 MCP 工具查询天气
        System.out.println("\n--- 第1轮对话 ---");
        Msg msg1 = Msg.builder()
                .textContent("北京今天天气怎么样?")
                .build();
        Msg reply1 = agent.call(msg1).block();
        System.out.println("用户: 北京今天天气怎么样?");
        System.out.println("Agent: " + reply1.getTextContent());

        // 第2轮对话 - 查询另一个城市
        System.out.println("\n--- 第2轮对话 ---");
        Msg msg2 = Msg.builder()
                .textContent("深圳呢?")
                .build();
        Msg reply2 = agent.call(msg2).block();
        System.out.println("用户: 深圳呢?");
        System.out.println("Agent: " + reply2.getTextContent());

        // 5. 清理资源
        toolkit.removeMcpClient("weather-mcp").block();
        System.out.println("\n🔌 已断开 MCP 连接");
    }
}