Skip to main content
Glama

get_user_permission

Retrieve a user's permission level for a specific Bitbucket repository by providing the repository slug and user identifier.

Instructions

Get a specific user's permission for a repository.

Args:
    repo_slug: Repository slug
    selected_user: User's account_id or UUID

Returns:
    User's permission level

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
repo_slugYes
selected_userYes

Implementation Reference

  • MCP tool handler: calls Bitbucket client to fetch user permission and formats response using UserPermission model.
    @mcp.tool()
    @handle_bitbucket_error
    @formatted
    def get_user_permission(repo_slug: str, selected_user: str) -> dict:
        """Get a specific user's permission for a repository.
    
        Args:
            repo_slug: Repository slug
            selected_user: User's account_id or UUID
    
        Returns:
            User's permission level
        """
        client = get_client()
        result = client.get_user_permission(repo_slug, selected_user)
        if not result:
            return not_found_response("User permission", selected_user)
    
        return UserPermission.from_api(result).model_dump()
  • BitbucketClient helper method: makes API request to retrieve specific user's repository permission.
    def get_user_permission(
        self, repo_slug: str, selected_user: str
    ) -> Optional[dict[str, Any]]:
        """Get permission for a specific user.
    
        Args:
            repo_slug: Repository slug
            selected_user: User UUID or account_id
    
        Returns:
            User permission info or None if not found
        """
        return self._request(
            "GET",
            self._repo_path(repo_slug, "permissions-config", "users", selected_user),
        )
  • Pydantic model for user permission response, used to validate and serialize API data in tool handler.
    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", ""),
            )

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