diff --git a/core/src/main/java/com/google/adk/tools/mcp/McpServerLogConsumer.java b/core/src/main/java/com/google/adk/tools/mcp/McpServerLogConsumer.java index 6fe16b92..92119706 100644 --- a/core/src/main/java/com/google/adk/tools/mcp/McpServerLogConsumer.java +++ b/core/src/main/java/com/google/adk/tools/mcp/McpServerLogConsumer.java @@ -24,10 +24,11 @@ class McpServerLogConsumer implements Consumer { + private static final Logger LOG = LoggerFactory.getLogger(McpServerLogConsumer.class); + @Override public void accept(LoggingMessageNotification notif) { - Logger log = LoggerFactory.getLogger(notif.logger()); - log.atLevel(convert(notif.level())).log("{}", notif.data()); + LOG.atLevel(convert(notif.level())).log("{}", notif.data()); } private Level convert(McpSchema.LoggingLevel level) { diff --git a/core/src/main/java/com/google/adk/tools/mcp/McpSessionManager.java b/core/src/main/java/com/google/adk/tools/mcp/McpSessionManager.java index 14c39638..8c453d14 100644 --- a/core/src/main/java/com/google/adk/tools/mcp/McpSessionManager.java +++ b/core/src/main/java/com/google/adk/tools/mcp/McpSessionManager.java @@ -20,12 +20,15 @@ import io.modelcontextprotocol.client.McpClient; import io.modelcontextprotocol.client.McpSyncClient; import io.modelcontextprotocol.spec.McpClientTransport; +import io.modelcontextprotocol.spec.McpSchema; import io.modelcontextprotocol.spec.McpSchema.ClientCapabilities; import io.modelcontextprotocol.spec.McpSchema.InitializeResult; import java.time.Duration; import java.util.Optional; +import java.util.function.Function; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import reactor.core.publisher.Mono; /** * Manages MCP client sessions. @@ -71,8 +74,8 @@ public static McpSyncClient initializeSession( .initializationTimeout( Optional.ofNullable(initializationTimeout).orElse(Duration.ofSeconds(10))) .requestTimeout(Optional.ofNullable(requestTimeout).orElse(Duration.ofSeconds(10))) - .loggingConsumer(new McpServerLogConsumer()) .capabilities(ClientCapabilities.builder().build()) + .loggingConsumer(new McpServerLogConsumer()) .build(); InitializeResult initResult = client.initialize(); logger.debug("Initialize Client Result: {}", initResult); @@ -101,6 +104,16 @@ public static McpAsyncClient initializeAsyncSession( initializationTimeout == null ? Duration.ofSeconds(10) : initializationTimeout) .requestTimeout(requestTimeout == null ? Duration.ofSeconds(10) : requestTimeout) .capabilities(ClientCapabilities.builder().build()) + .loggingConsumer(asyncMcpServerLogConsumer()) .build(); } + + private static Function> + asyncMcpServerLogConsumer() { + var syncConsumer = new McpServerLogConsumer(); + return message -> { + syncConsumer.accept(message); + return Mono.empty(); + }; + } }