diff --git a/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/server/transport/WebFluxStreamableServerTransportProvider.java b/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/server/transport/WebFluxStreamableServerTransportProvider.java index 144a3ce02..deebfc616 100644 --- a/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/server/transport/WebFluxStreamableServerTransportProvider.java +++ b/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/server/transport/WebFluxStreamableServerTransportProvider.java @@ -174,7 +174,7 @@ private Mono handleGet(ServerRequest request) { return ServerResponse.badRequest().build(); } - if (!request.headers().asHttpHeaders().containsKey(HttpHeaders.MCP_SESSION_ID)) { + if (request.headers().header(HttpHeaders.MCP_SESSION_ID).isEmpty()) { return ServerResponse.badRequest().build(); // TODO: say we need a session // id } @@ -187,7 +187,7 @@ private Mono handleGet(ServerRequest request) { return ServerResponse.notFound().build(); } - if (request.headers().asHttpHeaders().containsKey(HttpHeaders.LAST_EVENT_ID)) { + if (!request.headers().header(HttpHeaders.LAST_EVENT_ID).isEmpty()) { String lastId = request.headers().asHttpHeaders().getFirst(HttpHeaders.LAST_EVENT_ID); return ServerResponse.ok() .contentType(MediaType.TEXT_EVENT_STREAM) @@ -258,7 +258,7 @@ private Mono handlePost(ServerRequest request) { .bodyValue(initResult)); } - if (!request.headers().asHttpHeaders().containsKey(HttpHeaders.MCP_SESSION_ID)) { + if (request.headers().header(HttpHeaders.MCP_SESSION_ID).isEmpty()) { return ServerResponse.badRequest().bodyValue(new McpError("Session ID missing")); } @@ -313,7 +313,7 @@ private Mono handleDelete(ServerRequest request) { McpTransportContext transportContext = this.contextExtractor.extract(request); return Mono.defer(() -> { - if (!request.headers().asHttpHeaders().containsKey(HttpHeaders.MCP_SESSION_ID)) { + if (request.headers().header(HttpHeaders.MCP_SESSION_ID).isEmpty()) { return ServerResponse.badRequest().build(); // TODO: say we need a session // id } 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 d85046a67..f2a58d4d8 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 @@ -240,7 +240,7 @@ private ServerResponse handleGet(ServerRequest request) { McpTransportContext transportContext = this.contextExtractor.extract(request); - if (!request.headers().asHttpHeaders().containsKey(HttpHeaders.MCP_SESSION_ID)) { + if (request.headers().header(HttpHeaders.MCP_SESSION_ID).isEmpty()) { return ServerResponse.badRequest().body("Session ID required in mcp-session-id header"); } @@ -263,7 +263,7 @@ private ServerResponse handleGet(ServerRequest request) { sessionId, sseBuilder); // Check if this is a replay request - if (request.headers().asHttpHeaders().containsKey(HttpHeaders.LAST_EVENT_ID)) { + if (!request.headers().header(HttpHeaders.LAST_EVENT_ID).isEmpty()) { String lastId = request.headers().asHttpHeaders().getFirst(HttpHeaders.LAST_EVENT_ID); try { @@ -354,7 +354,7 @@ private ServerResponse handlePost(ServerRequest request) { } // Handle other messages that require a session - if (!request.headers().asHttpHeaders().containsKey(HttpHeaders.MCP_SESSION_ID)) { + if (request.headers().header(HttpHeaders.MCP_SESSION_ID).isEmpty()) { return ServerResponse.badRequest().body(new McpError("Session ID missing")); } @@ -433,7 +433,7 @@ private ServerResponse handleDelete(ServerRequest request) { McpTransportContext transportContext = this.contextExtractor.extract(request); - if (!request.headers().asHttpHeaders().containsKey(HttpHeaders.MCP_SESSION_ID)) { + if (request.headers().header(HttpHeaders.MCP_SESSION_ID).isEmpty()) { return ServerResponse.badRequest().body("Session ID required in mcp-session-id header"); }