BerriAI/litellm · error · HTTPException

stdio MCP servers cannot be submitted via the user registrat

Error message

stdio MCP servers cannot be submitted via the user registration workflow. Ask a proxy admin to add this server via POST /v1/mcp/server or to declare it in config.yaml.

What it means

Error "stdio MCP servers cannot be submitted via the user registration workflow. Ask a proxy admin to add this server via POST /v1/mcp/server or to declare it in config.yaml." thrown in BerriAI/litellm.

Source

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

                status_code=status.HTTP_403_FORBIDDEN,
                detail={
                    "error": "PROXY_ADMIN users should use POST /v1/mcp/server to create servers directly instead of the submission workflow."
                },
            )

        if not user_api_key_dict.team_id:
            raise HTTPException(
                status_code=status.HTTP_400_BAD_REQUEST,
                detail={"error": "Registration requires an API key associated with a team. Use a team-scoped key."},
            )

        # stdio servers spawn a local subprocess on the proxy host with the
        # configured command + args, so accepting them from non-admin callers
        # would let a team member propose a server config that an admin could
        # rubber-stamp into local code execution. Restrict stdio submission to
        # the admin POST /v1/mcp/server path or to config.yaml.
        if payload.transport == MCPTransport.stdio:
            raise HTTPException(
                status_code=status.HTTP_400_BAD_REQUEST,
                detail={
                    "error": (
                        "stdio MCP servers cannot be submitted via the user "
                        "registration workflow. Ask a proxy admin to add this "
                        "server via POST /v1/mcp/server or to declare it in "
                        "config.yaml."
                    )
                },
            )

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

        validate_and_normalize_mcp_server_payload(payload)
        stamp_omitted_oauth2_flow(payload)
        _validate_mcp_required_fields(payload)

        payload.approval_status = MCPApprovalStatus.pending_review

View on GitHub (pinned to 77b7c6c40c)

Solutions

  1. Ask a proxy admin to add the stdio server via POST /v1/mcp/server or config.yaml.
  2. Submit only remote (HTTP/SSE) MCP servers through the user registration workflow.
Defensive patterns

Strategy: validation

When it happens

Trigger: Thrown at litellm/proxy/management_endpoints/mcp_management_endpoints.py:1258 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/22bd8bbe342f5cbb. Report an issue: GitHub.