Zendesk MCP by usefulapi
by usefulapi.io · remote · no sign-in to list tools · v1.16.3 · published by io.usefulapi
Read tickets, users, orgs, macros and satisfaction ratings; create, update and comment on tickets.
19 tools: 3 can delete or cancel things, 1 change things and 15 only read.
Scanned Oct 21, 2026
- Deletes or cancels3Claude Code: deny: see these tools
- Can't be undone0Claude Code: ask
- Changes things1Claude Code: ask: see these tools
- Only reads15Claude Code: allow: see these tools
2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http zendesk https://zendesk.usefulapi.io/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "zendesk_execute_view" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "zendesk_execute_view" says "execute": a word for a change.
The description mentions "credentials".
What this check looks forMatched text
description: "...henticated user — a quick way to verify credentials and subdomain. Zendesk REST: GET /users..."
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
19 tools
Deletes or cancels 3Claude Code: deny
zendesk_add_ticket_commentMUTATING: add a comment to a ticket.No findings
Why it is in this group
- The name "zendesk_add_ticket_comment" says "add": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it MUTATING: add a comment to a ticket. `public` defaults to true (a reply visible to the requester); set it false for an internal agent note. Convenience over PUT /tickets/{id}.json.
Annotations the server declares
- title: Add ticket comment
- destructiveHint: true
zendesk_create_ticketMUTATING: create a new support ticket.No findings
Why it is in this group
- The name "zendesk_create_ticket" says "create": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it MUTATING: create a new support ticket. `subject` and `comment_body` are required; the comment becomes the ticket's first message. Zendesk REST: POST /tickets.json.
Annotations the server declares
- title: Create ticket
- destructiveHint: true
zendesk_update_ticketMUTATING: update an existing ticket.No findings
Why it is in this group
- The name "zendesk_update_ticket" says "update": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it MUTATING: update an existing ticket. Provide the ticket `id` plus at least one field to change (status, priority, assignee_id, group_id, type, tags, or a comment). Zendesk REST: PUT /tickets/{id}.json.
Annotations the server declares
- title: Update ticket
- destructiveHint: true
Changes things 1Claude Code: ask
zendesk_execute_viewRun a saved view by id and return the matching tickets.1 finding
Why it is in this group
- The name "zendesk_execute_view" says "execute": a word for a change.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Findings
- Warn
The server marks "zendesk_execute_view" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true}; The name "zendesk_execute_view" says "execute": a word for a change.
Description, as the server wrote it Run a saved view by id and return the matching tickets. Zendesk REST: GET /views/{id}/execute.json.
Annotations the server declares
- title: Execute view
- readOnlyHint: true
Only reads 15Claude Code: allow
zendesk_current_userReturn the currently authenticated user — a quick way to verify credentials and subdomain.1 finding
Why it is in this group
- The description's first verb is "return": a word for reading.
Findings
- Info
The description mentions "credentials".
What this check looks forMatched text
description: "...henticated user — a quick way to verify credentials and subdomain. Zendesk REST: GET /users..."
Description, as the server wrote it Return the currently authenticated user — a quick way to verify credentials and subdomain. Zendesk REST: GET /users/me.json.
Annotations the server declares
- title: Current user (whoami)
- readOnlyHint: true
zendesk_get_organizationFetch a single organization by id.No findings
Why it is in this group
- The name "zendesk_get_organization" says "get": a word for reading.
Description, as the server wrote it Fetch a single organization by id. Zendesk REST: GET /organizations/{id}.json.
Annotations the server declares
- title: Get organization
- readOnlyHint: true
zendesk_get_ticketFetch a single ticket by id.No findings
Why it is in this group
- The name "zendesk_get_ticket" says "get": a word for reading.
Description, as the server wrote it Fetch a single ticket by id. Zendesk REST: GET /tickets/{id}.json.
Annotations the server declares
- title: Get ticket
- readOnlyHint: true
zendesk_get_ticket_metricsFetch SLA / response / resolution time metrics for a ticket.No findings
Why it is in this group
- The name "zendesk_get_ticket_metrics" says "get": a word for reading.
Description, as the server wrote it Fetch SLA / response / resolution time metrics for a ticket. Zendesk REST: GET /tickets/{id}/metrics.json.
Annotations the server declares
- title: Get ticket metrics
- readOnlyHint: true
zendesk_get_userFetch a single user by id.No findings
Why it is in this group
- The name "zendesk_get_user" says "get": a word for reading.
Description, as the server wrote it Fetch a single user by id. Zendesk REST: GET /users/{id}.json.
Annotations the server declares
- title: Get user
- readOnlyHint: true
zendesk_list_groupsList agent groups.No findings
Why it is in this group
- The name "zendesk_list_groups" says "list": a word for reading.
Description, as the server wrote it List agent groups. Zendesk REST: GET /groups.json.
Annotations the server declares
- title: List groups
- readOnlyHint: true
zendesk_list_macrosList macros (reusable sets of ticket actions/replies agents apply).No findings
Why it is in this group
- The name "zendesk_list_macros" says "list": a word for reading.
Description, as the server wrote it List macros (reusable sets of ticket actions/replies agents apply). Zendesk REST: GET /macros.json.
Annotations the server declares
- title: List macros
- readOnlyHint: true
zendesk_list_organizationsList organizations (offset pagination).No findings
Why it is in this group
- The name "zendesk_list_organizations" says "list": a word for reading.
Description, as the server wrote it List organizations (offset pagination). Zendesk REST: GET /organizations.json.
Annotations the server declares
- title: List organizations
- readOnlyHint: true
zendesk_list_satisfaction_ratingsList customer satisfaction (CSAT) ratings, optionally filtered by score.No findings
Why it is in this group
- The name "zendesk_list_satisfaction_ratings" says "list": a word for reading.
Description, as the server wrote it List customer satisfaction (CSAT) ratings, optionally filtered by score. Zendesk REST: GET /satisfaction_ratings.json.
Annotations the server declares
- title: List satisfaction ratings
- readOnlyHint: true
zendesk_list_ticket_commentsList the comments (public replies and internal notes) on a ticket, oldest first.No findings
Why it is in this group
- The name "zendesk_list_ticket_comments" says "list": a word for reading.
Description, as the server wrote it List the comments (public replies and internal notes) on a ticket, oldest first. Zendesk REST: GET /tickets/{id}/comments.json.
Annotations the server declares
- title: List ticket comments
- readOnlyHint: true
zendesk_list_ticket_fieldsList all standard and custom ticket fields — useful for discovering field ids/values before creating or updating tickets.No findings
Why it is in this group
- The name "zendesk_list_ticket_fields" says "list": a word for reading.
Description, as the server wrote it List all standard and custom ticket fields — useful for discovering field ids/values before creating or updating tickets. Zendesk REST: GET /ticket_fields.json.
Annotations the server declares
- title: List ticket fields
- readOnlyHint: true
zendesk_list_ticketsList recent tickets (offset pagination).No findings
Why it is in this group
- The name "zendesk_list_tickets" says "list": a word for reading.
Description, as the server wrote it List recent tickets (offset pagination). Zendesk REST: GET /tickets.json.
Annotations the server declares
- title: List tickets
- readOnlyHint: true
zendesk_list_viewsList saved ticket views (curated ticket lists).No findings
Why it is in this group
- The name "zendesk_list_views" says "list": a word for reading.
Description, as the server wrote it List saved ticket views (curated ticket lists). Use zendesk_execute_view to run one. Zendesk REST: GET /views.json.
Annotations the server declares
- title: List views
- readOnlyHint: true
zendesk_searchUnified search across tickets, users, organizations and groups using Zendesk search syntax.No findings
Why it is in this group
- The name "zendesk_search" says "search": a word for reading.
Description, as the server wrote it Unified search across tickets, users, organizations and groups using Zendesk search syntax. Examples: `type:ticket status:open`, `type:user email:jane@acme.com`, `type:organization name:acme`. Zendesk REST: GET /search.json.
Annotations the server declares
- title: Search
- readOnlyHint: true
zendesk_search_usersFind users by name, email, phone, or other attributes.No findings
Why it is in this group
- The name "zendesk_search_users" says "search": a word for reading.
Description, as the server wrote it Find users by name, email, phone, or other attributes. Zendesk REST: GET /users/search.json.
Annotations the server declares
- title: Search users
- readOnlyHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.16.3. Values in angle brackets are yours to fill in.
claude mcp add --transport http zendesk https://zendesk.usefulapi.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__zendesk__zendesk_search",
"mcp__zendesk__zendesk_list_tickets",
"mcp__zendesk__zendesk_get_ticket",
"mcp__zendesk__zendesk_list_ticket_comments",
"mcp__zendesk__zendesk_current_user",
"mcp__zendesk__zendesk_get_user",
"mcp__zendesk__zendesk_search_users",
"mcp__zendesk__zendesk_list_organizations",
"mcp__zendesk__zendesk_get_organization",
"mcp__zendesk__zendesk_list_groups",
"mcp__zendesk__zendesk_list_views",
"mcp__zendesk__zendesk_list_macros",
"mcp__zendesk__zendesk_list_ticket_fields",
"mcp__zendesk__zendesk_get_ticket_metrics",
"mcp__zendesk__zendesk_list_satisfaction_ratings"
],
"ask": [
"mcp__zendesk__zendesk_execute_view"
],
"deny": [
"mcp__zendesk__zendesk_create_ticket",
"mcp__zendesk__zendesk_update_ticket",
"mcp__zendesk__zendesk_add_ticket_comment"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as zendesk. Review it before you use it.