diff --git a/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/main/java/org/springframework/ai/mcp/server/autoconfigure/McpWebFluxServerAutoConfiguration.java b/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/main/java/org/springframework/ai/mcp/server/autoconfigure/McpWebFluxServerAutoConfiguration.java index 563fafe9e1..2dde2bba6d 100644 --- a/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/main/java/org/springframework/ai/mcp/server/autoconfigure/McpWebFluxServerAutoConfiguration.java +++ b/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/main/java/org/springframework/ai/mcp/server/autoconfigure/McpWebFluxServerAutoConfiguration.java @@ -17,6 +17,7 @@ package org.springframework.ai.mcp.server.autoconfigure; import com.fasterxml.jackson.databind.ObjectMapper; +import io.modelcontextprotocol.server.McpServerAuthProvider; import io.modelcontextprotocol.server.transport.WebFluxSseServerTransportProvider; import io.modelcontextprotocol.spec.McpServerTransportProvider; @@ -61,9 +62,11 @@ * } * * @author Christian Tzolov + * @author lambochen * @since 1.0.0 * @see McpServerProperties * @see WebFluxSseServerTransportProvider + * @see McpServerAuthProvider */ @AutoConfiguration @ConditionalOnClass({ WebFluxSseServerTransportProvider.class }) @@ -75,9 +78,16 @@ public class McpWebFluxServerAutoConfiguration { @Bean @ConditionalOnMissingBean public WebFluxSseServerTransportProvider webFluxTransport(ObjectProvider objectMapperProvider, + ObjectProvider mcpServerAuthProviderObjectProvider, McpServerProperties serverProperties) { ObjectMapper objectMapper = objectMapperProvider.getIfAvailable(ObjectMapper::new); - return new WebFluxSseServerTransportProvider(objectMapper, serverProperties.getSseMessageEndpoint()); + McpServerAuthProvider authProvider = mcpServerAuthProviderObjectProvider.getIfAvailable(() -> null); + return WebFluxSseServerTransportProvider.builder() + .sseEndpoint(serverProperties.getSseEndpoint()) + .messageEndpoint(serverProperties.getSseMessageEndpoint()) + .objectMapper(objectMapper) + .authProvider(authProvider) + .build(); } // Router function for SSE transport used by Spring WebFlux to start an HTTP server. diff --git a/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/main/java/org/springframework/ai/mcp/server/autoconfigure/McpWebMvcServerAutoConfiguration.java b/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/main/java/org/springframework/ai/mcp/server/autoconfigure/McpWebMvcServerAutoConfiguration.java index 259fc3b37a..83fb6d22c4 100644 --- a/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/main/java/org/springframework/ai/mcp/server/autoconfigure/McpWebMvcServerAutoConfiguration.java +++ b/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/main/java/org/springframework/ai/mcp/server/autoconfigure/McpWebMvcServerAutoConfiguration.java @@ -17,6 +17,7 @@ package org.springframework.ai.mcp.server.autoconfigure; import com.fasterxml.jackson.databind.ObjectMapper; +import io.modelcontextprotocol.server.McpServerAuthProvider; import io.modelcontextprotocol.server.transport.WebMvcSseServerTransportProvider; import io.modelcontextprotocol.spec.McpServerTransportProvider; @@ -56,9 +57,11 @@ * } * * @author Christian Tzolov + * @author lambochen * @since 1.0.0 * @see McpServerProperties * @see WebMvcSseServerTransportProvider + * @see McpServerAuthProvider */ @AutoConfiguration @ConditionalOnClass({ WebMvcSseServerTransportProvider.class }) @@ -70,9 +73,13 @@ public class McpWebMvcServerAutoConfiguration { @Bean @ConditionalOnMissingBean public WebMvcSseServerTransportProvider webMvcSseServerTransportProvider( - ObjectProvider objectMapperProvider, McpServerProperties serverProperties) { + ObjectProvider objectMapperProvider, + ObjectProvider mcpServerAuthProviderObjectProvider, + McpServerProperties serverProperties) { ObjectMapper objectMapper = objectMapperProvider.getIfAvailable(ObjectMapper::new); - return new WebMvcSseServerTransportProvider(objectMapper, serverProperties.getSseMessageEndpoint()); + McpServerAuthProvider authProvider = mcpServerAuthProviderObjectProvider.getIfAvailable(() -> null); + return new WebMvcSseServerTransportProvider(objectMapper, serverProperties.getSseMessageEndpoint(), + serverProperties.getSseMessageEndpoint(), serverProperties.getSseEndpoint(), authProvider); } @Bean diff --git a/pom.xml b/pom.xml index b80480f88d..bfcc7d9282 100644 --- a/pom.xml +++ b/pom.xml @@ -313,7 +313,7 @@ 4.12.0 - 0.9.0 + 0.10.0-SNAPSHOT 4.13.1