zendesk-mcp — Claude Code MCP server for Zendesk tickets
Gives your coding agent Zendesk tools: read and search tickets, post replies, apply macros, log time, all from the chat.
claude mcp add zendesk-mcp -- uvx zendesk-mcpWhat zendesk-mcp does
The server registers Zendesk ticket tools with your MCP client. Agents can search and page through tickets, pull comments and attachments, open new tickets, edit fields, publish public replies or internal notes, set status, assign agents, work with views and macros, and look up users, groups and organizations. Two MCP prompts ship with it: analyze-ticket and draft-ticket-response. A ticket can also be turned into a Markdown issue draft for GitLab, GitHub or Jira.
You need Python 3.10 or newer and a Zendesk OAuth client, which a Zendesk admin creates in the API section with http://localhost:8787/callback as the redirect URL and the read write scopes. Setup is interactive: .venv/bin/python -m zendesk_mcp setup asks for the subdomain, client ID and secret, opens a browser, then stores the token in ~/.config/zendesk-mcp/config.json at mode 0600. No browser on the machine? The URL is printed so you can approve it elsewhere and paste the redirect back. Access tokens renew on their own; a refresh token that expires or a revoked grant means running setup again.
When you register the server with Claude, pass the absolute path to the venv python. Claude starts it in a fresh shell that does not inherit an activated venv, so a bare python fails to import zendesk_mcp. Write tools stay out of the default allow-list and Claude asks before each call.
What it helps with
- find a ticket and pull its thread with attachments
- reply to a customer and leave an internal note
- change ticket status and assign it to an agent
- apply a macro and add tags in bulk
- turn a ticket into an issue draft for GitLab or Jira
Example prompts for the agent
- Search Zendesk for tickets mentioning “billing” from this week and list their statuses
- Read ticket 4821, figure out what went wrong and draft a reply to the customer
- Set ticket 4821 to open and assign it to the support group
How to install zendesk-mcp
Platform CLI
claude mcp add zendesk-mcp -- uvx zendesk-mcpuvx runs the command named after the package; if the README names another one, use uvx --from zendesk-mcp <command>
Platform CLI
codex mcp add zendesk-mcp -- uvx zendesk-mcpuvx runs the command named after the package; if the README names another one, use uvx --from zendesk-mcp <command>
Config file
{
"mcpServers": {
"zendesk-mcp": {
"command": "uvx",
"args": [
"zendesk-mcp"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from zendesk-mcp <command>
Config file
{
"servers": {
"zendesk-mcp": {
"type": "stdio",
"command": "uvx",
"args": [
"zendesk-mcp"
]
}
}
}uvx runs the command named after the package; if the README names another one, use uvx --from zendesk-mcp <command>
Platform CLI
gemini mcp add zendesk-mcp uvx zendesk-mcpuvx runs the command named after the package; if the README names another one, use uvx --from zendesk-mcp <command>
Step by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about zendesk-mcp
How do I install zendesk-mcp in Claude Code?
Run claude mcp add zendesk-mcp -- uvx zendesk-mcp, then complete the OAuth setup with .venv/bin/python -m zendesk_mcp setup.
What does zendesk-mcp do?
It exposes Zendesk ticket tools to your agent: search and read, replies, notes, status changes, assignment, macros, tags and time tracking. It can also format a ticket as an issue draft for a tracker.
Can I stop the agent from writing to tickets?
Yes. Set "read_only": true in ~/.config/zendesk-mcp/config.json or ZENDESK_MCP_READ_ONLY=true in the server environment, and no write tools get registered.