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 563ea550146..3a68fa1b910 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 @@ -61,6 +61,7 @@ * } * * @author Christian Tzolov + * @author Yanming Zhou * @since 1.0.0 * @see McpServerProperties * @see WebFluxSseServerTransportProvider @@ -76,8 +77,8 @@ public class McpWebFluxServerAutoConfiguration { public WebFluxSseServerTransportProvider webFluxTransport(ObjectProvider objectMapperProvider, McpServerProperties serverProperties) { ObjectMapper objectMapper = objectMapperProvider.getIfAvailable(ObjectMapper::new); - return new WebFluxSseServerTransportProvider(objectMapper, serverProperties.getSseMessageEndpoint(), - serverProperties.getSseEndpoint()); + return new WebFluxSseServerTransportProvider(objectMapper, serverProperties.getBaseUrl(), + serverProperties.getSseMessageEndpoint(), serverProperties.getSseEndpoint()); } // 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 e36d050745c..b0f24861dff 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 @@ -56,6 +56,7 @@ * } * * @author Christian Tzolov + * @author Yanming Zhou * @since 1.0.0 * @see McpServerProperties * @see WebMvcSseServerTransportProvider @@ -71,8 +72,8 @@ public class McpWebMvcServerAutoConfiguration { public WebMvcSseServerTransportProvider webMvcSseServerTransportProvider( ObjectProvider objectMapperProvider, McpServerProperties serverProperties) { ObjectMapper objectMapper = objectMapperProvider.getIfAvailable(ObjectMapper::new); - return new WebMvcSseServerTransportProvider(objectMapper, serverProperties.getSseMessageEndpoint(), - serverProperties.getSseEndpoint()); + return new WebMvcSseServerTransportProvider(objectMapper, serverProperties.getBaseUrl(), + serverProperties.getSseMessageEndpoint(), serverProperties.getSseEndpoint()); } @Bean diff --git a/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/test/java/org/springframework/ai/mcp/server/autoconfigure/McpWebFluxServerAutoConfigurationIT.java b/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/test/java/org/springframework/ai/mcp/server/autoconfigure/McpWebFluxServerAutoConfigurationIT.java index a5fe1e62b24..d3511c2bf8f 100644 --- a/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/test/java/org/springframework/ai/mcp/server/autoconfigure/McpWebFluxServerAutoConfigurationIT.java +++ b/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/test/java/org/springframework/ai/mcp/server/autoconfigure/McpWebFluxServerAutoConfigurationIT.java @@ -61,4 +61,11 @@ void serverDisableConfiguration() { }); } + @Test + void serverBaseUrlConfiguration() { + this.contextRunner.withPropertyValues("spring.ai.mcp.server.base-url=/test") + .run(context -> assertThat(context.getBean(WebFluxSseServerTransportProvider.class)).extracting("baseUrl") + .isEqualTo("/test")); + } + } diff --git a/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/test/java/org/springframework/ai/mcp/server/autoconfigure/McpWebMvcServerAutoConfigurationIT.java b/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/test/java/org/springframework/ai/mcp/server/autoconfigure/McpWebMvcServerAutoConfigurationIT.java index eff23a81072..5f0e5fc4baa 100644 --- a/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/test/java/org/springframework/ai/mcp/server/autoconfigure/McpWebMvcServerAutoConfigurationIT.java +++ b/auto-configurations/mcp/spring-ai-autoconfigure-mcp-server/src/test/java/org/springframework/ai/mcp/server/autoconfigure/McpWebMvcServerAutoConfigurationIT.java @@ -61,4 +61,11 @@ void serverDisableConfiguration() { }); } + @Test + void serverBaseUrlConfiguration() { + this.contextRunner.withPropertyValues("spring.ai.mcp.server.base-url=/test") + .run(context -> assertThat(context.getBean(WebMvcSseServerTransportProvider.class)).extracting("baseUrl") + .isEqualTo("/test")); + } + }