Skip to content

Commit 47b5cbb

Browse files
author
wenhaozhao
committed
feat: pass timeout config while init mcp client
1 parent 32aeee6 commit 47b5cbb

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

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

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,8 @@ public McpSyncClient createSession() {
5454

5555
public static McpSyncClient initializeSession(Object connectionParams) {
5656
McpClientTransport transport;
57+
Duration initializationTimeout = null;
58+
Duration requestTimeout = null;
5759
if (connectionParams instanceof ServerParameters serverParameters) {
5860
transport = new StdioClientTransport(serverParameters);
5961
} else if (connectionParams instanceof SseServerParameters sseServerParams) {
@@ -73,14 +75,21 @@ public static McpSyncClient initializeSession(Object connectionParams) {
7375
)
7476
)
7577
.build();
78+
initializationTimeout = sseServerParams.timeout();
79+
requestTimeout = sseServerParams.sseReadTimeout();
7680
} else {
7781
throw new IllegalArgumentException(
7882
"Connection parameters must be either ServerParameters or SseServerParameters, but got "
7983
+ connectionParams.getClass().getName());
8084
}
81-
McpSyncClient client =
82-
McpClient.sync(transport)
83-
.requestTimeout(Duration.ofSeconds(10))
85+
McpClient.SyncSpec mcpClientSyncSpec = McpClient.sync(transport);
86+
if (initializationTimeout != null) {
87+
mcpClientSyncSpec = mcpClientSyncSpec.initializationTimeout(initializationTimeout);
88+
}
89+
if (requestTimeout != null) {
90+
mcpClientSyncSpec = mcpClientSyncSpec.requestTimeout(requestTimeout);
91+
}
92+
McpSyncClient client = mcpClientSyncSpec
8493
.capabilities(ClientCapabilities.builder().build())
8594
.build();
8695
InitializeResult initResult = client.initialize();

0 commit comments

Comments
 (0)