Skip to main content
Glama

get_tickets

Fetch Zendesk tickets with pagination and sorting options to manage and review support requests efficiently.

Instructions

Fetch the latest tickets with pagination support

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
pageNoPage number
per_pageNoNumber of tickets per page (max 100)
sort_byNoField to sort by (created_at, updated_at, priority, status)created_at
sort_orderNoSort order (asc or desc)desc

Implementation Reference

  • The core logic for `get_tickets` tool, which fetches tickets from Zendesk API.
    def get_tickets(self, page: int = 1, per_page: int = 25, sort_by: str = 'created_at', sort_order: str = 'desc') -> Dict[str, Any]:
        """
        Get the latest tickets with proper pagination support using direct API calls.
    
        Args:
            page: Page number (1-based)
            per_page: Number of tickets per page (max 100)
            sort_by: Field to sort by (created_at, updated_at, priority, status)
            sort_order: Sort order (asc or desc)
    
        Returns:
            Dict containing tickets and pagination info
        """
        try:
            # Cap at reasonable limit
            per_page = min(per_page, 100)
    
            # Build URL with parameters for offset pagination
            params = {
                'page': str(page),
                'per_page': str(per_page),
                'sort_by': sort_by,
                'sort_order': sort_order
            }
            query_string = urllib.parse.urlencode(params)
            url = f"{self.base_url}/tickets.json?{query_string}"
    
            # Create request with auth header
            req = urllib.request.Request(url)
            req.add_header('Authorization', self.auth_header)
            req.add_header('Content-Type', 'application/json')
    
            # Make the API request
            with urllib.request.urlopen(req) as response:
                data = json.loads(response.read().decode())
    
            tickets_data = data.get('tickets', [])
    
            # Process tickets to return only essential fields
            ticket_list = []
            for ticket in tickets_data:
                ticket_list.append({
                    'id': ticket.get('id'),
                    'subject': ticket.get('subject'),
                    'status': ticket.get('status'),
                    'priority': ticket.get('priority'),
                    'description': ticket.get('description'),
                    'created_at': ticket.get('created_at'),
                    'updated_at': ticket.get('updated_at'),
                    'requester_id': ticket.get('requester_id'),
                    'assignee_id': ticket.get('assignee_id')
                })
    
            return {
                'tickets': ticket_list,
                'page': page,
                'per_page': per_page,
                'count': len(ticket_list),
                'sort_by': sort_by,
                'sort_order': sort_order,
                'has_more': data.get('next_page') is not None,
                'next_page': page + 1 if data.get('next_page') else None,
                'previous_page': page - 1 if data.get('previous_page') and page > 1 else None
            }
  • The MCP handler implementation that routes the "get_tickets" call to the client implementation.
    elif name == "get_tickets":
        page = arguments.get("page", 1) if arguments else 1
        per_page = arguments.get("per_page", 25) if arguments else 25
        sort_by = arguments.get("sort_by", "created_at") if arguments else "created_at"
        sort_order = arguments.get("sort_order", "desc") if arguments else "desc"
    
        tickets = zendesk_client.get_tickets(
            page=page,
            per_page=per_page,
            sort_by=sort_by,
            sort_order=sort_order
        )
        return [types.TextContent(
            type="text",
            text=json.dumps(tickets, indent=2)

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/kdopenshaw/zendesk-mcp-server'

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