Skip to content

Commit 9ae572b

Browse files
google-genai-botcopybara-github
authored andcommitted
feat: Allowing McpAsycToolset Builder to take in a McpSessionManager
PiperOrigin-RevId: 897886449
1 parent 14027d1 commit 9ae572b

1 file changed

Lines changed: 14 additions & 32 deletions

File tree

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

Lines changed: 14 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -66,19 +66,25 @@ public class McpAsyncToolset implements BaseToolset {
6666

6767
/** Builder for McpAsyncToolset */
6868
public static class Builder {
69-
private Object connectionParams = null;
69+
private McpSessionManager mcpSessionManager = null;
7070
private ObjectMapper objectMapper = null;
7171
private @Nullable Object toolFilter = null;
7272

7373
@CanIgnoreReturnValue
7474
public Builder connectionParams(ServerParameters connectionParams) {
75-
this.connectionParams = connectionParams;
75+
this.mcpSessionManager = new McpSessionManager(connectionParams);
7676
return this;
7777
}
7878

7979
@CanIgnoreReturnValue
8080
public Builder connectionParams(SseServerParameters connectionParams) {
81-
this.connectionParams = connectionParams;
81+
this.mcpSessionManager = new McpSessionManager(connectionParams);
82+
return this;
83+
}
84+
85+
@CanIgnoreReturnValue
86+
public Builder mcpSessionManager(McpSessionManager mcpSessionManager) {
87+
this.mcpSessionManager = mcpSessionManager;
8288
return this;
8389
}
8490

@@ -104,14 +110,8 @@ public McpAsyncToolset build() {
104110
if (objectMapper == null) {
105111
objectMapper = JsonBaseModel.getMapper();
106112
}
107-
if (connectionParams instanceof ServerParameters setSelectedParams) {
108-
return new McpAsyncToolset(setSelectedParams, objectMapper, toolFilter);
109-
} else if (connectionParams instanceof SseServerParameters sseServerParameters) {
110-
return new McpAsyncToolset(sseServerParameters, objectMapper, toolFilter);
111-
} else {
112-
throw new IllegalArgumentException(
113-
"connectionParams must be either ServerParameters or SseServerParameters");
114-
}
113+
Preconditions.checkNotNull(mcpSessionManager, "Connection params must be set");
114+
return new McpAsyncToolset(mcpSessionManager, objectMapper, toolFilter);
115115
}
116116
}
117117

@@ -123,29 +123,11 @@ public McpAsyncToolset build() {
123123
* @param toolFilter Either a ToolPredicate or a List of tool names.
124124
*/
125125
McpAsyncToolset(
126-
SseServerParameters connectionParams,
127-
ObjectMapper objectMapper,
128-
@Nullable Object toolFilter) {
129-
Objects.requireNonNull(connectionParams);
130-
Objects.requireNonNull(objectMapper);
131-
this.objectMapper = objectMapper;
132-
this.mcpSessionManager = new McpSessionManager(connectionParams);
133-
this.toolFilter = toolFilter;
134-
}
135-
136-
/**
137-
* Initializes the McpAsyncToolset with local server parameters.
138-
*
139-
* @param connectionParams The local server connection parameters to the MCP server.
140-
* @param objectMapper An ObjectMapper instance for parsing schemas.
141-
* @param toolFilter Either a ToolPredicate or a List of tool names or null.
142-
*/
143-
McpAsyncToolset(
144-
ServerParameters connectionParams, ObjectMapper objectMapper, @Nullable Object toolFilter) {
145-
Objects.requireNonNull(connectionParams);
126+
McpSessionManager mcpSessionManager, ObjectMapper objectMapper, @Nullable Object toolFilter) {
127+
Objects.requireNonNull(mcpSessionManager);
146128
Objects.requireNonNull(objectMapper);
147129
this.objectMapper = objectMapper;
148-
this.mcpSessionManager = new McpSessionManager(connectionParams);
130+
this.mcpSessionManager = mcpSessionManager;
149131
this.toolFilter = toolFilter;
150132
}
151133

0 commit comments

Comments
 (0)