fix(mcp): validate backported SSE event limits

This commit is contained in:
Joshua Valluru 2026-10-20 16:05:59 -07:00
parent 5a68e6529c
commit 8aecfe3504
2 changed files with 31 additions and 1 deletions

View file

@ -218,7 +218,9 @@ MCP_PER_USER_TOKEN_EXPIRY_BUFFER_SECONDS: Final = int(os.getenv("MCP_PER_USER_TO
# MCP timeout defaults (seconds). Override via env vars for slow/custom MCP servers.
MCP_CLIENT_TIMEOUT: Final = float(os.getenv("LITELLM_MCP_CLIENT_TIMEOUT", "60.0"))
MCP_MAX_SSE_EVENT_SIZE_BYTES: Final = get_env_int("LITELLM_MCP_MAX_SSE_EVENT_SIZE_BYTES", 64 * 1024 * 1024)
MCP_MAX_SSE_EVENT_SIZE_BYTES: Final = get_env_int_in_range(
"LITELLM_MCP_MAX_SSE_EVENT_SIZE_BYTES", 64 * 1024 * 1024, 1, sys.maxsize
)
MCP_TOOL_LISTING_TIMEOUT: Final = float(os.getenv("LITELLM_MCP_TOOL_LISTING_TIMEOUT", "30.0"))
MCP_METADATA_TIMEOUT: Final = float(os.getenv("LITELLM_MCP_METADATA_TIMEOUT", "10.0"))
MCP_HEALTH_CHECK_TIMEOUT: Final = float(os.getenv("LITELLM_MCP_HEALTH_CHECK_TIMEOUT", "10.0"))

View file

@ -1,3 +1,4 @@
import sys
import ast, asyncio, os
import inspect
import json
@ -265,3 +266,30 @@ def test_morph_custom_llm_provider():
"""Test that morph models are correctly identified."""
config = MorphChatConfig()
assert config.custom_llm_provider == "morph"
@pytest.mark.parametrize(
("raw", "expected"),
(
(None, 64 * 1024 * 1024),
("", 64 * 1024 * 1024),
("invalid", 64 * 1024 * 1024),
("0", 64 * 1024 * 1024),
("-1", 64 * 1024 * 1024),
("1", 1),
("200000", 200000),
(str(sys.maxsize), sys.maxsize),
(str(sys.maxsize + 1), 64 * 1024 * 1024),
),
)
def test_mcp_sse_event_limit_uses_positive_override_or_default(raw: str | None, expected: int) -> None:
try:
with pytest.MonkeyPatch.context() as environment:
if raw is None:
environment.delenv("LITELLM_MCP_MAX_SSE_EVENT_SIZE_BYTES", raising=False)
else:
environment.setenv("LITELLM_MCP_MAX_SSE_EVENT_SIZE_BYTES", raw)
importlib.reload(constants)
assert constants.MCP_MAX_SSE_EVENT_SIZE_BYTES == expected
finally:
importlib.reload(constants)