Fix that spring.ai.mcp.server.base-url is ignored

Signed-off-by: Yanming Zhou <zhouyanming@gmail.com>
This commit is contained in:
Yanming Zhou
2025-05-12 16:42:44 +08:00
committed by Christian Tzolov
parent d1ead23aa0
commit bb3556e8d1
4 changed files with 20 additions and 4 deletions

View File

@@ -61,6 +61,7 @@ import org.springframework.web.reactive.function.server.RouterFunction;
* }</pre>
*
* @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<ObjectMapper> 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.

View File

@@ -56,6 +56,7 @@ import org.springframework.web.servlet.function.ServerResponse;
* }</pre>
*
* @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<ObjectMapper> 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

View File

@@ -61,4 +61,11 @@ class McpWebFluxServerAutoConfigurationIT {
});
}
@Test
void serverBaseUrlConfiguration() {
this.contextRunner.withPropertyValues("spring.ai.mcp.server.base-url=/test")
.run(context -> assertThat(context.getBean(WebFluxSseServerTransportProvider.class)).extracting("baseUrl")
.isEqualTo("/test"));
}
}

View File

@@ -61,4 +61,11 @@ class McpWebMvcServerAutoConfigurationIT {
});
}
@Test
void serverBaseUrlConfiguration() {
this.contextRunner.withPropertyValues("spring.ai.mcp.server.base-url=/test")
.run(context -> assertThat(context.getBean(WebMvcSseServerTransportProvider.class)).extracting("baseUrl")
.isEqualTo("/test"));
}
}