# zendesk-mcp

Gives your coding agent Zendesk tools: read and search tickets, post replies, apply macros, log time, all from the chat.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 7
- Author: michaelrice
- License: Apache-2.0 · policy=link-only · description only; the file stays with the author
- Source: https://github.com/michaelrice/zendesk-mcp
- Updated: 2026-10-08
- HTML: https://affpapa.org/en/nevibecode/mcp/zendesk-mcp

## What it 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.

## Requirements
- Needs: Python and uv (commands run via uvx)

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add zendesk-mcp -- uvx zendesk-mcp
```
uvx runs the command named after the package; if the README names another one, use uvx --from zendesk-mcp <command>

### Codex

**Platform CLI**
```bash
codex mcp add zendesk-mcp -- uvx zendesk-mcp
```
uvx runs the command named after the package; if the README names another one, use uvx --from zendesk-mcp <command>

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "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>

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "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>

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add zendesk-mcp uvx zendesk-mcp
```
uvx runs the command named after the package; if the README names another one, use uvx --from zendesk-mcp <command>

## When to use it
- 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
- 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

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
