diff --git a/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/main/java/org/springframework/ai/mcp/server/autoconfigure/McpServerProperties.java b/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/main/java/org/springframework/ai/mcp/server/autoconfigure/McpServerProperties.java index 467d68884..6dcada931 100644 --- a/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/main/java/org/springframework/ai/mcp/server/autoconfigure/McpServerProperties.java +++ b/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/main/java/org/springframework/ai/mcp/server/autoconfigure/McpServerProperties.java @@ -134,52 +134,8 @@ public class McpServerProperties { private Capabilities capabilities = new Capabilities(); - public static class Capabilities { - - private boolean resource = true; - - private boolean tool = true; - - private boolean prompt = true; - - private boolean completion = true; - - public boolean isResource() { - return resource; - } - - public void setResource(boolean resource) { - this.resource = resource; - } - - public boolean isTool() { - return tool; - } - - public void setTool(boolean tool) { - this.tool = tool; - } - - public boolean isPrompt() { - return prompt; - } - - public void setPrompt(boolean prompt) { - this.prompt = prompt; - } - - public boolean isCompletion() { - return completion; - } - - public void setCompletion(boolean completion) { - this.completion = completion; - } - - } - public Capabilities getCapabilities() { - return capabilities; + return this.capabilities; } /** @@ -310,4 +266,48 @@ public class McpServerProperties { return this.toolResponseMimeType; } + public static class Capabilities { + + private boolean resource = true; + + private boolean tool = true; + + private boolean prompt = true; + + private boolean completion = true; + + public boolean isResource() { + return this.resource; + } + + public void setResource(boolean resource) { + this.resource = resource; + } + + public boolean isTool() { + return this.tool; + } + + public void setTool(boolean tool) { + this.tool = tool; + } + + public boolean isPrompt() { + return this.prompt; + } + + public void setPrompt(boolean prompt) { + this.prompt = prompt; + } + + public boolean isCompletion() { + return this.completion; + } + + public void setCompletion(boolean completion) { + this.completion = completion; + } + + } + } diff --git a/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/test/java/org/springframework/ai/mcp/server/autoconfigure/McpServerAutoConfigurationIT.java b/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/test/java/org/springframework/ai/mcp/server/autoconfigure/McpServerAutoConfigurationIT.java index 32bc699ff..c9de2ae7d 100644 --- a/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/test/java/org/springframework/ai/mcp/server/autoconfigure/McpServerAutoConfigurationIT.java +++ b/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/test/java/org/springframework/ai/mcp/server/autoconfigure/McpServerAutoConfigurationIT.java @@ -241,42 +241,6 @@ public class McpServerAutoConfigurationIT { }); } - @Configuration - static class TestResourceConfiguration { - - @Bean - List testResources() { - return List.of(); - } - - } - - @Configuration - static class TestPromptConfiguration { - - @Bean - List testPrompts() { - return List.of(); - } - - } - - @Configuration - static class CustomCapabilitiesConfiguration { - - @Bean - McpSchema.ServerCapabilities.Builder customCapabilitiesBuilder() { - return new CustomCapabilitiesBuilder(); - } - - } - - static class CustomCapabilitiesBuilder extends McpSchema.ServerCapabilities.Builder { - - // Custom implementation for testing - - } - @Test void capabilitiesConfiguration() { this.contextRunner.withPropertyValues("spring.ai.mcp.server.capabilities.tool=false", @@ -329,9 +293,44 @@ public class McpServerAutoConfigurationIT { @Test void toolCallbackProviderConfiguration() { - this.contextRunner.withUserConfiguration(TestToolCallbackProviderConfiguration.class).run(context -> { - assertThat(context).hasSingleBean(ToolCallbackProvider.class); - }); + this.contextRunner.withUserConfiguration(TestToolCallbackProviderConfiguration.class) + .run(context -> assertThat(context).hasSingleBean(ToolCallbackProvider.class)); + } + + @Configuration + static class TestResourceConfiguration { + + @Bean + List testResources() { + return List.of(); + } + + } + + @Configuration + static class TestPromptConfiguration { + + @Bean + List testPrompts() { + return List.of(); + } + + } + + @Configuration + static class CustomCapabilitiesConfiguration { + + @Bean + McpSchema.ServerCapabilities.Builder customCapabilitiesBuilder() { + return new CustomCapabilitiesBuilder(); + } + + } + + static class CustomCapabilitiesBuilder extends McpSchema.ServerCapabilities.Builder { + + // Custom implementation for testing + } @Configuration @@ -379,11 +378,8 @@ public class McpServerAutoConfigurationIT { List testCompletions() { BiFunction completionHandler = ( - exchange, request) -> { - // Test implementation - return new McpSchema.CompleteResult( - new McpSchema.CompleteResult.CompleteCompletion(List.of(), 0, false)); - }; + exchange, request) -> new McpSchema.CompleteResult( + new McpSchema.CompleteResult.CompleteCompletion(List.of(), 0, false)); return List.of(new McpServerFeatures.SyncCompletionSpecification( new McpSchema.PromptReference("ref/prompt", "code_review"), completionHandler)); @@ -397,11 +393,9 @@ public class McpServerAutoConfigurationIT { @Bean List testAsyncCompletions() { BiFunction> completionHandler = ( - exchange, request) -> { - // Test implementation - return Mono.just(new McpSchema.CompleteResult( - new McpSchema.CompleteResult.CompleteCompletion(List.of(), 0, false))); - }; + exchange, request) -> Mono.just(new McpSchema.CompleteResult( + new McpSchema.CompleteResult.CompleteCompletion(List.of(), 0, false))); + return List.of(new McpServerFeatures.AsyncCompletionSpecification( new McpSchema.PromptReference("ref/prompt", "code_review"), completionHandler)); }