From bb6514e808ddfd2a746151ac955d2375db42a3f1 Mon Sep 17 00:00:00 2001 From: Dennis Kawurek Date: Sat, 22 Feb 2025 15:33:32 +0100 Subject: [PATCH] Remove closed sessions from list in WebMvcSseServerTransport --- .../server/transport/WebMvcSseServerTransport.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcSseServerTransport.java b/mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcSseServerTransport.java index 4a31a48..00928ec 100644 --- a/mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcSseServerTransport.java +++ b/mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcSseServerTransport.java @@ -218,6 +218,14 @@ public class WebMvcSseServerTransport implements ServerMcpTransport { // Send initial endpoint event try { return ServerResponse.sse(sseBuilder -> { + sseBuilder.onComplete(() -> { + logger.debug("SSE connection completed for session: {}", sessionId); + sessions.remove(sessionId); + }); + sseBuilder.onTimeout(() -> { + logger.debug("SSE connection timed out for session: {}", sessionId); + sessions.remove(sessionId); + }); ClientSession session = new ClientSession(sessionId, sseBuilder); this.sessions.put(sessionId, session);