diff --git a/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server-common/src/main/java/org/springframework/ai/mcp/server/common/autoconfigure/StatelessToolCallbackConverterAutoConfiguration.java b/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server-common/src/main/java/org/springframework/ai/mcp/server/common/autoconfigure/StatelessToolCallbackConverterAutoConfiguration.java index 55fb3336d99..c7e332cf40f 100644 --- a/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server-common/src/main/java/org/springframework/ai/mcp/server/common/autoconfigure/StatelessToolCallbackConverterAutoConfiguration.java +++ b/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server-common/src/main/java/org/springframework/ai/mcp/server/common/autoconfigure/StatelessToolCallbackConverterAutoConfiguration.java @@ -111,7 +111,7 @@ private List toAsyncToolSpeci } private List aggregateToolCallbacks(ObjectProvider> toolCalls, - List toolCallbacksList, ObjectProvider> tcbProviderList, + List toolCallbackList, ObjectProvider> tcbProviderList, ObjectProvider tcbProviders) { // Merge ToolCallbackProviders from both ObjectProviders. @@ -124,8 +124,8 @@ private List aggregateToolCallbacks(ObjectProvider tools = new ArrayList<>(toolCalls.stream().flatMap(List::stream).toList()); - if (!CollectionUtils.isEmpty(toolCallbacksList)) { - tools.addAll(toolCallbacksList); + if (!CollectionUtils.isEmpty(toolCallbackList)) { + tools.addAll(toolCallbackList); } List providerToolCallbacks = totalToolCallbackProviders.stream() diff --git a/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server-common/src/main/java/org/springframework/ai/mcp/server/common/autoconfigure/ToolCallbackConverterAutoConfiguration.java b/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server-common/src/main/java/org/springframework/ai/mcp/server/common/autoconfigure/ToolCallbackConverterAutoConfiguration.java index 5c7197c80bc..a9884608136 100644 --- a/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server-common/src/main/java/org/springframework/ai/mcp/server/common/autoconfigure/ToolCallbackConverterAutoConfiguration.java +++ b/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server-common/src/main/java/org/springframework/ai/mcp/server/common/autoconfigure/ToolCallbackConverterAutoConfiguration.java @@ -49,18 +49,10 @@ public class ToolCallbackConverterAutoConfiguration { @ConditionalOnProperty(prefix = McpServerProperties.CONFIG_PREFIX, name = "type", havingValue = "SYNC", matchIfMissing = true) public List syncTools(ObjectProvider> toolCalls, - List toolCallbacksList, ObjectProvider> tcbProviderList, + List toolCallbackList, ObjectProvider> tcbProviderList, ObjectProvider tcbProviders, McpServerProperties serverProperties) { - // Merge ToolCallbackProviders from both ObjectProviders. - List totalToolCallbackProviders = new ArrayList<>( - tcbProviderList.stream().flatMap(List::stream).toList()); - totalToolCallbackProviders.addAll(tcbProviders.stream().toList()); - - // De-duplicate ToolCallbackProviders - totalToolCallbackProviders = totalToolCallbackProviders.stream().distinct().toList(); - - List tools = this.aggregateToolCallbacks(toolCalls, toolCallbacksList, tcbProviderList, + List tools = this.aggregateToolCallbacks(toolCalls, toolCallbackList, tcbProviderList, tcbProviders); return this.toSyncToolSpecifications(tools, serverProperties); @@ -121,7 +113,7 @@ private List toAsyncToolSpecification( } private List aggregateToolCallbacks(ObjectProvider> toolCalls, - List toolCallbacksList, ObjectProvider> tcbProviderList, + List toolCallbackList, ObjectProvider> tcbProviderList, ObjectProvider tcbProviders) { // Merge ToolCallbackProviders from both ObjectProviders. @@ -134,8 +126,8 @@ private List aggregateToolCallbacks(ObjectProvider tools = new ArrayList<>(toolCalls.stream().flatMap(List::stream).toList()); - if (!CollectionUtils.isEmpty(toolCallbacksList)) { - tools.addAll(toolCallbacksList); + if (!CollectionUtils.isEmpty(toolCallbackList)) { + tools.addAll(toolCallbackList); } List providerToolCallbacks = totalToolCallbackProviders.stream()