Skip to content

Commit 1529168

Browse files
committed
feat(mcp): webflux support custom http header
1 parent 7853efe commit 1529168

File tree

1 file changed

+8
-0
lines changed

1 file changed

+8
-0
lines changed

mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/client/transport/WebFluxSseClientTransport.java

+8
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55

66
import java.io.IOException;
77
import java.util.function.BiConsumer;
8+
import java.util.function.Consumer;
89
import java.util.function.Function;
910

1011
import com.fasterxml.jackson.core.type.TypeReference;
@@ -16,6 +17,7 @@
1617
import io.modelcontextprotocol.util.Assert;
1718
import org.slf4j.Logger;
1819
import org.slf4j.LoggerFactory;
20+
import org.springframework.http.HttpHeaders;
1921
import reactor.core.Disposable;
2022
import reactor.core.publisher.Flux;
2123
import reactor.core.publisher.Mono;
@@ -235,6 +237,11 @@ else if (MESSAGE_EVENT_TYPE.equals(event.event())) {
235237
*/
236238
@Override
237239
public Mono<Void> sendMessage(JSONRPCMessage message) {
240+
return sendMessage(message, httpHeaders -> {
241+
});
242+
}
243+
244+
public Mono<Void> sendMessage(JSONRPCMessage message, Consumer<HttpHeaders> mutateHeaders) {
238245
// The messageEndpoint is the endpoint URI to send the messages
239246
// It is provided by the server as part of the endpoint event
240247
return messageEndpointSink.asMono().flatMap(messageEndpointUri -> {
@@ -245,6 +252,7 @@ public Mono<Void> sendMessage(JSONRPCMessage message) {
245252
String jsonText = this.objectMapper.writeValueAsString(message);
246253
return webClient.post()
247254
.uri(messageEndpointUri)
255+
.headers(mutateHeaders)
248256
.contentType(MediaType.APPLICATION_JSON)
249257
.bodyValue(jsonText)
250258
.retrieve()

0 commit comments

Comments
 (0)