Skip to main content
Glama

list_user_permissions

View user permissions for a Bitbucket repository to manage access control and security settings. Specify the repository slug to retrieve a list of users with their assigned permission levels.

Instructions

List user permissions for a repository.

Args:
    repo_slug: Repository slug
    limit: Maximum number of results (default: 50)

Returns:
    List of users with their permission levels

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
repo_slugYes
limitNo

Implementation Reference

  • MCP tool handler function (registered via @mcp.tool()) that executes the list_user_permissions tool logic: fetches from BitbucketClient, applies validation, formats output using UserPermission Pydantic models.
    @mcp.tool()
    @handle_bitbucket_error
    @formatted
    def list_user_permissions(repo_slug: str, limit: int = 50) -> dict:
        """List user permissions for a repository.
    
        Args:
            repo_slug: Repository slug
            limit: Maximum number of results (default: 50)
    
        Returns:
            List of users with their permission levels
        """
        client = get_client()
        permissions = client.list_user_permissions(repo_slug, limit=validate_limit(limit))
        return {
            "users": [UserPermission.from_api(p).model_dump() for p in permissions],
        }
  • Pydantic BaseModel for UserPermission providing input/output schema validation, parsing from Bitbucket API responses, and clean serialization for tool output.
    class UserPermission(BaseModel):
        """User permission info."""
    
        user: Optional[str] = None
        account_id: Optional[str] = None
        permission: str
    
        @classmethod
        def from_api(cls, data: dict) -> "UserPermission":
            user_data = data.get("user") or {}
            return cls(
                user=user_data.get("display_name"),
                account_id=user_data.get("account_id"),
                permission=data.get("permission", ""),
            )
  • BitbucketClient class method implementing the core API interaction: paginated GET request to /repositories/{workspace}/{repo_slug}/permissions-config/users endpoint.
    def list_user_permissions(
        self,
        repo_slug: str,
        limit: int = 50,
    ) -> list[dict[str, Any]]:
        """List user permissions for a repository.
    
        Args:
            repo_slug: Repository slug
            limit: Maximum results to return
    
        Returns:
            List of user permission info dicts
        """
        return self._paginated_list(
            self._repo_path(repo_slug, "permissions-config", "users"),
            limit=limit,
        )

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/JaviMaligno/mcp-server-bitbucket'

If you have feedback or need assistance with the MCP directory API, please join our Discord server