zendesk_get_ticket
Retrieve a Zendesk ticket by ID to access its status, priority, requester, assignee, tags, and description.
Instructions
Get a Zendesk ticket by ID. Returns ticket fields including status, priority, requester, assignee, tags, and description.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ticket_id | Yes |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| result | Yes |
Implementation Reference
- src/zendesk_mcp/tools/ticket.py:80-84 (registration)Tool 'zendesk_get_ticket' is registered as an MCP tool via @mcp.tool() decorator inside register_ticket_tools().
def register_ticket_tools(mcp) -> None: @mcp.tool() def zendesk_get_ticket(ticket_id: int) -> str: """Get a Zendesk ticket by ID. Returns ticket fields including status, priority, requester, assignee, tags, and description.""" return _get_ticket_data(ticket_id) - src/zendesk_mcp/tools/ticket.py:82-84 (handler)Handler function 'zendesk_get_ticket' that accepts a ticket_id (int) and returns ticket data as JSON string by calling _get_ticket_data().
def zendesk_get_ticket(ticket_id: int) -> str: """Get a Zendesk ticket by ID. Returns ticket fields including status, priority, requester, assignee, tags, and description.""" return _get_ticket_data(ticket_id) - Helper function '_get_ticket_data' that fetches the ticket from the Zendesk API via Zenpy client and returns JSON with id, subject, status, priority, type, requester, assignee, group, tags, dates, description, and ticket URL. Handles ConfigError and RecordNotFound/404 errors.
def _get_ticket_data(ticket_id: int) -> str: try: client = get_client() ticket = client.tickets(id=ticket_id) return json.dumps({ "id": ticket.id, "subject": ticket.subject, "status": ticket.status, "priority": ticket.priority, "type": ticket.type, "requester": { "name": ticket.requester.name, "email": ticket.requester.email, }, "assignee": { "name": ticket.assignee.name, "email": ticket.assignee.email, } if ticket.assignee else None, "group": ticket.group.name if ticket.group else None, "tags": ticket.tags, "created_at": str(ticket.created_at), "updated_at": str(ticket.updated_at), "description": ticket.description, "ticket_url": f"https://{_get_subdomain()}.zendesk.com/agent/tickets/{ticket.id}", }, indent=2) except ConfigError as e: return str(e) except Exception as e: if "RecordNotFound" in str(e) or "404" in str(e): return f"Ticket #{ticket_id} not found or not accessible with current credentials." return f"Zendesk API error: {e}" - Helper function '_get_subdomain' used to construct the Zendesk ticket URL.
def _get_subdomain() -> str: from zendesk_mcp.config import load_config return load_config().get("subdomain", "") - src/zendesk_mcp/server.py:13-13 (registration)Registration import of register_ticket_tools from ticket module, called on line 33 to wire up the tool.
from zendesk_mcp.tools.ticket import register_ticket_tools