@@ -6,7 +6,9 @@ import type { Transport } from "@modelcontextprotocol/sdk/shared/transport.js";
66import type {
77 JSONRPCMessage ,
88 RequestId ,
9- InitializeRequest
9+ InitializeRequest ,
10+ RequestInfo ,
11+ MessageExtraInfo
1012} from "@modelcontextprotocol/sdk/types.js" ;
1113import {
1214 isInitializeRequest ,
@@ -54,7 +56,7 @@ export class WorkerTransport implements Transport {
5456 sessionId ?: string ;
5557 onclose ?: ( ) => void ;
5658 onerror ?: ( error : Error ) => void ;
57- onmessage ?: ( message : JSONRPCMessage ) => void ;
59+ onmessage ?: ( message : JSONRPCMessage , extra ?: MessageExtraInfo ) => void ;
5860
5961 constructor ( options ?: WorkerTransportOptions ) {
6062 this . sessionIdGenerator = options ?. sessionIdGenerator ;
@@ -390,6 +392,12 @@ export class WorkerTransport implements Transport {
390392 ) ;
391393 }
392394
395+ // TODO: push this upstream to the mcp sdk asap
396+ const requestInfo : RequestInfo & { url ?: string } = {
397+ headers : Object . fromEntries ( request . headers . entries ( ) ) ,
398+ url : request . url
399+ } ;
400+
393401 const isInitializationRequest = messages . some ( isInitializeRequest ) ;
394402
395403 if ( isInitializationRequest ) {
@@ -476,7 +484,7 @@ export class WorkerTransport implements Transport {
476484
477485 if ( ! hasRequests ) {
478486 for ( const message of messages ) {
479- this . onmessage ?.( message ) ;
487+ this . onmessage ?.( message , { requestInfo } ) ;
480488 }
481489 return new Response ( null , {
482490 status : 202 ,
@@ -502,7 +510,7 @@ export class WorkerTransport implements Transport {
502510 }
503511
504512 for ( const message of messages ) {
505- this . onmessage ?.( message ) ;
513+ this . onmessage ?.( message , { requestInfo } ) ;
506514 }
507515 } ) ;
508516 }
@@ -538,7 +546,7 @@ export class WorkerTransport implements Transport {
538546 }
539547
540548 for ( const message of messages ) {
541- this . onmessage ?.( message ) ;
549+ this . onmessage ?.( message , { requestInfo } ) ;
542550 }
543551
544552 return new Response ( readable , { headers } ) ;
0 commit comments