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