@@ -243,15 +243,20 @@ private ServerResponse handleGet(ServerRequest request) {
243
243
String lastId = request .headers ().asHttpHeaders ().getFirst (MCP_LAST_ID );
244
244
245
245
try {
246
- session .replay (lastId ).toIterable ().forEach (message -> {
247
- try {
248
- sessionTransport .sendMessage (message ).block ();
249
- }
250
- catch (Exception e ) {
251
- logger .error ("Failed to replay message: {}" , e .getMessage ());
252
- sseBuilder .error (e );
253
- }
254
- });
246
+ session .replay (lastId )
247
+ .contextWrite (ctx -> ctx .put (McpTransportContext .KEY , transportContext ))
248
+ .toIterable ()
249
+ .forEach (message -> {
250
+ try {
251
+ sessionTransport .sendMessage (message )
252
+ .contextWrite (ctx -> ctx .put (McpTransportContext .KEY , transportContext ))
253
+ .block ();
254
+ }
255
+ catch (Exception e ) {
256
+ logger .error ("Failed to replay message: {}" , e .getMessage ());
257
+ sseBuilder .error (e );
258
+ }
259
+ });
255
260
}
256
261
catch (Exception e ) {
257
262
logger .error ("Failed to replay messages: {}" , e .getMessage ());
@@ -331,11 +336,15 @@ private ServerResponse handlePost(ServerRequest request) {
331
336
}
332
337
333
338
if (message instanceof McpSchema .JSONRPCResponse jsonrpcResponse ) {
334
- session .accept (jsonrpcResponse ).block ();
339
+ session .accept (jsonrpcResponse )
340
+ .contextWrite (ctx -> ctx .put (McpTransportContext .KEY , transportContext ))
341
+ .block ();
335
342
return ServerResponse .accepted ().build ();
336
343
}
337
344
else if (message instanceof McpSchema .JSONRPCNotification jsonrpcNotification ) {
338
- session .accept (jsonrpcNotification ).block ();
345
+ session .accept (jsonrpcNotification )
346
+ .contextWrite (ctx -> ctx .put (McpTransportContext .KEY , transportContext ))
347
+ .block ();
339
348
return ServerResponse .accepted ().build ();
340
349
}
341
350
else if (message instanceof McpSchema .JSONRPCRequest jsonrpcRequest ) {
@@ -352,7 +361,9 @@ else if (message instanceof McpSchema.JSONRPCRequest jsonrpcRequest) {
352
361
sessionId , sseBuilder );
353
362
354
363
try {
355
- session .responseStream (jsonrpcRequest , sessionTransport ).block ();
364
+ session .responseStream (jsonrpcRequest , sessionTransport )
365
+ .contextWrite (ctx -> ctx .put (McpTransportContext .KEY , transportContext ))
366
+ .block ();
356
367
}
357
368
catch (Exception e ) {
358
369
logger .error ("Failed to handle request stream: {}" , e .getMessage ());
0 commit comments