usefulapi

Zendesk MCP server. Read tickets, users, orgs, macros and satisfaction ratings; create, update and comment on tickets.

Claude

  1. Open Settings → Connectors → Add custom connector
  2. Paste this URL:
    https://zendesk.usefulapi.io/mcp
  3. Authenticate with Zendesk when prompted

Cursor · VS Code · Windsurf · Cline

Add to your MCP config, then reload & authorize:

{
  "mcpServers": {
    "zendesk": {
      "url": "https://zendesk.usefulapi.io/mcp"
    }
  }
}
live21 toolsFree 100 tool calls / monthPro $9/mo · $90/yr

Tools 21

ToolTypeWhat it does
zendesk_searchread
Search
Unified search across tickets, users, organizations and groups using Zendesk search syntax. Examples: `type:ticket status:open`, `type:user email:[email protected]`, `type:organization name:acme`. Zendesk REST: GET /search.json.
zendesk_list_ticketsread
List tickets
List recent tickets (offset pagination). Zendesk REST: GET /tickets.json.
zendesk_get_ticketread
Get ticket
Fetch a single ticket by id. Zendesk REST: GET /tickets/{id}.json.
zendesk_list_ticket_commentsread
List ticket comments
List the comments (public replies and internal notes) on a ticket, oldest first. Zendesk REST: GET /tickets/{id}/comments.json.
zendesk_current_userread
Current user (whoami)
Return the currently authenticated user — a quick way to verify credentials and subdomain. Zendesk REST: GET /users/me.json.
zendesk_get_userread
Get user
Fetch a single user by id. Zendesk REST: GET /users/{id}.json.
zendesk_search_usersread
Search users
Find users by name, email, phone, or other attributes. Zendesk REST: GET /users/search.json.
zendesk_list_organizationsread
List organizations
List organizations (offset pagination). Zendesk REST: GET /organizations.json.
zendesk_get_organizationread
Get organization
Fetch a single organization by id. Zendesk REST: GET /organizations/{id}.json.
zendesk_list_groupsread
List groups
List agent groups. Zendesk REST: GET /groups.json.
zendesk_list_viewsread
List views
List saved ticket views (curated ticket lists). Use zendesk_execute_view to run one. Zendesk REST: GET /views.json.
zendesk_execute_viewread
Execute view
Run a saved view by id and return the matching tickets. Zendesk REST: GET /views/{id}/execute.json.
zendesk_list_macrosread
List macros
List macros (reusable sets of ticket actions/replies agents apply). Zendesk REST: GET /macros.json.
zendesk_list_ticket_fieldsread
List ticket fields
List all standard and custom ticket fields — useful for discovering field ids/values before creating or updating tickets. Zendesk REST: GET /ticket_fields.json.
zendesk_get_ticket_metricsread
Get ticket metrics
Fetch SLA / response / resolution time metrics for a ticket. Zendesk REST: GET /tickets/{id}/metrics.json.
zendesk_list_satisfaction_ratingsread
List satisfaction ratings
List customer satisfaction (CSAT) ratings, optionally filtered by score. Zendesk REST: GET /satisfaction_ratings.json.
zendesk_create_ticketwrite
Create ticket
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.
zendesk_update_ticketwrite
Update ticket
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.
zendesk_add_ticket_commentwrite
Add ticket comment
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.
zendesk_usage_statusmeta
Usage status (free-tier meter)
Report the caller's current free-tier usage this month: calls used, monthly limit, remaining, and whether the cap is reached.
zendesk_upgrademeta
Upgrade to Pro (unlimited)
Subscribe to Pro for unlimited tool calls, monthly ($9) or yearly ($90). Returns a Stripe Checkout link.

Pricing

PlanPriceLimit
Free$0100 tool calls / month
Pro$9/mo · $90/yrUnlimited

This is a Model Context Protocol endpoint — meant to be connected from an AI client, not opened in a browser. An invalid_token response at the URL is the auth gate working as designed; clients authenticate automatically.