@@ -407,16 +407,17 @@ export const layer = Layer.effect(
407407 { tool : key , sessionID : ctx . sessionID , callID : opts . toolCallId } ,
408408 { args } ,
409409 )
410- // === BEGIN ADDITIONS ===
411410 const meta = ( item as { __mcp ?: { server : string ; tool : string } } ) . __mcp
412411 let mcpHeaders : Record < string , string > | undefined
413412 if ( meta ) {
414413 const cfg = yield * config . get ( )
415414 const serverCfg = cfg . mcp ?. [ meta . server ]
416- const staticHeaders =
417- serverCfg && "headers" in serverCfg && serverCfg . headers
418- ? { ...serverCfg . headers }
419- : { }
415+ const staticHeaders : Record < string , string > = { }
416+ if ( serverCfg && "headers" in serverCfg && serverCfg . headers ) {
417+ for ( const [ k , v ] of Object . entries ( serverCfg . headers ) ) {
418+ staticHeaders [ k . toLowerCase ( ) ] = v
419+ }
420+ }
420421 const output = { headers : staticHeaders }
421422 yield * plugin
422423 . trigger (
@@ -430,31 +431,28 @@ export const layer = Layer.effect(
430431 output ,
431432 )
432433 . pipe (
433- Effect . catch ( ( _err ) => {
434- const err = _err as unknown
434+ Effect . catchCause ( ( cause ) => {
435435 log . warn ( "mcp.call.before plugin failed" , {
436436 server : meta . server ,
437437 tool : meta . tool ,
438438 sessionID : ctx . sessionID ,
439439 callID : opts . toolCallId ,
440- error : err instanceof Error ? err . message : String ( err ) ,
440+ error : Cause . pretty ( cause ) ,
441441 } )
442- return Effect . succeed ( output )
442+ return Effect . void
443443 } ) ,
444444 )
445445 mcpHeaders = output . headers
446446 }
447- // === END ADDITIONS ===
448447
449448 const result : Awaited < ReturnType < NonNullable < typeof execute > > > = yield * Effect . gen ( function * ( ) {
450449 yield * ctx . ask ( { permission : key , metadata : { } , patterns : [ "*" ] , always : [ "*" ] } )
451- // === BEGIN MODIFICATION ===
452450 return yield * Effect . promise ( ( ) => {
453- if ( meta && mcpHeaders ) {
451+ if ( mcpHeaders ) {
454452 return MCP . McpCallContext . run (
455453 {
456- server : meta . server ,
457- tool : meta . tool ,
454+ server : meta ! . server ,
455+ tool : meta ! . tool ,
458456 sessionID : ctx . sessionID ,
459457 callID : opts . toolCallId ,
460458 headers : mcpHeaders ,
@@ -464,7 +462,6 @@ export const layer = Layer.effect(
464462 }
465463 return execute ( args , opts )
466464 } )
467- // === END MODIFICATION ===
468465 } ) . pipe (
469466 Effect . withSpan ( "Tool.execute" , {
470467 attributes : {
0 commit comments