Skip to content

Commit 5aa22c4

Browse files
authored
chore: Use stream flatmap when build toolcallbacks. (#2802)
Signed-off-by: 虎鸣 <[email protected]>
1 parent c6ccc1a commit 5aa22c4

File tree

1 file changed

+6
-10
lines changed

1 file changed

+6
-10
lines changed

mcp/common/src/main/java/org/springframework/ai/mcp/SyncMcpToolCallbackProvider.java

+6-10
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@
5151
* // Get all available tools
5252
* ToolCallback[] tools = provider.getToolCallbacks();
5353
* }</pre>
54-
*
54+
* <p>
5555
* Example usage with multiple clients:
5656
*
5757
* <pre>{@code
@@ -63,10 +63,10 @@
6363
* }</pre>
6464
*
6565
* @author Christian Tzolov
66-
* @since 1.0.0
6766
* @see ToolCallbackProvider
6867
* @see SyncMcpToolCallback
6968
* @see McpSyncClient
69+
* @since 1.0.0
7070
*/
7171

7272
public class SyncMcpToolCallbackProvider implements ToolCallbackProvider {
@@ -130,17 +130,13 @@ public SyncMcpToolCallbackProvider(McpSyncClient... mcpClients) {
130130
*/
131131
@Override
132132
public ToolCallback[] getToolCallbacks() {
133-
134-
var toolCallbacks = new ArrayList<>();
135-
136-
this.mcpClients.stream()
137-
.forEach(mcpClient -> toolCallbacks.addAll(mcpClient.listTools()
133+
var array = this.mcpClients.stream()
134+
.flatMap(mcpClient -> mcpClient.listTools()
138135
.tools()
139136
.stream()
140137
.filter(tool -> this.toolFilter.test(mcpClient, tool))
141-
.map(tool -> new SyncMcpToolCallback(mcpClient, tool))
142-
.toList()));
143-
var array = toolCallbacks.toArray(new ToolCallback[0]);
138+
.map(tool -> new SyncMcpToolCallback(mcpClient, tool)))
139+
.toArray(ToolCallback[]::new);
144140
validateToolCallbacks(array);
145141
return array;
146142
}

0 commit comments

Comments
 (0)