From 5aa22c41878636433fa6151ce3f845e861eeea1b Mon Sep 17 00:00:00 2001 From: "He-Pin(kerr)" Date: Wed, 30 Apr 2025 01:25:26 +0800 Subject: [PATCH] chore: Use stream flatmap when build toolcallbacks. (#2802) 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 6d33b2001..bdcf595ff 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 @@ import org.springframework.util.CollectionUtils; * // Get all available tools * ToolCallback[] tools = provider.getToolCallbacks(); * } - * + *

* Example usage with multiple clients: * *

{@code
@@ -63,10 +63,10 @@ import org.springframework.util.CollectionUtils;
  * }
* * @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 class SyncMcpToolCallbackProvider implements ToolCallbackProvider { */ @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; }