diff --git a/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/main/java/org/springframework/ai/mcp/server/autoconfigure/McpServerAutoConfiguration.java b/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/main/java/org/springframework/ai/mcp/server/autoconfigure/McpServerAutoConfiguration.java index e64d80c5b60..9a1fb1eca5b 100644 --- a/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/main/java/org/springframework/ai/mcp/server/autoconfigure/McpServerAutoConfiguration.java +++ b/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/main/java/org/springframework/ai/mcp/server/autoconfigure/McpServerAutoConfiguration.java @@ -28,11 +28,11 @@ import io.modelcontextprotocol.server.McpServer.AsyncSpecification; import io.modelcontextprotocol.server.McpServer.SyncSpecification; import io.modelcontextprotocol.server.McpServerFeatures; -// import io.modelcontextprotocol.server.McpServerFeatures.AsyncCompletionSpecification; +import io.modelcontextprotocol.server.McpServerFeatures.AsyncCompletionSpecification; import io.modelcontextprotocol.server.McpServerFeatures.AsyncPromptSpecification; import io.modelcontextprotocol.server.McpServerFeatures.AsyncResourceSpecification; import io.modelcontextprotocol.server.McpServerFeatures.AsyncToolSpecification; -// import io.modelcontextprotocol.server.McpServerFeatures.SyncCompletionSpecification; +import io.modelcontextprotocol.server.McpServerFeatures.SyncCompletionSpecification; import io.modelcontextprotocol.server.McpServerFeatures.SyncPromptSpecification; import io.modelcontextprotocol.server.McpServerFeatures.SyncResourceSpecification; import io.modelcontextprotocol.server.McpServerFeatures.SyncToolSpecification; @@ -175,7 +175,7 @@ public McpSyncServer mcpSyncServer(McpServerTransportProvider transportProvider, ObjectProvider> tools, ObjectProvider> resources, ObjectProvider> prompts, - // ObjectProvider> completions, + ObjectProvider> completions, ObjectProvider>> rootsChangeConsumers, List toolCallbackProvider) { @@ -219,15 +219,14 @@ public McpSyncServer mcpSyncServer(McpServerTransportProvider transportProvider, + serverProperties.isPromptChangeNotification()); } - // List completionSpecifications = - // completions.stream() - // .flatMap(List::stream) - // .toList(); - // if (!CollectionUtils.isEmpty(completionSpecifications)) { - // serverBuilder.completions(completionSpecifications); - // capabilitiesBuilder.completions(); - // logger.info("Registered completions: " + completionSpecifications.size()); - // } + List completionSpecifications = completions.stream() + .flatMap(List::stream) + .toList(); + if (!CollectionUtils.isEmpty(completionSpecifications)) { + serverBuilder.completions(completionSpecifications); + capabilitiesBuilder.completions(); + logger.info("Registered completions: " + completionSpecifications.size()); + } rootsChangeConsumers.ifAvailable(consumer -> { serverBuilder.rootsChangeHandler((exchange, roots) -> consumer.accept(exchange, roots)); @@ -283,7 +282,7 @@ public McpAsyncServer mcpAsyncServer(McpServerTransportProvider transportProvide ObjectProvider> tools, ObjectProvider> resources, ObjectProvider> prompts, - // ObjectProvider> completions, + ObjectProvider> completions, ObjectProvider>> rootsChangeConsumer, List toolCallbackProvider) { @@ -327,15 +326,14 @@ public McpAsyncServer mcpAsyncServer(McpServerTransportProvider transportProvide + serverProperties.isPromptChangeNotification()); } - // List completionSpecifications = - // completions.stream() - // .flatMap(List::stream) - // .toList(); - // if (!CollectionUtils.isEmpty(completionSpecifications)) { - // serverBuilder.completions(completionSpecifications); - // capabilitiesBuilder.completions(); - // logger.info("Registered completions: " + completionSpecifications.size()); - // } + List completionSpecifications = completions.stream() + .flatMap(List::stream) + .toList(); + if (!CollectionUtils.isEmpty(completionSpecifications)) { + serverBuilder.completions(completionSpecifications); + capabilitiesBuilder.completions(); + logger.info("Registered completions: " + completionSpecifications.size()); + } rootsChangeConsumer.ifAvailable(consumer -> { BiFunction, Mono> asyncConsumer = (exchange, roots) -> { @@ -353,4 +351,4 @@ public McpAsyncServer mcpAsyncServer(McpServerTransportProvider transportProvide return serverBuilder.build(); } -} +} \ No newline at end of file diff --git a/pom.xml b/pom.xml index 654c178521d..aa0e007182d 100644 --- a/pom.xml +++ b/pom.xml @@ -305,7 +305,7 @@ 4.12.0 - 0.9.0 + 0.10.0-SNAPSHOT 4.13.1