diff --git a/litellm/proxy/_experimental/mcp_server/mcp_server_manager.py b/litellm/proxy/_experimental/mcp_server/mcp_server_manager.py index 71c901a0b0e..e69f6d2bd88 100644 --- a/litellm/proxy/_experimental/mcp_server/mcp_server_manager.py +++ b/litellm/proxy/_experimental/mcp_server/mcp_server_manager.py @@ -774,7 +774,7 @@ def _without_authorization( def _is_gateway_attribution_header(header_name: str) -> bool: - return header_name.lower() in {"x-litellm-tags", "x-litellm-end-user-id"} + return header_name.lower() in frozenset(("x-litellm-tags", "x-litellm-end-user-id")) def _format_byok_openapi_auth_header(mcp_server: MCPServer, mcp_auth_header: str) -> str: diff --git a/litellm/proxy/_experimental/mcp_server/server.py b/litellm/proxy/_experimental/mcp_server/server.py index 92a971ac758..de9dbd4ee89 100644 --- a/litellm/proxy/_experimental/mcp_server/server.py +++ b/litellm/proxy/_experimental/mcp_server/server.py @@ -788,8 +788,10 @@ if MCP_AVAILABLE: request_tags: Final = LiteLLMProxyRequestSetup.add_request_tag_to_metadata( llm_router=None, - headers={key.lower(): value for key, value in (raw_headers or {}).items()}, - data={}, + headers={ # mutable-ok: request-tag helper accepts a mutable header mapping + key.lower(): value for key, value in (raw_headers or {}).items() + }, + data={}, # mutable-ok: request-tag helper mutates request metadata in place ) listing: Final = await _list_mcp_tools( user_api_key_auth=user_api_key_auth,