McpStateLessClientTest.java 1.3 KB

1234567891011121314151617181920212223242526272829303132333435
  1. package com.example.demo.test;
  2. import io.modelcontextprotocol.client.McpClient;
  3. import io.modelcontextprotocol.client.McpSyncClient;
  4. import io.modelcontextprotocol.client.transport.HttpClientStreamableHttpTransport;
  5. import io.modelcontextprotocol.spec.McpSchema;
  6. import java.time.Duration;
  7. import java.util.HashMap;
  8. import java.util.Map;
  9. public class McpStateLessClientTest {
  10. public static void main(String[] args) {
  11. HttpClientStreamableHttpTransport transport =
  12. HttpClientStreamableHttpTransport.builder("http://127.0.0.1:7778/mcp")
  13. .build();
  14. McpSyncClient client = McpClient.sync(transport)
  15. .requestTimeout(Duration.ofSeconds(30)).build();
  16. client.initialize();
  17. System.out.println("获取工具描述");
  18. McpSchema.ListToolsResult ts = client.listTools();
  19. ts.tools().forEach(t->{
  20. System.out.println(t.name()+"->"+t.description());
  21. });
  22. Map<String, Object> p = new HashMap();
  23. p.put("city","北京");
  24. McpSchema.CallToolResult re = client.callTool(
  25. McpSchema.CallToolRequest.builder()
  26. .name("getWeather")
  27. .arguments(p).build());
  28. System.out.println("执行工具结果:"+re.content());
  29. client.close();
  30. }
  31. }