BerriAI/litellm · error · RuntimeError

MCP per-user env vars require a database connection, but non

Error message

MCP per-user env vars require a database connection, but none is configured. Connect a database to your proxy to use per-user MCP env vars.

What it means

Per-user MCP env-var resolution needs a Prisma query, but prisma_client is None because no database is connected. This is an environment/infrastructure precondition failure, raised before any cache or lookup work.

Source

Thrown at litellm/proxy/_experimental/mcp_server/mcp_server_manager.py:3114

        """
        if user_api_key_auth is None:
            return {}
        user_id: Final[str | None] = getattr(user_api_key_auth, "user_id", None)
        if not user_id:
            return {}

        cache_key: Final = (user_id, server.server_id)
        if not force_refresh:
            cached: Final = _user_env_vars_cache.get(cache_key)
            if cached is not None:
                values, ts = cached
                if time.monotonic() - ts < _USER_ENV_VARS_CACHE_TTL:
                    return values

        from litellm.proxy.proxy_server import prisma_client  # noqa: PLC0415

        if prisma_client is None:
            raise RuntimeError(
                "MCP per-user env vars require a database connection, but none "
                "is configured. Connect a database to your proxy to use per-user "
                "MCP env vars."
            )
        from litellm.proxy._experimental.mcp_server.db import (  # noqa: PLC0415
            get_user_env_vars,
        )

        values = await get_user_env_vars(prisma_client, user_id, server.server_id)
        _write_user_env_vars_cache(user_id, server.server_id, values)
        return values

    async def _resolve_v2_auth(
        self,
        *,
        server: MCPServer,
        spec: ServerSpec,
        provider: UpstreamCredentialProvider,

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Connect a database (set DATABASE_URL) to enable per-user MCP env vars.
  2. Or avoid per-user variables for this server.

Example fix

export DATABASE_URL='postgresql://...'
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at litellm/proxy/_experimental/mcp_server/mcp_server_manager.py:3114 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/f2b0147cbc943aba. Report an issue: GitHub.