From 945334900b230c2b7a1f1bf0d1c26a74fe3d7c28 Mon Sep 17 00:00:00 2001 From: taobaorun Date: Thu, 21 Aug 2025 21:22:27 +0800 Subject: [PATCH] session potential leak by server sse ping --- .../transport/WebMvcStreamableServerTransportProvider.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcStreamableServerTransportProvider.java b/mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcStreamableServerTransportProvider.java index fa51a0130..cbbfa14f7 100644 --- a/mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcStreamableServerTransportProvider.java +++ b/mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcStreamableServerTransportProvider.java @@ -295,6 +295,13 @@ private ServerResponse handleGet(ServerRequest request) { sseBuilder.onComplete(() -> { logger.debug("SSE connection completed for session: {}", sessionId); listeningStream.close(); + // If the sse connection is closed,it means that the client + // connection has been disconnected + // due to network issues, etc., + // and the session needs to be removed + if (sessionId != null) { + sessions.remove(sessionId); + } }); } }, Duration.ZERO);