4242from helpers import dirty_json
4343from helpers .print_style import PrintStyle
4444from helpers .tool import Tool , Response
45+ from helpers .extension import call_extensions_async
4546
4647
4748def normalize_name (name : str ) -> str :
@@ -1105,10 +1106,21 @@ async def _create_stdio_transport(
11051106 # Check if this is a streaming HTTP type
11061107 if _is_streaming_http_type (server .type ):
11071108 # Use streamable HTTP client
1109+ # Before passing headers to httpx, allow extensions to resolve placeholders
1110+ resolved_headers = await call_extensions_async (
1111+ "resolve_mcp_server_headers" ,
1112+ agent = None ,
1113+ server_name = server .name ,
1114+ headers = dict (server .headers or {}),
1115+ )
1116+ if resolved_headers is not None :
1117+ headers_to_use = resolved_headers
1118+ else :
1119+ headers_to_use = server .headers
11081120 transport_result = await current_exit_stack .enter_async_context (
11091121 streamablehttp_client (
11101122 url = server .url ,
1111- headers = server . headers ,
1123+ headers = headers_to_use ,
11121124 timeout = timedelta (seconds = init_timeout ),
11131125 sse_read_timeout = timedelta (seconds = tool_timeout ),
11141126 httpx_client_factory = client_factory ,
@@ -1123,10 +1135,21 @@ async def _create_stdio_transport(
11231135 return read_stream , write_stream
11241136 else :
11251137 # Use traditional SSE client (default behavior)
1138+ # Before passing headers to httpx, allow extensions to resolve placeholders
1139+ resolved_headers = await call_extensions_async (
1140+ "resolve_mcp_server_headers" ,
1141+ agent = None ,
1142+ server_name = server .name ,
1143+ headers = dict (server .headers or {}),
1144+ )
1145+ if resolved_headers is not None :
1146+ headers_to_use = resolved_headers
1147+ else :
1148+ headers_to_use = server .headers
11261149 stdio_transport = await current_exit_stack .enter_async_context (
11271150 sse_client (
11281151 url = server .url ,
1129- headers = server . headers ,
1152+ headers = headers_to_use ,
11301153 timeout = init_timeout ,
11311154 sse_read_timeout = tool_timeout ,
11321155 httpx_client_factory = client_factory ,
0 commit comments