Skip to content

Commit 34cb777

Browse files
google-genai-botcopybara-github
authored andcommitted
refactor: This change adds two things:
- McpSessionManager constructor with McpTransportBuilder parameter. - McpToolset new constructor to facilitate the creation of McpToolsets with injected McpSyncClient, so we can provide custom transport builder. PiperOrigin-RevId: 785990204
1 parent eca1bd4 commit 34cb777

File tree

2 files changed

+22
-1
lines changed

2 files changed

+22
-1
lines changed

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,13 +36,19 @@ public class McpSessionManager {
3636

3737
private final Object connectionParams; // ServerParameters or SseServerParameters
3838
private static final Logger logger = LoggerFactory.getLogger(McpSessionManager.class);
39+
private final McpTransportBuilder transportBuilder;
3940

4041
public McpSessionManager(Object connectionParams) {
42+
this(connectionParams, new DefaultMcpTransportBuilder());
43+
}
44+
45+
public McpSessionManager(Object connectionParams, McpTransportBuilder transportBuilder) {
4146
this.connectionParams = connectionParams;
47+
this.transportBuilder = transportBuilder;
4248
}
4349

4450
public McpSyncClient createSession() {
45-
return initializeSession(this.connectionParams);
51+
return initializeSession(this.connectionParams, this.transportBuilder);
4652
}
4753

4854
public static McpSyncClient initializeSession(Object connectionParams) {

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

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,21 @@ public McpToolset(ServerParameters connectionParams) {
149149
this(connectionParams, JsonBaseModel.getMapper(), Optional.empty());
150150
}
151151

152+
/**
153+
* Initializes the McpToolset with an McpSessionManager.
154+
*
155+
* @param objectMapper An ObjectMapper instance for parsing schemas.
156+
* @param toolFilter An Optional containing either a ToolPredicate or a List of tool names.
157+
* @param mcpSessionManager A McpSessionManager instance for testing.
158+
*/
159+
public McpToolset(
160+
ObjectMapper objectMapper, Optional<Object> toolFilter, McpSessionManager mcpSessionManager) {
161+
Objects.requireNonNull(objectMapper);
162+
this.objectMapper = objectMapper;
163+
this.toolFilter = toolFilter;
164+
this.mcpSessionManager = mcpSessionManager;
165+
}
166+
152167
@Override
153168
public Flowable<BaseTool> getTools(ReadonlyContext readonlyContext) {
154169
return Flowable.fromCallable(

0 commit comments

Comments
 (0)