Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -37,14 +37,20 @@
public class McpSessionManager {

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

public McpSessionManager(Object connectionParams) {
this(connectionParams, new DefaultMcpTransportBuilder());
}

public McpSessionManager(Object connectionParams, McpTransportBuilder transportBuilder) {
this.connectionParams = connectionParams;
this.transportBuilder = transportBuilder;
}

public McpSyncClient createSession() {
return initializeSession(this.connectionParams);
return initializeSession(this.connectionParams, this.transportBuilder);
}

public static McpSyncClient initializeSession(Object connectionParams) {
Expand Down
16 changes: 16 additions & 0 deletions core/src/main/java/com/google/adk/tools/mcp/McpToolset.java
Original file line number Diff line number Diff line change
Expand Up @@ -149,6 +149,22 @@ public McpToolset(ServerParameters connectionParams) {
this(connectionParams, JsonBaseModel.getMapper(), Optional.empty());
}

/**
* Initializes the McpToolset with an McpSessionManager.
*
* @param mcpSessionManager A McpSessionManager instance for testing.
* @param objectMapper An ObjectMapper instance for parsing schemas.
* @param toolFilter An Optional containing either a ToolPredicate or a List of tool names.
*/
public McpToolset(
McpSessionManager mcpSessionManager, ObjectMapper objectMapper, Optional<Object> toolFilter) {
Objects.requireNonNull(mcpSessionManager);
Objects.requireNonNull(objectMapper);
this.mcpSessionManager = mcpSessionManager;
this.objectMapper = objectMapper;
this.toolFilter = toolFilter;
}

@Override
public Flowable<BaseTool> getTools(ReadonlyContext readonlyContext) {
return Flowable.fromCallable(
Expand Down