The spring: scheme (random-port discovery for @SpringBootTest(webEnvironment = RANDOM_PORT)) is exercised in CI only against the WebMVC Spring AI starter (spring-ai-starter-mcp-server-webmvc, via maven-tools-mcp) and against this repo's plain Spring Boot sample. It has never been run against the WebFlux starter (spring-ai-starter-mcp-server-webflux), whose streamable endpoint sits on Netty rather than a servlet container.
Task: add an end-to-end test (a second Spring sample app, or a profile on the existing one) that boots the WebFlux starter under @SpringBootTest(RANDOM_PORT) with @McpServerTest(url = "spring:/mcp") and runs initializesSuccessfully().toolSchemasAreValid(). If the port lookup or the SSE handling needs a change to work on WebFlux, that is the finding — report it in the issue before changing client code.
Done when: the test runs in the existing CI matrix and the README's "exercised against" sentence names both starters accurately.
The
spring:scheme (random-port discovery for@SpringBootTest(webEnvironment = RANDOM_PORT)) is exercised in CI only against the WebMVC Spring AI starter (spring-ai-starter-mcp-server-webmvc, via maven-tools-mcp) and against this repo's plain Spring Boot sample. It has never been run against the WebFlux starter (spring-ai-starter-mcp-server-webflux), whose streamable endpoint sits on Netty rather than a servlet container.Task: add an end-to-end test (a second Spring sample app, or a profile on the existing one) that boots the WebFlux starter under
@SpringBootTest(RANDOM_PORT)with@McpServerTest(url = "spring:/mcp")and runsinitializesSuccessfully().toolSchemasAreValid(). If the port lookup or the SSE handling needs a change to work on WebFlux, that is the finding — report it in the issue before changing client code.Done when: the test runs in the existing CI matrix and the README's "exercised against" sentence names both starters accurately.