diff --git a/litellm/proxy/_experimental/mcp_server/server.py b/litellm/proxy/_experimental/mcp_server/server.py index 85574bd506d..bcbf4f75ef9 100644 --- a/litellm/proxy/_experimental/mcp_server/server.py +++ b/litellm/proxy/_experimental/mcp_server/server.py @@ -378,25 +378,19 @@ if MCP_AVAILABLE: body_data["litellm_trace_id"] = chain_id body_data["litellm_session_id"] = chain_id + _scope_headers: list[tuple[bytes, bytes]] = [ + (b"content-type", b"application/json"), + ] _scope_headers: list[tuple[bytes, bytes]] = [ (b"content-type", b"application/json"), ] if raw_headers: - try: + for k, v in raw_headers.items(): + if k.lower() == "content-type": + continue # already added above _scope_headers.append( (k.lower().encode("latin-1"), v.encode("latin-1")) ) - except (UnicodeEncodeError, UnicodeDecodeError): - verbose_logger.debug( - f"Skipping header {k!r}: contains non-Latin-1 characters" - ) - request = Request( - scope={ - "type": "http", - "method": "POST", - "path": "/mcp/tools/call", - "headers": _scope_headers, - } ) if user_api_key_auth is not None: data = await add_litellm_data_to_request(