From b18f6342b42961d77fb38cde469b070d3b4c2126 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=99=8E=E9=B8=A3?= Date: Fri, 18 Apr 2025 19:32:32 +0800 Subject: [PATCH] chore: Use stream flatmap when build toolcallbacks. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 虎鸣 --- .../ai/mcp/SyncMcpToolCallbackProvider.java | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/mcp/common/src/main/java/org/springframework/ai/mcp/SyncMcpToolCallbackProvider.java b/mcp/common/src/main/java/org/springframework/ai/mcp/SyncMcpToolCallbackProvider.java index 6d33b200154..bdcf595ff3e 100644 --- a/mcp/common/src/main/java/org/springframework/ai/mcp/SyncMcpToolCallbackProvider.java +++ b/mcp/common/src/main/java/org/springframework/ai/mcp/SyncMcpToolCallbackProvider.java @@ -51,7 +51,7 @@ * // Get all available tools * ToolCallback[] tools = provider.getToolCallbacks(); * } - * + *

* Example usage with multiple clients: * *

{@code
@@ -63,10 +63,10 @@
  * }
* * @author Christian Tzolov - * @since 1.0.0 * @see ToolCallbackProvider * @see SyncMcpToolCallback * @see McpSyncClient + * @since 1.0.0 */ public class SyncMcpToolCallbackProvider implements ToolCallbackProvider { @@ -130,17 +130,13 @@ public SyncMcpToolCallbackProvider(McpSyncClient... mcpClients) { */ @Override public ToolCallback[] getToolCallbacks() { - - var toolCallbacks = new ArrayList<>(); - - this.mcpClients.stream() - .forEach(mcpClient -> toolCallbacks.addAll(mcpClient.listTools() + var array = this.mcpClients.stream() + .flatMap(mcpClient -> mcpClient.listTools() .tools() .stream() .filter(tool -> this.toolFilter.test(mcpClient, tool)) - .map(tool -> new SyncMcpToolCallback(mcpClient, tool)) - .toList())); - var array = toolCallbacks.toArray(new ToolCallback[0]); + .map(tool -> new SyncMcpToolCallback(mcpClient, tool))) + .toArray(ToolCallback[]::new); validateToolCallbacks(array); return array; }