BerriAI/litellm · error · HTTPException

Admin access required to view MCP server submissions.

Error message

Admin access required to view MCP server submissions.

What it means

Role guard on GET /v1/mcp/server/submissions: the review-queue listing is admin-only. The caller's user_role is neither PROXY_ADMIN nor another admin-view role, so pending user submissions are not exposed to them.

Source

Thrown at litellm/proxy/management_endpoints/mcp_management_endpoints.py:1312

    @router.get(
        "/server/submissions",
        description="Returns all MCP servers submitted by non-admin users (admin review queue). Mirrors GET /guardrails/submissions.",
        dependencies=[Depends(user_api_key_auth)],
        response_model=MCPSubmissionsSummary,
    )
    @management_endpoint_wrapper
    async def get_mcp_server_submissions(
        user_api_key_dict: UserAPIKeyAuth = Depends(user_api_key_auth),
    ):
        """
        Admin-only endpoint to view all user-submitted MCP servers pending review.
        """
        if user_api_key_dict.user_role not in (
            LitellmUserRoles.PROXY_ADMIN,
            LitellmUserRoles.PROXY_ADMIN_VIEW_ONLY,
        ):
            raise HTTPException(
                status_code=status.HTTP_403_FORBIDDEN,
                detail={"error": "Admin access required to view MCP server submissions."},
            )

        prisma_client: Final = get_prisma_client_or_throw("Database not connected. Connect a database to your proxy")

        submissions: Final = await get_mcp_submissions(prisma_client)
        submissions.items = _redact_mcp_credentials_list(submissions.items)
        if not _user_is_full_admin(user_api_key_dict):
            submissions.items = _sanitize_mcp_server_list_for_non_admin(submissions.items)
        return submissions

    @router.put(
        "/server/{server_id}/approve",
        description="Approve a pending MCP server submission (admin only). Mirrors PUT /guardrails/{id}/approve.",
        dependencies=[Depends(user_api_key_auth)],
        response_model=LiteLLM_MCPServerTable,
    )

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Authenticate with a proxy admin API key.
  2. Ask a proxy admin to view the MCP server submissions.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at litellm/proxy/management_endpoints/mcp_management_endpoints.py:1312 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/90833ac7b3db51cd. Report an issue: GitHub.