java-sdk/mcp-transport/mcp-webmvc-sse-transport
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Christian Tzolov edbd78465c refactor(transport): Replace SseEmitter with queue-based SSE implementation in WebMvc transport
Replaces Spring's SseEmitter with a custom BlockingQueue-based SSE implementation in
WebMvcSseServerTransport for improved event delivery control and connection management.

The new implementation:
- Uses BlockingQueue for reliable event queuing and delivery
- Adds proper session management with dedicated SSEEvent record
- Improves error handling and timeout management
- Adds comprehensive integration tests

Resolves #57
2025-01-11 15:12:14 +01:00
..
src refactor(transport): Replace SseEmitter with queue-based SSE implementation in WebMvc transport 2025-01-11 15:12:14 +01:00
pom.xml Update tomcat test version 2025-01-09 19:32:28 +01:00
README.md refactor: Split transport implementations into modules 2025-01-09 15:38:34 +01:00

WebMVC SSE Server Transport

<dependency>
    <groupId>org.springframework.experimental</groupId>
    <artifactId>mcp-webmvc-sse-transport</artifactId>
    <version>0.5.0-SNAPSHOT</version>
</dependency>
String MESSAGE_ENDPOINT = "/mcp/message";

@Configuration
@EnableWebMvc
static class MyConfig {

    @Bean
    public WebMvcSseServerTransport webMvcSseServerTransport() {
        return new WebMvcSseServerTransport(new ObjectMapper(), MESSAGE_ENDPOINT);
    }

    @Bean
    public RouterFunction<ServerResponse> routerFunction(WebMvcSseServerTransport transport) {
        return transport.getRouterFunction();
    }
}