@@ -243,15 +243,20 @@ private ServerResponse handleGet(ServerRequest request) {
243243 String lastId = request .headers ().asHttpHeaders ().getFirst (MCP_LAST_ID );
244244
245245 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+ });
255260 }
256261 catch (Exception e ) {
257262 logger .error ("Failed to replay messages: {}" , e .getMessage ());
@@ -331,11 +336,15 @@ private ServerResponse handlePost(ServerRequest request) {
331336 }
332337
333338 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 ();
335342 return ServerResponse .accepted ().build ();
336343 }
337344 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 ();
339348 return ServerResponse .accepted ().build ();
340349 }
341350 else if (message instanceof McpSchema .JSONRPCRequest jsonrpcRequest ) {
@@ -352,7 +361,9 @@ else if (message instanceof McpSchema.JSONRPCRequest jsonrpcRequest) {
352361 sessionId , sseBuilder );
353362
354363 try {
355- session .responseStream (jsonrpcRequest , sessionTransport ).block ();
364+ session .responseStream (jsonrpcRequest , sessionTransport )
365+ .contextWrite (ctx -> ctx .put (McpTransportContext .KEY , transportContext ))
366+ .block ();
356367 }
357368 catch (Exception e ) {
358369 logger .error ("Failed to handle request stream: {}" , e .getMessage ());
0 commit comments