Skip to main content
Glama
yutamago

tokenless-zendesk-mcp

by yutamago

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

zendesk_login

Open a visible browser to sign in (password / SSO / 2FA). Saves the session cookies + CSRF token.

zendesk_session_status

Check whether a saved session exists and is still valid (calls the API as the current user).

zendesk_list_views

List the agent's active views with numeric IDs, titles, and cached ticket counts.

zendesk_fetch_view_tickets

Fetch tickets in a view, following pagination (limit caps the count).

zendesk_search

Search via /api/v2/search — any Zendesk query string; returns results tagged by type.

zendesk_get_ticket

Subject, status, parties, tags, custom fields (incl. product), full comment thread, and attachments.

zendesk_download_attachment

Download an attachment (by its content_url from get_ticket) to a path or directory.

zendesk_requester_tickets

List the tickets a user has requested (their history) — "have they reported this before?".

zendesk_organization_tickets

List tickets belonging to an organization.

zendesk_ticket_fields

Field definitions with valid dropdown/tagger option values — look up the value to set a custom field.

zendesk_ticket_metrics

SLA / timing metrics for a ticket (reply time, resolution time, reopens, replies).

zendesk_list_macros

List active macros with ids and titles (for zendesk_apply_macro).

zendesk_search_users

Find users by free-text (name, email, …).

zendesk_get_user

Fetch one user by id.

zendesk_ticket_audits

Full audit trail (every change/event) for a ticket.

zendesk_request

Read-only passthrough to any /api/v2 endpoint — for anything the dedicated tools don't cover.

Writes (require the CSRF token — see Writes below)

Tool

Description

zendesk_add_comment

Add a public reply or internal note to a ticket.

zendesk_update_ticket

Set status, priority, type, assignee, group, tags, and custom fields (optionally with a comment).

zendesk_apply_macro

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 login
  • macOS / 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-in

Then 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

ZENDESK_SUBDOMAIN

— (required)

The {subdomain} in https://{subdomain}.zendesk.com.

ZENDESK_SESSION_DIR

~/.zendesk-mcp

Where the saved session lives.

ZENDESK_API_TIMEOUT

30000

Per-request timeout in ms.

ZENDESK_LOGIN_TIMEOUT

300000

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.mjs

It 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_login periodically.

  • 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 honoring Retry-After.

  • Writes are supported via the session CSRF token (see Writes). They act with your agent permissions — review changes before sending.

Available Tools

19 tools
zendesk_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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ticketIdYesNumeric ticket id.
bodyYesThe comment text (plain text).
isPublicNotrue = public reply (default), false = internal note.

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ticketIdYesNumeric ticket id.
macroIdYesNumeric macro id (from zendesk_list_macros).

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe attachment content_url from zendesk_get_ticket.
destinationYesTarget file path, or a directory to save into using the original filename.

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 viewA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
viewIdYesNumeric view id (from zendesk_list_views).
limitNoMax tickets to return (default 200). Pages 100 at a time.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 detailsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ticketIdYesNumeric ticket id.

TDQS

A4.3/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 userA
Read-only

Fetch one user by id (name, email, role, organization).

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYesNumeric user id.

TDQS

A4.1/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines3/5

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 macrosA
Read-only

List active macros (canned actions) with their ids and titles. Use a returned id with zendesk_apply_macro.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 viewsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.5/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.7/5.0
Behavior5/5

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.

Conciseness5/5

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.

Completeness5/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 ticketsA
Read-only

List tickets belonging to an organization, most recent first. Get an organization id from a ticket (organization field) or a user record.

ParametersJSON Schema
NameRequiredDescriptionDefault
organizationIdYesNumeric organization id.
limitNoMax tickets (default 100).

TDQS

A3.7/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness3/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines2/5

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)A
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesAPI path, e.g. 'tickets/123/audits' or '/api/v2/users/me.json'.
queryNoOptional query parameters, e.g. { page: 2, per_page: 50 }.

TDQS

A4.2/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 ticketsA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
userIdYesNumeric user id of the requester.
limitNoMax tickets (default 100).

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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_search_usersSearch usersA
Read-only

Find users by a free-text query (name, email, phone, etc.). Returns id, name, email, role, and organization.

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYesSearch text (e.g. an email address or name).
limitNoMax users (default 50).

TDQS

A4/5.0
Behavior3/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 statusA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 trailA
Read-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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ticketIdYesNumeric ticket id.
limitNoMax audits (default 100).

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 definitionsA
Read-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).

ParametersJSON Schema
NameRequiredDescriptionDefault
activeOnlyNoOnly active fields (default true).

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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 metricsA
Read-only

Fetch timing and SLA metrics for one ticket: first reply time, full/agent resolution time, reopens, replies, and assignee/requester wait times.

ParametersJSON Schema
NameRequiredDescriptionDefault
ticketIdYesNumeric ticket id.

TDQS

A4.2/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters3/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

ParametersJSON Schema
NameRequiredDescriptionDefault
ticketIdYesNumeric ticket id.
statusNoNew ticket status.
priorityNo
typeNo
assigneeIdNoAssignee user id.
groupIdNoGroup id.
tagsNoReplaces the ticket's tags.
customFieldsNoCustom field values: [{ id, value }]. Values from zendesk_ticket_fields.
commentNoOptional comment to add with the update.
commentPublicNoWhether the optional comment is public (default true).

TDQS

A4.4/5.0
Behavior4/5

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.

Conciseness5/5

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.

Completeness4/5

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.

Parameters4/5

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.

Purpose5/5

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.

Usage Guidelines4/5

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.

  1. 19 tool updatesv0.2.0
    • First observedzendesk_add_comment
    • First observedzendesk_apply_macro
    • First observedzendesk_download_attachment
    • First observedzendesk_fetch_view_tickets
    • First observedzendesk_get_ticket
    • First observedzendesk_get_user
    • First observedzendesk_list_macros
    • First observedzendesk_list_views
    • First observedzendesk_login
    • First observedzendesk_organization_tickets
    • First observedzendesk_request
    • First observedzendesk_requester_tickets
    • First observedzendesk_search
    • First observedzendesk_search_users
    • First observedzendesk_session_status
    • First observedzendesk_ticket_audits
    • First observedzendesk_ticket_fields
    • First observedzendesk_ticket_metrics
    • First observedzendesk_update_ticket

TDQS

A4.2/5.0

Scored across 19 tools

Disambiguation5/5

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.

Naming Consistency4/5

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.

Tool Count5/5

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.

Completeness3/5

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

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    MCP 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
  • A
    license
    B
    quality
    B
    maintenance
    An MCP server that provides operational tooling over the Zendesk Support API — ticket triage, SLA monitoring, agent workload analysis, and system health audits.
    11
    1
    MIT