Skip to content

Commit 350261b

Browse files
authored
fix: Add missing logging for Async MCP Servers
1 parent 25fde82 commit 350261b

File tree

2 files changed

+22
-6
lines changed

2 files changed

+22
-6
lines changed

core/src/main/java/com/google/adk/tools/mcp/McpServerLogConsumer.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,11 @@
2424

2525
class McpServerLogConsumer implements Consumer<LoggingMessageNotification> {
2626

27+
private static final Logger LOG = LoggerFactory.getLogger(McpServerLogConsumer.class);
28+
2729
@Override
2830
public void accept(LoggingMessageNotification notif) {
29-
Logger log = LoggerFactory.getLogger(notif.logger());
30-
log.atLevel(convert(notif.level())).log("{}", notif.data());
31+
LOG.atLevel(convert(notif.level())).log("{}", notif.data());
3132
}
3233

3334
private Level convert(McpSchema.LoggingLevel level) {

core/src/main/java/com/google/adk/tools/mcp/McpSessionManager.java

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,21 @@
1616

1717
package com.google.adk.tools.mcp;
1818

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+
1926
import io.modelcontextprotocol.client.McpAsyncClient;
2027
import io.modelcontextprotocol.client.McpClient;
2128
import io.modelcontextprotocol.client.McpSyncClient;
2229
import io.modelcontextprotocol.spec.McpClientTransport;
30+
import io.modelcontextprotocol.spec.McpSchema;
2331
import io.modelcontextprotocol.spec.McpSchema.ClientCapabilities;
2432
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;
2934

3035
/**
3136
* Manages MCP client sessions.
@@ -113,6 +118,16 @@ public static McpAsyncClient initializeAsyncSession(
113118
initializationTimeout == null ? Duration.ofMinutes(5) : initializationTimeout)
114119
.requestTimeout(requestTimeout == null ? Duration.ofMinutes(5) : requestTimeout)
115120
.capabilities(ClientCapabilities.builder().build())
121+
.loggingConsumer(asyncMcpServerLogConsumer())
116122
.build();
117123
}
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+
}
118133
}

0 commit comments

Comments
 (0)