Skip to main content
Glama
fruggr

Zendesk MCP Server by Fruggr

by fruggr

Get Zendesk Ticket History

get_ticket_history
Read-onlyIdempotent

Read a Zendesk ticket's change history as an oldest-first timeline of who changed what and when. Trace reassignments, status changes, and field updates with before→after values.

Instructions

Read a ticket's change history — its audit trail — as a chronological, oldest-first timeline of who changed what and when. Each entry shows the actor (name and id) and the channel, then the field changes that update carried (status, priority, assignee, group, tags, custom fields) as before → after, with assignee/requester/group ids resolved to names. Comments appear as one-line presence markers (public comment vs internal note added), not their text — fetch the bodies with list_ticket_comments (or get_ticket(include_comments=true) for a short thread). Purely system-generated notification events (trigger emails, collaborator/CC notifications, pushes) are filtered out — note this filters notification delivery, not CC-list edits, which are shown as changes — and an update carrying only such events produces no entry, so the timeline stays a readable narrative rather than a raw log. Use it to answer "what happened on this ticket?", "why was it reassigned?" or "when did it go to pending?", reading oldest-first so the founding context is not missed. Read-only, and cursor-paginated oldest-first: pass the returned cursor to page a long-lived ticket toward its most recent changes.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
cursorNoPagination cursor from a previous response; omit for the first page. The timeline is ordered oldest-first, so paging forward moves toward the most recent changes.
page_sizeNoAudits (ticket updates) per page (1-100, default 100). Each audit is one update to the ticket and may expand to several change lines; audits carrying only system events are dropped, so a page can render fewer entries than this.
ticket_idYesTicket ID — the numeric id of the ticket whose change history to read. Obtain it from search_tickets or list_tickets.
Install Server

TDQS

A4.6/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, the description discloses oldest-first ordering, resolution of assignee/requester/group ids to names, comment presence markers, filtering of system-generated notification events, and that updates containing only such events produce no entry. This is rich behavioral context that annotations cannot convey.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is front-loaded with the core purpose and every sentence carries useful behavioral, filtering, or usage detail. It is relatively long and repeats 'oldest-first' a few times, but the tool's filtering and pagination behavior justify the length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description carries the burden of explaining return semantics, and it does: entry structure, actor/channel/field changes, comment markers, system-event filtering, pagination, and ordering. It also tells the agent where to obtain ticket_id (search_tickets or list_tickets), so nothing needed to select and invoke the tool correctly is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description mostly restates cursor and page_size semantics already present in the schema (oldest-first, dropped audits) and adds no substantial new parameter meaning beyond the phrase 'long-lived ticket'.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description opens with a specific verb and resource: 'Read a ticket's change history — its audit trail — as a chronological, oldest-first timeline.' It also distinguishes itself from sibling tools by explicitly stating comments appear only as presence markers and pointing to list_ticket_comments or get_ticket for comment bodies, so an agent knows exactly what this tool does and what it does not.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It names concrete questions the tool answers ('what happened on this ticket?', 'why was it reassigned?', 'when did it go to pending?') and gives explicit alternatives: 'fetch the bodies with list_ticket_comments (or get_ticket(include_comments=true) for a short thread).' It also flags the filtered-event behavior so an agent won't expect a raw audit log.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Other Tools

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

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