Skip to content

Commit 49cf8bd

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: 789007772
1 parent a33f4da commit 49cf8bd

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-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
@@ -37,14 +37,20 @@
3737
public class McpSessionManager {
3838

3939
private final Object connectionParams; // ServerParameters or SseServerParameters
40+
private final McpTransportBuilder transportBuilder;
4041
private static final Logger logger = LoggerFactory.getLogger(McpSessionManager.class);
4142

4243
public McpSessionManager(Object connectionParams) {
44+
this(connectionParams, new DefaultMcpTransportBuilder());
45+
}
46+
47+
public McpSessionManager(Object connectionParams, McpTransportBuilder transportBuilder) {
4348
this.connectionParams = connectionParams;
49+
this.transportBuilder = transportBuilder;
4450
}
4551

4652
public McpSyncClient createSession() {
47-
return initializeSession(this.connectionParams);
53+
return initializeSession(this.connectionParams, this.transportBuilder);
4854
}
4955

5056
public static McpSyncClient initializeSession(Object connectionParams) {

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

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

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

0 commit comments

Comments
 (0)