// 使用自定义配置创建同步客户端
McpSyncClient client = McpClient.sync(transport)
.requestTimeout(Duration.ofSeconds(10))
.capabilities(ClientCapabilities.builder()
.roots(true) // 启用根目录功能
.sampling() // 启用采样功能
.build())
.sampling(request -> new CreateMessageResult(response))
.build();
// 初始化连接
client.initialize();
// 列出可用工具
ListToolsResult tools = client.listTools();
// 调用工具
CallToolResult result = client.callTool(
new CallToolRequest("calculator",
Map.of("operation", "add", "a", 2, "b", 3))
);
// 列出和读取资源
ListResourcesResult resources = client.listResources();
ReadResourceResult resource = client.readResource(
new ReadResourceRequest("resource://uri")
);
// 列出和使用提示
ListPromptsResult prompts = client.listPrompts();
GetPromptResult prompt = client.getPrompt(
new GetPromptRequest("greeting", Map.of("name", "Spring"))
);
// 添加/删除根目录
client.addRoot(new Root("file:///path", "description"));
client.removeRoot("file:///path");
// 关闭客户端
client.closeGracefully();