|
16 | 16 |
|
17 | 17 | package com.google.adk.tools.mcp; |
18 | 18 |
|
| 19 | +import java.time.Duration; |
| 20 | +import java.util.Optional; |
| 21 | +import java.util.function.Function; |
| 22 | + |
| 23 | +import org.slf4j.Logger; |
| 24 | +import org.slf4j.LoggerFactory; |
| 25 | + |
19 | 26 | import io.modelcontextprotocol.client.McpAsyncClient; |
20 | 27 | import io.modelcontextprotocol.client.McpClient; |
21 | 28 | import io.modelcontextprotocol.client.McpSyncClient; |
22 | 29 | import io.modelcontextprotocol.spec.McpClientTransport; |
| 30 | +import io.modelcontextprotocol.spec.McpSchema; |
23 | 31 | import io.modelcontextprotocol.spec.McpSchema.ClientCapabilities; |
24 | 32 | import io.modelcontextprotocol.spec.McpSchema.InitializeResult; |
25 | | -import java.time.Duration; |
26 | | -import java.util.Optional; |
27 | | -import org.slf4j.Logger; |
28 | | -import org.slf4j.LoggerFactory; |
| 33 | +import reactor.core.publisher.Mono; |
29 | 34 |
|
30 | 35 | /** |
31 | 36 | * Manages MCP client sessions. |
@@ -113,6 +118,16 @@ public static McpAsyncClient initializeAsyncSession( |
113 | 118 | initializationTimeout == null ? Duration.ofMinutes(5) : initializationTimeout) |
114 | 119 | .requestTimeout(requestTimeout == null ? Duration.ofMinutes(5) : requestTimeout) |
115 | 120 | .capabilities(ClientCapabilities.builder().build()) |
| 121 | + .loggingConsumer(asyncMcpServerLogConsumer()) |
116 | 122 | .build(); |
117 | 123 | } |
| 124 | + |
| 125 | + private static Function<McpSchema.LoggingMessageNotification, Mono<Void>> |
| 126 | + asyncMcpServerLogConsumer() { |
| 127 | + var syncConsumer = new McpServerLogConsumer(); |
| 128 | + return message -> { |
| 129 | + syncConsumer.accept(message); |
| 130 | + return Mono.empty(); |
| 131 | + }; |
| 132 | + } |
118 | 133 | } |
0 commit comments