@@ -22,14 +22,47 @@ export class TransportFactory {
2222 } as { command : string ; args ?: string [ ] ; env ?: Record < string , string > ; cwd ?: string } ;
2323 return new StdioClientTransport ( stdioParams ) as unknown as Transport ;
2424 }
25- case 'http' :
25+ case 'http' : {
26+ const httpHeaders : Record < string , string > = { } ;
27+
28+ // Add API key if provided
29+ if ( transportConfig . apiKey ) {
30+ httpHeaders [ 'X-API-Key' ] = transportConfig . apiKey ;
31+ }
32+
33+ // Merge custom headers
34+ if ( transportConfig . headers ) {
35+ Object . assign ( httpHeaders , transportConfig . headers ) ;
36+ }
37+
2638 return new StreamableHTTPClientTransport (
27- new URL ( transportConfig . url )
39+ new URL ( transportConfig . url ) ,
40+ Object . keys ( httpHeaders ) . length > 0 ? {
41+ requestInit : { headers : httpHeaders }
42+ } : undefined
2843 ) as unknown as Transport ;
29- case 'sse' :
44+ }
45+ case 'sse' : {
46+ const sseHeaders : Record < string , string > = { } ;
47+
48+ // Add API key if provided
49+ if ( transportConfig . apiKey ) {
50+ sseHeaders [ 'X-API-Key' ] = transportConfig . apiKey ;
51+ }
52+
53+ // Merge custom headers
54+ if ( transportConfig . headers ) {
55+ Object . assign ( sseHeaders , transportConfig . headers ) ;
56+ }
57+
3058 return new SSEClientTransport (
31- new URL ( transportConfig . sseUrl )
59+ new URL ( transportConfig . sseUrl ) ,
60+ Object . keys ( sseHeaders ) . length > 0 ? {
61+ eventSourceInit : { headers : sseHeaders } ,
62+ requestInit : { headers : sseHeaders }
63+ } : undefined
3264 ) as unknown as Transport ;
65+ }
3366 case 'websocket' :
3467 return new WebSocketClientTransport (
3568 new URL ( transportConfig . url )
0 commit comments