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; }