Coverage for .venv/lib/python3.13/site-packages/litellm/proxy/_experimental/mcp_server/stdio_gate.py: 88%
15 statements
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 12:01 +0000
« prev ^ index » next coverage.py v7.15.2, created at 2026-10-10 12:01 +0000
1import os
2from typing import Final
4from litellm._logging import verbose_logger
5from litellm.types.mcp import MCPTransport
7MCP_STDIO_ENABLED_ENV_VAR: Final = "LITELLM_ENABLE_MCP_STDIO"
8MCP_STDIO_DISABLED_MESSAGE: Final = (
9 f"stdio MCP servers are disabled on this proxy. "
10 f"Set {MCP_STDIO_ENABLED_ENV_VAR}=true on the proxy and restart to enable them"
11)
14def is_mcp_stdio_enabled() -> bool:
15 return os.getenv(MCP_STDIO_ENABLED_ENV_VAR, "").strip().lower() == "true"
18def is_mcp_stdio_flag_key(env_var_name: str) -> bool:
19 return env_var_name.upper() == MCP_STDIO_ENABLED_ENV_VAR
22def is_mcp_stdio_blocked(transport: str | None) -> bool:
23 return transport == MCPTransport.stdio and not is_mcp_stdio_enabled()
26def warn_if_mcp_stdio_blocked(server_name: str | None, transport: str | None) -> None:
27 if is_mcp_stdio_blocked(transport): 27 ↛ 28line 27 didn't jump to line 28 because the condition on line 27 was never true
28 verbose_logger.warning("MCP server '%s' will not start: %s", server_name, MCP_STDIO_DISABLED_MESSAGE)