Skip to content

Commit d18d478

Browse files
committed
Merge branch 'refs/heads/main' into fix/non-blocking-context
# Conflicts: # mcp-test/src/main/java/io/modelcontextprotocol/client/AbstractMcpAsyncClientTests.java # mcp/src/main/java/io/modelcontextprotocol/client/McpAsyncClient.java # mcp/src/test/java/io/modelcontextprotocol/client/AbstractMcpAsyncClientTests.java
2 parents 2c231df + 2e953c8 commit d18d478

26 files changed

+752
-631
lines changed

mcp-spring/mcp-spring-webflux/src/main/java/io/modelcontextprotocol/server/transport/WebFluxSseServerTransportProvider.java

+6-1
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ public void setSessionFactory(McpServerSession.Factory sessionFactory) {
188188
* errors if any session fails to receive the message
189189
*/
190190
@Override
191-
public Mono<Void> notifyClients(String method, Map<String, Object> params) {
191+
public Mono<Void> notifyClients(String method, Object params) {
192192
if (sessions.isEmpty()) {
193193
logger.debug("No active sessions to broadcast message to");
194194
return Mono.empty();
@@ -306,6 +306,11 @@ private Mono<ServerResponse> handleMessage(ServerRequest request) {
306306

307307
McpServerSession session = sessions.get(request.queryParam("sessionId").get());
308308

309+
if (session == null) {
310+
return ServerResponse.status(HttpStatus.NOT_FOUND)
311+
.bodyValue(new McpError("Session not found: " + request.queryParam("sessionId").get()));
312+
}
313+
309314
return request.bodyToMono(String.class).flatMap(body -> {
310315
try {
311316
McpSchema.JSONRPCMessage message = McpSchema.deserializeJsonRpcMessage(objectMapper, body);

0 commit comments

Comments
 (0)