All MCP servers

Zendesk (API token) MCP server

Zendesk Support tickets, users, organizations and Help Center articles, connected with an email + API token.

How it connects

New to MCP? What is an MCP server?

Runs on
Statio's runtime
Connects with
Credentials you paste in once: Zendesk Subdomain, Email, API Token
May connect to
*.zendesk.com
Category
CRM

Checked October 25, 2026 against the tools/list of @enterpret/zendesk-mcp-server 0.3.3 (reports itself as @digital4better/zendesk-mcp-server 0.1.0)

What it does

This server reads and works Zendesk Support tickets, looks up users and organizations, and reads and edits Help Center articles. It is @enterpret/zendesk-mcp-server, an MIT-licensed fork of Digital4Better's @fruggr/zendesk-mcp-server that kept API token sign-in after the original moved to a browser OAuth flow. Zendesk does not maintain it. Statio runs version 0.3.3 with an agent's email and API token, and every call goes to your own <subdomain>.zendesk.com.

Zendesk has announced its own MCP server, with early access promised for summer 2026. As of October 2026 I found no setup docs for it on Zendesk's help center.

Tools

In its default mode the server lists three tools. Each one takes an operation name and a params object, and dispatches to one of 38 operations. None of the three set a read-only hint.

ToolWhat it coversReads or changes
zendesk_tickets11 ticket operations: search, read, create, update, comment and tag.Both
zendesk_help_center22 Help Center operations: brands, articles, sections, translations, tags and attachments.Both
zendesk_users5 operations for users and organizations.Reads

The operations behind them:

ToolOperationWhat it doesReads or changes
zendesk_ticketsget_ticketOne ticket by ID, with its comments if asked.Reads
get_ticket_attachmentsA ticket's attachments, by ticket or attachment ID.Reads
search_ticketsTickets matching Zendesk search syntax, such as status:open assignee:me.Reads
list_ticketsTickets across brands, most recently updated first.Reads
get_linked_incidentsIncident tickets linked to a problem ticket.Reads
searchSearch across tickets, users and organizations.Reads
create_ticketOpens a ticket with subject, description, priority, type, assignee and tags.Changes
update_ticketChanges status, priority, type, assignee, group, subject, tags, custom fields or brand.Changes
add_private_noteAdds an internal note the requester can't see.Changes
add_public_commentAdds a comment the requester sees.Changes
manage_tagsAdds or removes tags on a ticket.Changes
zendesk_help_centerlist_brandsBrands and their Help Center subdomains.Reads
search_articlesArticle search across brands, including restricted articles.Reads
get_articleOne article, including restricted ones.Reads
list_categoriesHelp Center categories.Reads
list_sectionsSections, including internal ones.Reads
list_articlesArticle metadata, without bodies.Reads
list_article_translationsAn article's translations, metadata only.Reads
list_permission_groupsGuide permission groups.Reads
list_content_tagsGuide content tags.Reads
list_labelsArticle labels for one Help Center.Reads
list_user_segmentsUser segments.Reads
list_article_attachmentsAn article's attachments.Reads
get_article_outlineAn article's h1 to h3 outline with word counts.Reads
get_article_sectionOne section of an article.Reads
compare_translationsCompares the section structure of two locales of an article.Reads
create_articleCreates an article in a section.Changes
update_articleChanges metadata: draft, promoted, labels, tags, visibility, section.Changes
create_article_translationAdds a translation in a new locale.Changes
update_article_translationRewrites an article's title and body in one locale.Changes
update_article_sectionReplaces one section of an article and keeps the rest.Changes
create_content_tagCreates a content tag shared across brands.Changes
create_article_attachmentUploads an attachment to an article.Changes
zendesk_usersget_current_userThe user the token signs in as.Reads
search_usersUsers by name, email or search syntax.Reads
get_userOne user by ID.Reads
get_organizationOne organization by ID.Reads
list_organizationsOrganizations, paginated.Reads

There is no operation that deletes a ticket, user, organization or article, and none that creates or edits users or organizations.

Set it up

Both setups need an API token. You must be a Zendesk admin. In Admin Center, go to Apps and integrations, then APIs > API tokens, and click Add API token. Copy it when it appears, because Zendesk never shows the full token again. The server also needs your subdomain, the part before .zendesk.com, and the email of the agent account it should act as.

Zendesk is removing API tokens. Its help center says tokens unused for 30 days are deleted automatically from July 28, 2026, and every API token stops working by April 30, 2027. A token for an agent that only runs occasionally can disappear before then. The package also supports OAuth, through a browser sign-in on the first call or a ZENDESK_OAUTH_BEARER token from a broker, and that is the path to plan for.

Claude Code, directly:

bash
claude mcp add zendesk \
  -e ZENDESK_SUBDOMAIN=your-company \
  -e ZENDESK_EMAIL=agent@your-company.com \
  -e ZENDESK_API_TOKEN=your-token \
  -- npx -y @enterpret/zendesk-mcp-server@0.3.3

Cursor, directly, in ~/.cursor/mcp.json or .cursor/mcp.json:

json
{
  "mcpServers": {
    "zendesk": {
      "command": "npx",
      "args": ["-y", "@enterpret/zendesk-mcp-server@0.3.3"],
      "env": {
        "ZENDESK_SUBDOMAIN": "your-company",
        "ZENDESK_EMAIL": "agent@your-company.com",
        "ZENDESK_API_TOKEN": "${env:ZENDESK_API_TOKEN}"
      }
    }
  }
}

Run directly, the server takes flags after the package name. --read-only drops every write operation, --namespace tickets (repeatable) keeps only the tools you name, and --mode all lists the 38 operations as 38 separate tools. Add them to the args before an agent starts using it.

The client tutorials, How to add MCP servers to Claude Code and How to set up MCP servers in Cursor, explain config scopes and how to keep the token out of files you commit.

Through Statio: install Zendesk from the catalog, paste the subdomain, email and token under the server's Credentials, and grant tools under Permissions. A new server has no grants, so nobody can call it until you add some. The desktop app then writes your client configs. The manual entry is the local proxy URL with the server name from your dashboard, http://127.0.0.1:7777/zendesk/mcp, added in Claude Code with claude mcp add --transport http zendesk <url> or as a "url" in Cursor. Tools missing after that? Start a fresh session, then work through How to debug an MCP server that won't connect.

What to hold back

Start with what a grant means here. Statio grants access per tool, and this server has three tools. A grant on zendesk_tickets is a grant on all 11 ticket operations, so an agent that may search tickets may also reassign them, close them and reply to customers. Statio can't split reads from writes inside one tool. It can keep zendesk_tickets or zendesk_help_center from an agent completely, and it can grant zendesk_users alone, which only reads. If an agent needs ticket reads without ticket writes, the switch is the server's own --read-only flag, which the catalog image doesn't set, so that agent needs a direct connection with the flag for now.

add_public_comment is the write with the widest reach, because the requester sees the comment, posted as the agent account. A drafting agent should use add_private_note and leave sending to a person, but both sit behind the same tool, so you can't give it one without the other.

update_ticket changes status, assignee, group and custom fields. Your triggers and automations act on those changes as they would on a person's, so a loop that "tidies up" old tickets can solve ones customers are still waiting on.

On zendesk_help_center, update_article_translation and update_article_section rewrite published article text, and update_article can change an article's visibility. A support agent answering questions needs the reads only.

Ticket text arrives from customers. Anyone who can email your support address can put instructions in a ticket, and the agent reads them as part of its context. An agent that holds both the ticket reads and the write operations is the setup where that turns into actions.

The token is the last boundary. Help Center reads use the connected user's Zendesk permissions, so the email you configure decides what the agent can see. Make it a dedicated agent account with the narrowest role that does the job, and not an admin's. That only holds while the token stays out of reach, though. Zendesk's own docs say an API token isn't tied to a user and can be used to impersonate anyone in the account, including admins, by pairing it with their email. Through Statio the token is stored encrypted and added to each call, so the agent never sees it. In a local config, anything that can read the file can read it too.

MCP permissions covers how grants and denies combine.

Questions

Zendesk has announced one, the Zendesk MCP Server, with early access promised for summer 2026. As of October 2026 its help center has no setup docs for it. The server on this page is a community package, and Zendesk's MCP client feature is something else again: it lets Zendesk call other MCP servers from action flows.

Not in 0.3.3. No operation deletes a ticket, user, organization or article. It can create and update tickets, comments, tags, articles and translations.

Run directly, yes: add --read-only to the args and every write operation disappears from the tool descriptions. Through Statio, granting only zendesk_users gives a read-only connection, but ticket and article reads come bundled with writes.

Not past April 30, 2027, when Zendesk says every API token stops working. From July 28, 2026, a token unused for 30 days is deleted automatically.

What Statio adds

  • You choose which of its tools each agent may call. A tool you hold back is removed from that agent's tool list, and a call to it is refused.
  • The credentials stay encrypted in Statio, so they never sit in an agent config file.
  • Every call is recorded with the agent that made it, when, how long it took and whether it succeeded.
  • The outbound list above is enforced outside the server's container, so it cannot reach any other host.

Lock down your first tool in minutes.

Three MCP servers, one of them hosted, and 10,000 calls a month, free and without a card. If you outgrow it the next plan is $19.

Two steps: create your account, then install the desktop app on each machine that runs an AI client.