fix: match mcp headers in provider data to Responses API shape

This commit is contained in:
Ashwin Bharambe 2025-05-25 13:47:11 -07:00
parent ce33d02443
commit c10a3a5936
3 changed files with 5 additions and 15 deletions

View file

@ -18,7 +18,7 @@ from llama_stack.apis.tools import (
from llama_stack.distribution.request_headers import NeedsRequestProviderData
from llama_stack.log import get_logger
from llama_stack.providers.datatypes import ToolGroupsProtocolPrivate
from llama_stack.providers.utils.tools.mcp import convert_header_list_to_dict, invoke_mcp_tool, list_mcp_tools
from llama_stack.providers.utils.tools.mcp import invoke_mcp_tool, list_mcp_tools
from .config import MCPProviderConfig
@ -69,5 +69,5 @@ class ModelContextProtocolToolRuntimeImpl(ToolGroupsProtocolPrivate, ToolRuntime
for uri, values in provider_data.mcp_headers.items():
if canonicalize_uri(uri) != canonicalize_uri(mcp_endpoint_uri):
continue
headers.update(convert_header_list_to_dict(values))
headers.update(values)
return headers

View file

@ -51,16 +51,6 @@ async def sse_client_wrapper(endpoint: str, headers: dict[str, str]):
raise
def convert_header_list_to_dict(header_list: list[str]) -> dict[str, str]:
headers = {}
for header in header_list:
parts = header.split(":")
if len(parts) == 2:
k, v = parts
headers[k.strip()] = v.strip()
return headers
async def list_mcp_tools(endpoint: str, headers: dict[str, str]) -> ListToolDefsResponse:
tools = []
async with sse_client_wrapper(endpoint, headers) as session:

View file

@ -40,9 +40,9 @@ def test_mcp_invocation(llama_stack_client, mcp_server):
provider_data = {
"mcp_headers": {
uri: [
f"Authorization: Bearer {AUTH_TOKEN}",
],
uri: {
"Authorization": f"Bearer {AUTH_TOKEN}",
},
},
}
auth_headers = {