Skip to content

Commit 716a529

Browse files
committed
Polish HttpHeaders.MCP_SESSION_ID
- Use `Mcp-Session-Id` instead of `mcp-session-id` to align with specification although the header name is case-insensitive. - Use `HttpHeaders.MCP_SESSION_ID` instead of string literals. Signed-off-by: Yanming Zhou <[email protected]>
1 parent 5e035ea commit 716a529

File tree

4 files changed

+12
-10
lines changed

4 files changed

+12
-10
lines changed

mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcStreamableServerTransportProvider.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ public class WebMvcStreamableServerTransportProvider implements McpStreamableSer
9090
private McpStreamableServerSession.Factory sessionFactory;
9191

9292
/**
93-
* Map of active client sessions, keyed by mcp-session-id.
93+
* Map of active client sessions, keyed by Mcp-Session-Id.
9494
*/
9595
private final ConcurrentHashMap<String, McpStreamableServerSession> sessions = new ConcurrentHashMap<>();
9696

@@ -241,7 +241,7 @@ private ServerResponse handleGet(ServerRequest request) {
241241
McpTransportContext transportContext = this.contextExtractor.extract(request, new DefaultMcpTransportContext());
242242

243243
if (!request.headers().asHttpHeaders().containsKey(HttpHeaders.MCP_SESSION_ID)) {
244-
return ServerResponse.badRequest().body("Session ID required in mcp-session-id header");
244+
return ServerResponse.badRequest().body("Session ID required in " + HttpHeaders.MCP_SESSION_ID + " header");
245245
}
246246

247247
String sessionId = request.headers().asHttpHeaders().getFirst(HttpHeaders.MCP_SESSION_ID);
@@ -434,7 +434,7 @@ private ServerResponse handleDelete(ServerRequest request) {
434434
McpTransportContext transportContext = this.contextExtractor.extract(request, new DefaultMcpTransportContext());
435435

436436
if (!request.headers().asHttpHeaders().containsKey(HttpHeaders.MCP_SESSION_ID)) {
437-
return ServerResponse.badRequest().body("Session ID required in mcp-session-id header");
437+
return ServerResponse.badRequest().body("Session ID required in " + HttpHeaders.MCP_SESSION_ID + " header");
438438
}
439439

440440
String sessionId = request.headers().asHttpHeaders().getFirst(HttpHeaders.MCP_SESSION_ID);

mcp/src/main/java/io/modelcontextprotocol/client/transport/HttpClientStreamableHttpTransport.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -416,8 +416,10 @@ public Mono<Void> sendMessage(McpSchema.JSONRPCMessage sentMessage) {
416416
})).onErrorMap(CompletionException.class, t -> t.getCause()).onErrorComplete().subscribe();
417417

418418
})).flatMap(responseEvent -> {
419-
if (transportSession.markInitialized(
420-
responseEvent.responseInfo().headers().firstValue("mcp-session-id").orElseGet(() -> null))) {
419+
if (transportSession.markInitialized(responseEvent.responseInfo()
420+
.headers()
421+
.firstValue(HttpHeaders.MCP_SESSION_ID)
422+
.orElseGet(() -> null))) {
421423
// Once we have a session, we try to open an async stream for
422424
// the server to send notifications and requests out-of-band.
423425

mcp/src/main/java/io/modelcontextprotocol/server/transport/HttpServletStreamableServerTransportProvider.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ public class HttpServletStreamableServerTransportProvider extends HttpServlet
103103
private McpStreamableServerSession.Factory sessionFactory;
104104

105105
/**
106-
* Map of active client sessions, keyed by mcp-session-id.
106+
* Map of active client sessions, keyed by Mcp-Session-Id.
107107
*/
108108
private final ConcurrentHashMap<String, McpStreamableServerSession> sessions = new ConcurrentHashMap<>();
109109

@@ -256,7 +256,7 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response)
256256
String sessionId = request.getHeader(HttpHeaders.MCP_SESSION_ID);
257257

258258
if (sessionId == null || sessionId.isBlank()) {
259-
badRequestErrors.add("Session ID required in mcp-session-id header");
259+
badRequestErrors.add("Session ID required in " + HttpHeaders.MCP_SESSION_ID + " header");
260260
}
261261

262262
if (!badRequestErrors.isEmpty()) {
@@ -438,7 +438,7 @@ protected void doPost(HttpServletRequest request, HttpServletResponse response)
438438
String sessionId = request.getHeader(HttpHeaders.MCP_SESSION_ID);
439439

440440
if (sessionId == null || sessionId.isBlank()) {
441-
badRequestErrors.add("Session ID required in mcp-session-id header");
441+
badRequestErrors.add("Session ID required in " + HttpHeaders.MCP_SESSION_ID + " header");
442442
}
443443

444444
if (!badRequestErrors.isEmpty()) {
@@ -545,7 +545,7 @@ protected void doDelete(HttpServletRequest request, HttpServletResponse response
545545

546546
if (request.getHeader(HttpHeaders.MCP_SESSION_ID) == null) {
547547
this.responseError(response, HttpServletResponse.SC_BAD_REQUEST,
548-
new McpError("Session ID required in mcp-session-id header"));
548+
new McpError("Session ID required in " + HttpHeaders.MCP_SESSION_ID + " header"));
549549
return;
550550
}
551551

mcp/src/main/java/io/modelcontextprotocol/spec/HttpHeaders.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ public interface HttpHeaders {
1414
/**
1515
* Identifies individual MCP sessions.
1616
*/
17-
String MCP_SESSION_ID = "mcp-session-id";
17+
String MCP_SESSION_ID = "Mcp-Session-Id";
1818

1919
/**
2020
* Identifies events within an SSE Stream.

0 commit comments

Comments
 (0)