From 5a2986bc59ecdbe075d8703a9ec1e62562ff41e7 Mon Sep 17 00:00:00 2001 From: Yanming Zhou Date: Fri, 15 Aug 2025 11:28:44 +0800 Subject: [PATCH] Reuse HttpHeaders constants Signed-off-by: Yanming Zhou --- .../client/transport/HttpClientSseClientTransport.java | 7 +++---- .../transport/HttpClientStreamableHttpTransport.java | 6 ++++-- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientSseClientTransport.java b/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientSseClientTransport.java index 661a41170..ab3867d29 100644 --- a/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientSseClientTransport.java +++ b/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientSseClientTransport.java @@ -26,6 +26,7 @@ import io.modelcontextprotocol.client.transport.customizer.McpSyncHttpClientRequestCustomizer; import io.modelcontextprotocol.client.transport.ResponseSubscribers.ResponseEvent; import io.modelcontextprotocol.common.McpTransportContext; +import io.modelcontextprotocol.spec.HttpHeaders; import io.modelcontextprotocol.spec.McpClientTransport; import io.modelcontextprotocol.spec.McpSchema; import io.modelcontextprotocol.spec.McpSchema.JSONRPCMessage; @@ -69,8 +70,6 @@ public class HttpClientSseClientTransport implements McpClientTransport { private static final String MCP_PROTOCOL_VERSION = ProtocolVersions.MCP_2024_11_05; - private static final String MCP_PROTOCOL_VERSION_HEADER_NAME = "MCP-Protocol-Version"; - private static final Logger logger = LoggerFactory.getLogger(HttpClientSseClientTransport.class); /** SSE event type for JSON-RPC messages */ @@ -342,7 +341,7 @@ public Mono connect(Function, Mono> h .uri(uri) .header("Accept", "text/event-stream") .header("Cache-Control", "no-cache") - .header(MCP_PROTOCOL_VERSION_HEADER_NAME, MCP_PROTOCOL_VERSION) + .header(HttpHeaders.PROTOCOL_VERSION, MCP_PROTOCOL_VERSION) .GET(); var transportContext = ctx.getOrDefault(McpTransportContext.KEY, McpTransportContext.EMPTY); return Mono.from(this.httpRequestCustomizer.customize(builder, "GET", uri, null, transportContext)); @@ -470,7 +469,7 @@ private Mono> sendHttpPost(final String endpoint, final Str var builder = this.requestBuilder.copy() .uri(requestUri) .header("Content-Type", "application/json") - .header(MCP_PROTOCOL_VERSION_HEADER_NAME, MCP_PROTOCOL_VERSION) + .header(HttpHeaders.PROTOCOL_VERSION, MCP_PROTOCOL_VERSION) .POST(HttpRequest.BodyPublishers.ofString(body)); var transportContext = ctx.getOrDefault(McpTransportContext.KEY, McpTransportContext.EMPTY); return Mono.from(this.httpRequestCustomizer.customize(builder, "POST", requestUri, body, transportContext)); diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientStreamableHttpTransport.java b/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientStreamableHttpTransport.java index fb8813542..40b739cec 100644 --- a/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientStreamableHttpTransport.java +++ b/mcp-core/src/main/java/io/modelcontextprotocol/client/transport/HttpClientStreamableHttpTransport.java @@ -443,8 +443,10 @@ public Mono sendMessage(McpSchema.JSONRPCMessage sentMessage) { })).onErrorMap(CompletionException.class, t -> t.getCause()).onErrorComplete().subscribe(); })).flatMap(responseEvent -> { - if (transportSession.markInitialized( - responseEvent.responseInfo().headers().firstValue("mcp-session-id").orElseGet(() -> null))) { + if (transportSession.markInitialized(responseEvent.responseInfo() + .headers() + .firstValue(HttpHeaders.MCP_SESSION_ID) + .orElseGet(() -> null))) { // Once we have a session, we try to open an async stream for // the server to send notifications and requests out-of-band.