From 995aa6281f28a55916c01f68667a022064733c28 Mon Sep 17 00:00:00 2001 From: Google Team Member Date: Thu, 18 Sep 2025 19:08:13 -0700 Subject: [PATCH] feat: Add a constructor to McpAsyncToolset to allow injecting McpSessionManager PiperOrigin-RevId: 808830082 --- .../google/adk/tools/mcp/McpAsyncToolset.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/core/src/main/java/com/google/adk/tools/mcp/McpAsyncToolset.java b/core/src/main/java/com/google/adk/tools/mcp/McpAsyncToolset.java index 898cfc61c..5e92410c9 100644 --- a/core/src/main/java/com/google/adk/tools/mcp/McpAsyncToolset.java +++ b/core/src/main/java/com/google/adk/tools/mcp/McpAsyncToolset.java @@ -145,6 +145,23 @@ public McpAsyncToolset( this.toolFilter = toolFilter; } + /** + * Initializes the McpAsyncToolset with a provided McpSessionManager. + * + * @param mcpSessionManager The session manager for MCP connections. + * @param objectMapper An ObjectMapper instance for parsing schemas. + * @param toolFilter null or an implement for {@link ToolPredicate}, {@link + * com.google.adk.tools.NamedToolPredicate} + */ + public McpAsyncToolset( + McpSessionManager mcpSessionManager, ObjectMapper objectMapper, ToolPredicate toolFilter) { + Objects.requireNonNull(mcpSessionManager); + Objects.requireNonNull(objectMapper); + this.objectMapper = objectMapper; + this.mcpSessionManager = mcpSessionManager; + this.toolFilter = toolFilter; + } + @Override public Flowable getTools(ReadonlyContext readonlyContext) { return Maybe.defer(() -> Maybe.fromCompletionStage(this.initAndGetTools().toFuture()))