tokenless-zendesk-mcp
This server integrates with the Zendesk REST API using browser-based session cookies (no API token required), supporting read and write operations with your agent's permissions.
Authentication
zendesk_login— Opens a Chromium browser for one-time sign-in (supports SSO and 2FA); saves session cookies for all other toolszendesk_session_status— Checks whether a saved session exists and is still valid
Ticket Retrieval
zendesk_get_ticket— Fetches full ticket details: subject, status, priority, tags, custom fields, comment thread, and attachmentszendesk_fetch_view_tickets— Fetches tickets from a specific view (with pagination)zendesk_search— Searches across tickets, users, organizations, and groups using any query stringzendesk_requester_tickets— Lists all tickets submitted by a specific userzendesk_organization_tickets— Lists all tickets belonging to an organizationzendesk_ticket_metrics— Gets SLA and timing metrics (reply time, resolution time, reopens, etc.)zendesk_ticket_audits— Fetches the full audit trail for a ticket
Ticket Modification
zendesk_add_comment— Adds a public reply or internal note to a ticketzendesk_update_ticket— Updates ticket fields: status, priority, type, assignee, group, tags, and custom fieldszendesk_apply_macro— Applies a macro to a ticket and persists its changes
Views & Macros
zendesk_list_views— Lists active ticket views with IDs, titles, and ticket countszendesk_list_macros— Lists active macros with IDs and titles
Users & Organizations
zendesk_search_users— Finds users by name, email, or other textzendesk_get_user— Fetches a single user's details by ID
Fields & Attachments
zendesk_ticket_fields— Lists ticket field definitions including valid dropdown/tagger option valueszendesk_download_attachment— Downloads a ticket attachment to the local filesystem using the authenticated session
General API Access
zendesk_request— Makes a read-only GET request to any Zendesk REST API v2 endpoint not covered by the dedicated tools
Provides tools for interacting with Zendesk, including reading tickets, views, users, macros, and performing writes like adding comments, updating tickets, and applying macros, using session-based authentication.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@tokenless-zendesk-mcplist my active views in Zendesk"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Tokenless Zendesk MCP Server
An MCP server for Zendesk. You sign in once in a real browser (Playwright) — any method works, including SSO and 2FA — and the resulting session cookies are then used to call the Zendesk REST API directly. No API token, OAuth client, or admin setup required: it acts with exactly your agent account's permissions.
This is the same way Zendesk's own agent web UI talks to its API — a valid session
cookie is all a GET request needs (no CSRF token is required for reads).
What it can do
Reads
Tool | Description |
| Open a visible browser to sign in (password / SSO / 2FA). Saves the session cookies + CSRF token. |
| Check whether a saved session exists and is still valid (calls the API as the current user). |
| List the agent's active views with numeric IDs, titles, and cached ticket counts. |
| Fetch tickets in a view, following pagination ( |
| Search via |
| Subject, status, parties, tags, custom fields (incl. product), full comment thread, and attachments. |
| Download an attachment (by its |
| List the tickets a user has requested (their history) — "have they reported this before?". |
| List tickets belonging to an organization. |
| Field definitions with valid dropdown/tagger option values — look up the |
| SLA / timing metrics for a ticket (reply time, resolution time, reopens, replies). |
| List active macros with ids and titles (for |
| Find users by free-text (name, email, …). |
| Fetch one user by id. |
| Full audit trail (every change/event) for a ticket. |
| Read-only passthrough to any |
Writes (require the CSRF token — see Writes below)
Tool | Description |
| Add a public reply or internal note to a ticket. |
| Set status, priority, type, assignee, group, tags, and custom fields (optionally with a comment). |
| Apply a macro and persist its changes (status/fields/comment) to a ticket. |
Attachments. zendesk_get_ticket returns an attachments array; each item has
an id, file_name, content_url, content_type, and size. Pass an attachment's
content_url to zendesk_download_attachment along with a destination (a file
path, or a directory to save under the original filename). Downloads use the
authenticated session, so private attachments work.
zendesk_request unlocks the rest of the Zendesk REST
API for reads — e.g.
tickets/123/audits, ticket_metrics, organizations, users/123,
satisfaction_ratings. It is GET-only by design (write operations would require a
CSRF token, which is out of scope).
Related MCP server: zendesk-mcp
How auth works
You sign in once in a real browser window. Playwright saves the resulting
cookies to ~/.zendesk-mcp/storageState.json. Every other tool reads the cookies
scoped to your instance and replays them as a Cookie header against
https://{subdomain}.zendesk.com/api/v2/…. When the session expires the API
returns 401/403 and the tool returns a clear "run zendesk_login" message.
The session file holds live auth cookies — it's git-ignored. Treat it like a password.
Writes (CSRF)
GET requests authenticate with the session cookie alone. Write requests
(POST/PUT/DELETE) additionally require Zendesk's CSRF token — the same
one the agent UI uses. It's captured at login (from the agent page's
<meta name="csrf-token">) and saved to ~/.zendesk-mcp/csrf.txt. The token is
stable for the life of the session; if it ever goes stale, the server fetches a
fresh one automatically and retries the write once. The write tools
(zendesk_add_comment, zendesk_update_ticket, zendesk_apply_macro) modify
real tickets — confirm changes with the user before sending.
Add to Claude Code
No clone, no build — just point your MCP config at npx. Add to your .mcp.json
(or Claude Desktop config), replacing youracme with your Zendesk subdomain:
{
"mcpServers": {
"zendesk": {
"command": "npx",
"args": ["-y", "tokenless-zendesk-mcp"],
"env": {
"ZENDESK_SUBDOMAIN": "youracme"
}
}
}
}Or with the CLI: claude mcp add zendesk -e ZENDESK_SUBDOMAIN=youracme -- npx -y tokenless-zendesk-mcp
First login
You sign in once in a real browser window. Run the bundled login subcommand
(it downloads Chromium on first use, then opens the window):
ZENDESK_SUBDOMAIN=youracme npx -y tokenless-zendesk-mcp loginmacOS / Windows / Linux desktop: a Chromium window opens — sign in, done.
WSL2: you need WSLg (Windows 11) or an X server so the window can show. If the window can't open, run the login on the Windows host, or set
DISPLAY.
You can also trigger login from inside Claude with the zendesk_login tool, but
the standalone command is more reliable since not every MCP host surfaces the window.
From source (contributors)
npm install
npm run build
ZENDESK_SUBDOMAIN=youracme npm run login # one-time browser sign-inThen point your MCP config at the build instead of npx:
{
"mcpServers": {
"zendesk": {
"command": "node",
"args": ["/path/to/tokenless-zendesk-mcp/dist/index.js"],
"env": { "ZENDESK_SUBDOMAIN": "youracme" }
}
}
}See CONTRIBUTING.md for the release process and how publishing is configured.
Configuration (env vars)
Var | Default | Purpose |
| — (required) | The |
|
| Where the saved session lives. |
|
| Per-request timeout in ms. |
|
| How long the login window waits for you to finish signing in, in ms. |
Verify
After building and logging in:
ZENDESK_SUBDOMAIN=youracme node scripts/verify.mjsIt calls me, listViews, search, and getTicket against your live instance.
Notes & limitations
Auth is session-cookie based. Cookies expire (and SSO sessions time out), so you'll re-run
zendesk_loginperiodically.It respects whatever permissions your agent account has — nothing more.
The API is paginated; list tools cap results (
limit) and page 100 at a time. Rate-limited (429) responses are retried honoringRetry-After.Writes are supported via the session CSRF token (see Writes). They act with your agent permissions — review changes before sending.
Available Tools
19 toolszendesk_add_commentAdd a comment to a ticketA
Add a comment to a ticket. By default the comment is PUBLIC (visible to the requester); set isPublic=false for an internal note. This modifies the ticket — confirm the wording with the user before sending. Returns the updated ticket.
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | Numeric ticket id. | |
| body | Yes | The comment text (plain text). | |
| isPublic | No | true = public reply (default), false = internal note. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=false, and the description reinforces that 'This modifies the ticket'. It also warns about confirming wording, which is valuable behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core action. Each sentence adds essential information without redundancy. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple three-parameter tool with no output schema, the description fully covers purpose, parameters, and behavior (including modification and return value). No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are already well-described. The description adds minimal extra context about isPublic's default behavior, but does not significantly enhance understanding beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'Add a comment to a ticket', which is a specific verb+resource combination. It also clarifies the default public/private behavior, distinguishing it from general update tools like zendesk_update_ticket.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises 'confirm the wording with the user before sending', providing a clear usage guideline. It also explains when to set isPublic=false. However, it does not explicitly compare to sibling tools like zendesk_update_ticket.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_apply_macroApply a macro to a ticketA
Apply a macro (canned action) to a ticket and persist the resulting changes (status, fields, and/or a comment). Get a macro id from zendesk_list_macros. This modifies the ticket — confirm with the user first. Returns the changes applied and the updated ticket.
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | Numeric ticket id. | |
| macroId | Yes | Numeric macro id (from zendesk_list_macros). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate a write operation (readOnlyHint false) and potential side effects (openWorldHint true). The description adds useful context: it 'persists the resulting changes' and 'returns the changes applied and the updated ticket', which clarifies behavior beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loading the core purpose and effect, followed by a usage hint and caution. Every sentence contributes meaning without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple parameter set (2 simple strings), no output schema, and good annotations, the description covers the essential aspects: what the tool does, how to get the macro ID, and the caution about modifying the ticket. It is complete enough for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters having clear schema descriptions. The description adds minimal new semantic value by referencing zendesk_list_macros for macroId, but this is not a parameter-level detail. Baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('apply a macro'), the resource ('to a ticket'), and the effect ('persist the resulting changes'). It distinguishes from the sibling tool zendesk_list_macros by explicitly referencing it for obtaining the macro ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context: it tells the user to get a macro ID from zendesk_list_macros and advises to confirm with the user because it modifies the ticket. It does not explicitly exclude alternative tools like zendesk_update_ticket, but the action is specific enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_download_attachmentDownload a ticket attachmentA
Download an attachment to the local filesystem using the authenticated Zendesk session. Provide the attachment content_url from zendesk_get_ticket and a destination. If destination is a directory, the attachment's own filename is used; otherwise it is the full file path.
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | The attachment content_url from zendesk_get_ticket. | |
| destination | Yes | Target file path, or a directory to save into using the original filename. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description explains the side effect of downloading to the local filesystem and clarifies how the destination parameter behaves (directory vs. file path). This adds value beyond the annotations, which only indicate mutability and open-world hints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences: the first states the purpose, the second explains parameter usage and behavior. No unnecessary words, and it is appropriately front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with two required parameters and no output schema, the description is largely complete. It covers prerequisites and parameter behavior, though it does not mention the return value or potential error conditions, which would be useful for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema already describes both parameters with 100% coverage, so the baseline is 3. The description adds meaning by specifying the source of the url (from zendesk_get_ticket) and elaborating on the destination behavior, making it more helpful than the schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (download), the resource (attachment), and the context (authenticated Zendesk session). It distinguishes from sibling tools by specifying the prerequisite of obtaining the content_url from zendesk_get_ticket.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context on when to use the tool by instructing to provide the content_url from zendesk_get_ticket, implying a prerequisite. However, it does not explicitly state when not to use it or mention alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_fetch_view_ticketsFetch tickets in a viewARead-only
Fetch tickets listed in a Zendesk view, following pagination. Returns ticket id, subject, status, priority, requester, assignee, group, and timestamps. Get a view id from zendesk_list_views.
| Name | Required | Description | Default |
|---|---|---|---|
| viewId | Yes | Numeric view id (from zendesk_list_views). | |
| limit | No | Max tickets to return (default 200). Pages 100 at a time. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds value by mentioning pagination behavior (pages 100 at a time) and listing return fields, providing useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no filler, front-loaded with the key action and result. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Annotations are present and cover safety/profile. Schema covers all parameters. Description tells what is returned (fields) and links to related tool for viewId. Could mention pagination direction (next page link), but overall complete for a read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters. The description adds context for viewId ('Get a view id from zendesk_list_views') and the schema description for limit includes pagination detail. Overall marginal added value, so baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Fetch', the resource 'tickets in a Zendesk view', and distinguishes from siblings like zendesk_get_ticket (single ticket) and zendesk_search (search) by focusing on views. It also specifies returned fields.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells the user to get a view id from zendesk_list_views, providing clear context for how to obtain the required parameter. It implicitly guides usage for view-based ticket retrieval, though it does not explicitly exclude cases where other tools might be preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_get_ticketGet ticket detailsARead-only
Fetch full details for one ticket: subject, description, status, priority, type, tags, requester/assignee/submitter, group, organization, custom fields (with titles, including the product field when present), the full comment thread with authors and timestamps, and a list of attachments. Each attachment includes a content_url — pass it to zendesk_download_attachment to save the file.
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | Numeric ticket id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds useful behavioral context: what is fetched (including attachments with content_url) and how to handle attachments, which is beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two focused sentences. First sentence lists output fields efficiently. Second sentence adds crucial attachment handling guidance. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description comprehensively explains the return values, listing all major fields, custom fields, comment threads, and attachments. It is sufficient for a one-parameter read tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter 'ticketId' described as 'Numeric ticket id.' The description adds no additional meaning to the parameter, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Fetch' and the resource 'full details for one ticket', listing many specific fields. It distinguishes from siblings like zendesk_update_ticket or zendesk_add_comment by focusing on a read-only operation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use this tool (to get ticket details) but does not explicitly exclude alternatives. Given sibling tools have different purposes, it is clear but lacks explicit guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_get_userGet a userARead-only
Fetch one user by id (name, email, role, organization).
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | Numeric user id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds the returned fields list, which provides transparency about what the agent will get. No contradictions with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that immediately states the action and resource. No redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (one required param, no output schema), the description fully covers what the agent needs to know: how to call (by id) and what to expect (fields list). No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description of 'Numeric user id.' The description adds that the parameter is used to fetch by id but does not provide additional semantic meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Fetch', the resource 'one user by id', and lists the returned fields (name, email, role, organization). It distinguishes from sibling tools like zendesk_search_users which search rather than fetch by ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when you have a specific user ID but does not explicitly state when to use this tool vs alternatives like search. No exclusion criteria or context are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_list_macrosList macrosARead-only
List active macros (canned actions) with their ids and titles. Use a returned id with zendesk_apply_macro.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint and openWorldHint. The description adds that it lists 'active' macros and returns ids and titles. No additional behavioral traits are disclosed (e.g., pagination). Since annotations cover safety, a score of 3 is appropriate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no waste. First sentence provides the purpose, second sentence gives usage guidance. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, simple list tool with good annotations, the description is largely complete. It covers what is returned and how to use the result. Minor omission: no mention of pagination or maximum results, but acceptable for this context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, and schema coverage is 100%. The description adds value by explaining the output (ids and titles), which is beyond what the empty schema provides. Baseline for 0 parameters is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'List', the resource 'active macros', and the output ('ids and titles'). It further distinguishes the tool by directing to use the returned id with zendesk_apply_macro, differentiating from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implicitly says when to use: to get macros for applying. It explicitly tells what to do with the results (use with apply_macro). However, it lacks explicit when-not-to-use or alternatives, though the context makes it clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_list_viewsList Zendesk viewsARead-only
List the agent's active ticket views with their numeric IDs, titles, and cached ticket counts. Use a returned id with zendesk_fetch_view_tickets.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
readOnlyHint already indicates no side effects. Description adds that views are 'active' and include 'cached ticket counts', which is behavioral context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with essential info.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lack of output schema, description covers return fields and links to related tool. Sufficient for a zero-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters in schema, description doesn't need to add param info. It describes output which aids understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Specifies verb 'list', resource 'ticket views', and details returned data: numeric IDs, titles, cached ticket counts. Differentiates from sibling zendesk_fetch_view_tickets by stating usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Mentions using returned id with zendesk_fetch_view_tickets, providing clear context for subsequent action. No explicit when-not, but tool is single-purpose.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_loginLog in to ZendeskA
Open a VISIBLE browser window so you can sign in to Zendesk (password, SSO, and 2FA all work). On success the session cookies are saved and reused by every other tool to call the Zendesk REST API. Run this first, and again whenever a tool reports the session has expired.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses visible browser window, supports multiple auth methods, session cookie persistence, and reuse by other tools. No annotation contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with key actions, no redundancy. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Fully describes tool behavior, prerequisites, and reusability. No output schema exists, but the description covers the essential outcome.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters, so schema coverage is 100%. Description adds no parameter info, which is appropriate; baseline for 0 params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('open a visible browser window'), the resource (Zendesk), and the outcome (session cookies saved). It distinguishes from sibling tools by focusing on authentication setup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance to run this tool first and again on session expiry. Lacks explicit alternatives but context makes the usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_organization_ticketsList an organization's ticketsARead-only
List tickets belonging to an organization, most recent first. Get an organization id from a ticket (organization field) or a user record.
| Name | Required | Description | Default |
|---|---|---|---|
| organizationId | Yes | Numeric organization id. | |
| limit | No | Max tickets (default 100). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=true, openWorldHint=true) cover safety and completeness. Description adds ordering detail and id source, but doesn't mention pagination, result structure, or limit behavior beyond schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. Core function stated first, followed by practical guidance on obtaining the required parameter.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, so description should clarify return format (e.g., list of ticket objects) and pagination. Current description leaves these unspecified, though openWorldHint implies incomplete results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema already covers parameters well (100% coverage), but description adds value by explaining ordering ('most recent first') and how to derive organizationId from other records, which aids correct usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'List', resource 'tickets belonging to an organization', and sorting 'most recent first'. It distinguishes from sibling tools like zendesk_requester_tickets and zendesk_fetch_view_tickets by the grouping criterion.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides source for organization id but offers no guidance on when to use this tool versus alternatives like zendesk_search or zendesk_requester_tickets. Agent must infer usage from name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_requestCall a Zendesk API endpoint (read-only)ARead-only
Make a read-only (GET) request to any Zendesk REST API v2 endpoint and return the parsed JSON. Use for anything the dedicated tools don't cover (audits, satisfaction ratings, organizations, users, ticket metrics, etc.). path may be a bare resource like 'tickets/123/audits' or a full '/api/v2/...' path. Pass query parameters via query. See https://developer.zendesk.com/api-reference/ for available endpoints.
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | API path, e.g. 'tickets/123/audits' or '/api/v2/users/me.json'. | |
| query | No | Optional query parameters, e.g. { page: 2, per_page: 50 }. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and open-world. Description adds that it returns parsed JSON and mentions the API reference. Does not contradict annotations. Lacks details on rate limits, error handling, or auth.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, each adding value: purpose, usage guidance, path details, and a reference link. Well-structured and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description explains return as parsed JSON. With openWorldHint, completeness is high. Could mention error handling or response structure, but not essential for a generic tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers 100% of parameters. Description adds clarity: path can be bare or full, query parameters via query, with examples. Adds value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it makes read-only GET requests to Zendesk API, returning parsed JSON. Distinguishes from dedicated sibling tools by emphasizing it covers endpoints not handled by them.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to use for anything dedicated tools don't cover, with examples. Does not explicitly state when not to use, but implication is clear. Could mention preferring dedicated tools when available.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_requester_ticketsList a requester's ticketsARead-only
List tickets requested by a user (their reported tickets), most recent first — useful for seeing whether a customer has raised this before. Get a user id from zendesk_get_ticket (requester) or zendesk_search_users.
| Name | Required | Description | Default |
|---|---|---|---|
| userId | Yes | Numeric user id of the requester. | |
| limit | No | Max tickets (default 100). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds that results are 'most recent first' and that it lists 'their reported tickets' (tickets where the user is the requester). No contradiction, and adds useful behavioral context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no fluff: first states purpose and ordering, second gives use case and guidance on obtaining userId. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but the tool likely returns a list of tickets. Description covers purpose and parameter hints. Given openWorldHint, it's mostly complete for a simple list tool; could mention pagination or response structure, but not critical.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters (userId, limit) with descriptions. The description adds negligible param-specific info beyond what schema provides. Baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The title 'List a requester's tickets' and description clearly state the tool lists tickets for a specific user (requester), sorted most recent first. The use case 'seeing whether a customer has raised this before' distinguishes it from sibling tools like zendesk_organization_tickets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context for when to use (checking customer history) and how to get the userId from other tools (zendesk_get_ticket or zendesk_search_users). It does not explicitly state when not to use it or mention alternatives, but the guidance is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_searchSearch ZendeskARead-only
Search Zendesk via the REST API (/api/v2/search). Accepts any Zendesk search query string (e.g. 'type:ticket status:open assignee:me'). Returns matching results, each tagged with its result_type (ticket, user, organization, group) and the raw API record.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Zendesk search query string. | |
| limit | No | Max results to return (default 200; API caps search at 1000). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only and open-world. Description adds context: uses REST API returns result_type and raw record. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with essential info, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a search tool with only 2 params, full schema coverage, good annotations. Explains return format despite no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters fully. Description adds value with query example and explains limit default and API cap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it searches Zendesk via REST API, accepts any search query, and returns results with result_type. Distinct from siblings like zendesk_search_users.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides example query and states it accepts any Zendesk search string, but does not explicitly say when to use vs alternatives. Implicit from sibling list.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_search_usersSearch usersARead-only
Find users by a free-text query (name, email, phone, etc.). Returns id, name, email, role, and organization.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search text (e.g. an email address or name). | |
| limit | No | Max users (default 50). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and openWorldHint. Description adds return fields (id, name, email, role, organization) but does not disclose rate limits, pagination, or other behaviors beyond the schema. Adds modest context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences; first states purpose and scope, second lists return fields. No superfluous content. Front-loaded and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers purpose, return fields, and query scope. Lacks pagination details or sorting behavior, but given annotations and schema completeness, it is sufficient. No output schema makes the return field list helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so baseline is 3. Description adds examples for query (email, phone) beyond schema's 'name', but does not add meaning for the limit parameter. Overall modest value added.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Find users' and the resource 'users' with scope 'by a free-text query'. Distinguishes from siblings like zendesk_get_user (specific ID) and zendesk_search (general).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Indicates when to use (free-text search for users) but does not explicitly mention when not to use or alternatives. However, the free-text specification and sibling context provide sufficient guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_session_statusCheck Zendesk session statusARead-only
Report whether a saved Zendesk session exists and verify it is still valid by calling the API as the current user. Use to decide if zendesk_login is needed.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true, indicating safe read-only behavior. The description adds that it calls the API as the current user to verify session validity, which is consistent and provides useful context beyond annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, no wasted words. The purpose and usage are immediately clear and front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with no output schema, the description covers the core functionality and usage context. Mentioning the exact output could enhance completeness, but it's not lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are no parameters, so baseline 4 applies. The description is sufficient as no parameter details are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it reports session existence and validity, distinguishing it from sibling tools like zendesk_login by explicitly tying its use to deciding if login is needed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'Use to decide if zendesk_login is needed.' While it doesn't explicitly mention when not to use it, the context is clear given the tool's simplicity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_ticket_auditsGet ticket audit trailARead-only
Fetch the full audit trail for a ticket: every change and event (field updates, status changes, comments, notifications) with authors and timestamps. More complete than the comment thread alone.
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | Numeric ticket id. | |
| limit | No | Max audits (default 100). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond annotations by specifying what exactly is returned (field updates, status changes, comments, notifications) and that it includes authors and timestamps. Annotations already indicate read-only, so no contradiction; this is consistent and informative.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the core action, and contains no unnecessary words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity, full schema coverage, and annotations, the description is sufficiently complete. It conveys the scope and contents of the audit trail. Minor missing details like pagination or performance are not critical for this read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions for ticketId and limit. The main description does not add extra semantic meaning beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches the full audit trail for a ticket, specifying it includes every change, event, author, and timestamp. It distinguishes itself from the comment thread alone, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description notes the audit trail is 'more complete than the comment thread alone,' providing a comparative usage hint. However, it does not explicitly exclude other contexts or mention alternatives like zendesk_get_ticket, so it's slightly implicit but still helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_ticket_fieldsList ticket field definitionsARead-only
List ticket field definitions, including the valid dropdown/tagger option values. Use this to find the exact value to pass when setting a custom field via zendesk_update_ticket (e.g. the sentiment or product field).
| Name | Required | Description | Default |
|---|---|---|---|
| activeOnly | No | Only active fields (default true). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint and openWorldHint. Description adds that it includes option values, which is useful behavioral context beyond the annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, no wasted words. Front-loaded with main action, then immediately gives usage example.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple list tool with one optional parameter and no output schema, the description is sufficient. It covers what the tool returns (definitions with option values) and how to use it.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with description for the single parameter. Description does not add new parameter info beyond what schema provides, but the tool-level explanation gives context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'List' and resource 'ticket field definitions', including valid option values. It distinguishes itself from siblings by linking to zendesk_update_ticket usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: to find exact value to pass when setting custom field via zendesk_update_ticket. Does not mention when not to use, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_ticket_metricsGet ticket SLA / timing metricsARead-only
Fetch timing and SLA metrics for one ticket: first reply time, full/agent resolution time, reopens, replies, and assignee/requester wait times.
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | Numeric ticket id. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and openWorldHint=true. The description adds context by listing the exact metrics fetched, going beyond the annotations to clarify what data is returned. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that efficiently conveys the purpose and key outputs. No unnecessary words or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately enumerates the main metrics returned. It could mention the return format or potential errors, but for a simple fetch operation with clear annotations, it is sufficiently complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% – the only parameter 'ticketId' has a description. The tool description does not add new semantic meaning beyond the schema's 'Numeric ticket id.' It mentions 'ticket' but that is already clear. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Fetch', the resource 'ticket', and explicitly lists the specific metrics returned (first reply time, resolution times, reopens, replies, wait times). It distinguishes itself from siblings like zendesk_get_ticket (general info) and zendesk_ticket_audits (audit trail) by focusing solely on timing and SLA data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description specifies it is for a single ticket and lists the metrics returned, which implies its use case. However, it does not explicitly state when not to use it or name alternatives, leaving some ambiguity for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_update_ticketUpdate a ticketA
Update fields on a ticket: status, priority, type, assignee, group, tags, and custom fields. For custom field values, look up the exact value with zendesk_ticket_fields. Optionally include a comment. This modifies the ticket — confirm changes with the user first. Returns the updated ticket.
| Name | Required | Description | Default |
|---|---|---|---|
| ticketId | Yes | Numeric ticket id. | |
| status | No | New ticket status. | |
| priority | No | ||
| type | No | ||
| assigneeId | No | Assignee user id. | |
| groupId | No | Group id. | |
| tags | No | Replaces the ticket's tags. | |
| customFields | No | Custom field values: [{ id, value }]. Values from zendesk_ticket_fields. | |
| comment | No | Optional comment to add with the update. | |
| commentPublic | No | Whether the optional comment is public (default true). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate mutation (readOnlyHint=false). Description adds explicit warning: 'This modifies the ticket — confirm changes with the user first', which aligns with annotations and discloses side effects appropriately.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four concise sentences, each adding value: core fields, custom field lookup, modification warning, return value. Front-loaded with purpose, no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters and no output schema, the description covers the essential usage: what can be updated, how to handle custom fields, and what is returned (updated ticket). Lacks error/permission details but is sufficient for typical use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 80%; description enumerates key parameters and adds practical guidance for customFields ('look up exact value with zendesk_ticket_fields'), supplementing the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'update' and the resource 'ticket', listing specific fields (status, priority, type, assignee, group, tags, custom fields) and optional comment. It distinguishes from siblings like zendesk_add_comment by covering general field updates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context: confirm changes with user first, look up custom field values via zendesk_ticket_fields. Does not explicitly state when not to use (e.g., for adding comments only, use sibling), but the sibling list and optional comment clarify scope.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
19 tool updates
v0.2.0- First observed
zendesk_add_comment - First observed
zendesk_apply_macro - First observed
zendesk_download_attachment - First observed
zendesk_fetch_view_tickets - First observed
zendesk_get_ticket - First observed
zendesk_get_user - First observed
zendesk_list_macros - First observed
zendesk_list_views - First observed
zendesk_login - First observed
zendesk_organization_tickets - First observed
zendesk_request - First observed
zendesk_requester_tickets - First observed
zendesk_search - First observed
zendesk_search_users - First observed
zendesk_session_status - First observed
zendesk_ticket_audits - First observed
zendesk_ticket_fields - First observed
zendesk_ticket_metrics - First observed
zendesk_update_ticket
TDQS
Scored across 19 tools
Each tool targets a distinct Zendesk action (e.g., add_comment vs update_ticket, list_views vs fetch_view_tickets) and descriptions clarify boundaries. There is no ambiguity between tools.
Nearly all tools follow a verb_noun pattern (zendesk_<verb>_<noun>), with a few exceptions like 'ticket_audits' (noun_noun) but they are still readable and predictable overall.
19 tools cover the core Zendesk workflows—authentication, ticket management, views, macros, search, users, attachments, audits, fields, metrics—without being overwhelming. The count is well-scoped.
The tool set covers most common operations (read, update, comment, search, lists) but notably lacks a create_ticket tool, which is a fundamental gap. The generic request tool is read-only, so creation is not possible.
Maintenance
Related MCP Connectors
Zendesk MCP Pack — tickets, users, organizations via OAuth.
Remote MCP server for managing Muninx tickets, messages, ticket search, and support analytics.
An MCP server that provides read access to your cloud storage providers, bank accounts and more.
Read tickets, users, orgs, macros and satisfaction ratings; create, update and comment on tickets.
Related MCP Servers
- FlicenseDqualityDmaintenanceA comprehensive MCP server for managing Zendesk Support, Talk, Chat, and Guide products, providing tools for tickets, users, organizations, search, and more.4930-
- AlicenseNot gradedqualityDmaintenanceMCP server for Zendesk support workflows that enables ticket search, lookup, creation, commenting, status updates, and user listing through natural language. It uses OAuth authentication and supports both internal notes and public comments.MIT
- AlicenseNot gradedqualityDmaintenanceMCP server to retrieve information from Zendesk Help Center using anonymous authentication. Provides tools to list categories, sections, articles, and search articles.MIT
- AlicenseBqualityBmaintenanceAn MCP server that provides operational tooling over the Zendesk Support API — ticket triage, SLA monitoring, agent workload analysis, and system health audits.111MIT