BerriAI/litellm · error · HTTPException
MCP stdio command '{server.command}' is not in the allowlist
Error message
MCP stdio command '{server.command}' is not in the allowlist ({sorted(MCP_STDIO_ALLOWED_COMMANDS)}). Add it to LITELLM_MCP_STDIO_EXTRA_COMMANDS to allow this command. What it means
Error "MCP stdio command '{server.command}' is not in the allowlist ({sorted(MCP_STDIO_ALLOWED_COMMANDS)}). Add it to LITELLM_MCP_STDIO_EXTRA_COMMANDS to allow this command." thrown in BerriAI/litellm.
Source
Thrown at litellm/proxy/_experimental/mcp_server/mcp_server_manager.py:3301
# or be read-only, causing npx to fail with ENOENT.
if resolved_env is not None and "NPM_CONFIG_CACHE" not in resolved_env:
resolved_env["NPM_CONFIG_CACHE"] = MCP_NPM_CACHE_DIR
# Defense-in-depth: block commands not in the allowlist.
# The Pydantic validator blocks new servers; this catches legacy
# config/DB records predating the allowlist.
if server.command:
base_command: Final = os.path.basename(server.command)
# Strip .exe/.cmd/.bat/.com suffix for Windows compatibility
base_command_no_ext = base_command.lower()
for ext in [".exe", ".cmd", ".bat", ".com"]:
if base_command.lower().endswith(ext):
base_command_no_ext = base_command[: -len(ext)].lower()
break
if (
base_command.lower() not in MCP_STDIO_ALLOWED_COMMANDS
and base_command_no_ext not in MCP_STDIO_ALLOWED_COMMANDS
):
raise HTTPException(
status_code=403,
detail=f"MCP stdio command '{server.command}' is not in the allowlist ({sorted(MCP_STDIO_ALLOWED_COMMANDS)}). "
f"Add it to LITELLM_MCP_STDIO_EXTRA_COMMANDS to allow this command.",
)
stdio_config: MCPStdioConfig | None = None
if server.command and server.args is not None:
stdio_config = MCPStdioConfig(
command=server.command,
args=server.args,
env=resolved_env,
)
return MCPClient(
server_url="", # Not used for stdio
transport_type=transport,
auth_type=server.auth_type,
auth_value=auth_value,View on GitHub (pinned to 77b7c6c40c)
Solutions
- Add the command to LITELLM_MCP_STDIO_EXTRA_COMMANDS.
- Or use an allowlisted stdio command.
Example fix
export LITELLM_MCP_STDIO_EXTRA_COMMANDS='mycommand'
Defensive patterns
Strategy: validation
When it happens
Trigger: Thrown at litellm/proxy/_experimental/mcp_server/mcp_server_manager.py:3301 when the library encounters an invalid state.
Common situations: See trigger scenarios.
AI-assisted analysis of BerriAI/litellm@77b7c6c40c (2026-08-18).
Data as JSON: /api/errors/c8f136da736db6b3.
Report an issue: GitHub.