From 44f432961a614216c086865ea88a015e4cf50fd4 Mon Sep 17 00:00:00 2001 From: Jordan Zimmerman Date: Thu, 30 Oct 2025 10:06:21 +0000 Subject: [PATCH] Add method to get the MCP handler This will allow setting custom MCP handlers that defer to the handler that is set by the framework --- .../transport/HttpServletStatelessServerTransport.java | 5 +++++ .../spec/McpStatelessServerTransport.java | 6 ++++-- .../server/transport/WebFluxStatelessServerTransport.java | 5 +++++ .../server/transport/WebMvcStatelessServerTransport.java | 5 +++++ 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/server/transport/HttpServletStatelessServerTransport.java b/mcp-core/src/main/java/io/modelcontextprotocol/server/transport/HttpServletStatelessServerTransport.java index 40767f416..ab174af88 100644 --- a/mcp-core/src/main/java/io/modelcontextprotocol/server/transport/HttpServletStatelessServerTransport.java +++ b/mcp-core/src/main/java/io/modelcontextprotocol/server/transport/HttpServletStatelessServerTransport.java @@ -74,6 +74,11 @@ public void setMcpHandler(McpStatelessServerHandler mcpHandler) { this.mcpHandler = mcpHandler; } + @Override + public McpStatelessServerHandler getMcpHandler() { + return mcpHandler; + } + @Override public Mono closeGracefully() { return Mono.fromRunnable(() -> this.isClosing = true); diff --git a/mcp-core/src/main/java/io/modelcontextprotocol/spec/McpStatelessServerTransport.java b/mcp-core/src/main/java/io/modelcontextprotocol/spec/McpStatelessServerTransport.java index d1c2e5206..b64a05c2a 100644 --- a/mcp-core/src/main/java/io/modelcontextprotocol/spec/McpStatelessServerTransport.java +++ b/mcp-core/src/main/java/io/modelcontextprotocol/spec/McpStatelessServerTransport.java @@ -4,15 +4,17 @@ package io.modelcontextprotocol.spec; -import java.util.List; - import io.modelcontextprotocol.server.McpStatelessServerHandler; import reactor.core.publisher.Mono; +import java.util.List; + public interface McpStatelessServerTransport { void setMcpHandler(McpStatelessServerHandler mcpHandler); + McpStatelessServerHandler getMcpHandler(); + /** * Immediately closes all the transports with connected clients and releases any * associated resources. diff --git a/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/server/transport/WebFluxStatelessServerTransport.java b/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/server/transport/WebFluxStatelessServerTransport.java index 400be341e..b6213c003 100644 --- a/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/server/transport/WebFluxStatelessServerTransport.java +++ b/mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/server/transport/WebFluxStatelessServerTransport.java @@ -66,6 +66,11 @@ public void setMcpHandler(McpStatelessServerHandler mcpHandler) { this.mcpHandler = mcpHandler; } + @Override + public McpStatelessServerHandler getMcpHandler() { + return mcpHandler; + } + @Override public Mono closeGracefully() { return Mono.fromRunnable(() -> this.isClosing = true); diff --git a/mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcStatelessServerTransport.java b/mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcStatelessServerTransport.java index 4223084ff..c9d5c85aa 100644 --- a/mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcStatelessServerTransport.java +++ b/mcp-spring/mcp-spring-webmvc/src/main/java/io/modelcontextprotocol/server/transport/WebMvcStatelessServerTransport.java @@ -70,6 +70,11 @@ public void setMcpHandler(McpStatelessServerHandler mcpHandler) { this.mcpHandler = mcpHandler; } + @Override + public McpStatelessServerHandler getMcpHandler() { + return mcpHandler; + } + @Override public Mono closeGracefully() { return Mono.fromRunnable(() -> this.isClosing = true);