diff --git a/mcp/src/main/java/io/modelcontextprotocol/client/transport/HttpClientSseClientTransport.java b/mcp/src/main/java/io/modelcontextprotocol/client/transport/HttpClientSseClientTransport.java index 0f3511afb..7abc4d26c 100644 --- a/mcp/src/main/java/io/modelcontextprotocol/client/transport/HttpClientSseClientTransport.java +++ b/mcp/src/main/java/io/modelcontextprotocol/client/transport/HttpClientSseClientTransport.java @@ -23,6 +23,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; import io.modelcontextprotocol.client.transport.ResponseSubscribers.ResponseEvent; +import io.modelcontextprotocol.spec.HttpHeaders; import io.modelcontextprotocol.spec.McpClientTransport; import io.modelcontextprotocol.spec.McpSchema; import io.modelcontextprotocol.spec.ProtocolVersions; @@ -66,8 +67,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 */ @@ -403,7 +402,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(); return Mono.from(this.httpRequestCustomizer.customize(builder, "GET", uri, null)); }).flatMap(requestBuilder -> Mono.create(sink -> { @@ -529,7 +528,7 @@ private Mono> sendHttpPost(final String endpoint, final Str return Mono.defer(() -> { var builder = this.requestBuilder.copy() .uri(requestUri) - .header(MCP_PROTOCOL_VERSION_HEADER_NAME, MCP_PROTOCOL_VERSION) + .header(HttpHeaders.PROTOCOL_VERSION, MCP_PROTOCOL_VERSION) .POST(HttpRequest.BodyPublishers.ofString(body)); return Mono.from(this.httpRequestCustomizer.customize(builder, "POST", requestUri, body)); }).flatMap(customizedBuilder -> { diff --git a/mcp/src/main/java/io/modelcontextprotocol/client/transport/HttpClientStreamableHttpTransport.java b/mcp/src/main/java/io/modelcontextprotocol/client/transport/HttpClientStreamableHttpTransport.java index 93c28422a..fe59d0e3d 100644 --- a/mcp/src/main/java/io/modelcontextprotocol/client/transport/HttpClientStreamableHttpTransport.java +++ b/mcp/src/main/java/io/modelcontextprotocol/client/transport/HttpClientStreamableHttpTransport.java @@ -435,8 +435,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.