Skip to main content
Glama
avg-ape

zendesk-ops-mcp

by avg-ape
README.md
# zendesk-ops-mcp

An MCP server that provides operational tooling over the Zendesk Support API — ticket triage, SLA monitoring, agent workload analysis, and system health audits. Built for use with [Claude Code](https://docs.anthropic.com/en/docs/claude-code) or Claude Desktop, it gives support ops teams a conversational interface to automate the manual toil of managing Zendesk workflows.

## Quick Start

```bash
git clone https://github.com/avg-ape/zendesk-ops-mcp.git
cd zendesk-ops-mcp
python3 -m venv .venv
source .venv/bin/activate
pip install -e .
```

Configure your Zendesk credentials:

```bash
cp .env.example .env
# Edit .env with your subdomain, email, and API token
```

You can get a free Zendesk trial at [zendesk.com/register](https://www.zendesk.com/register/). Enable API tokens in Admin Center > Apps & Integrations > APIs.

### Use with Claude Code

Add to your Claude Code MCP config (`~/.claude/settings.json`):

```json
{
  "mcpServers": {
    "zendesk-ops": {
      "command": "/path/to/zendesk-ops-mcp/.venv/bin/python",
      "args": ["-m", "zendesk_ops_mcp.server"],
      "env": {
        "ZENDESK_SUBDOMAIN": "your-subdomain",
        "ZENDESK_EMAIL": "your-email@example.com",
        "ZENDESK_API_TOKEN": "your-api-token"
      }
    }
  }
}
```

Then ask Claude things like:
- "Triage open tickets — what's missing assignees or priorities?"
- "Show me tickets that have gone stale in the last 12 hours"
- "What's the CSAT score over the last 30 days, broken down by agent?"
- "Audit our macros — are there any duplicates or unused ones?"
- "Which agents are overloaded right now?"

## Tools

| Tool | Description |
|------|-------------|
| `ticket_triage` | Find tickets missing assignees, groups, or priorities |
| `stale_ticket_report` | Tickets with no update in N hours, grouped by group/priority |
| `bulk_tag_tickets` | Tag tickets matching a search query (dry-run by default) |
| `bulk_close_tickets` | Close old solved/pending tickets (dry-run by default) |
| `sla_breach_report` | Tickets breaching or approaching SLA targets |
| `csat_summary` | Satisfaction scores over a period, by agent |
| `response_time_analysis` | First-response and resolution time averages |
| `agent_workload` | Open tickets per agent with priority breakdown |
| `group_distribution` | Ticket volume and status breakdown across groups |
| `macro_audit` | Find unused or duplicate macros |
| `trigger_review` | Audit active triggers and automations |

## Architecture

**Zendesk Client (`zendesk_client.py`):** Async HTTP client built on `httpx` with Basic auth (API token). Handles both offset pagination (`next_page`) and cursor pagination for search endpoints. Rate limit tracking via `X-RateLimit-Remaining` headers.

**Pydantic Models (`models.py`):** All tool outputs are typed Pydantic models with human-readable `__str__` methods. Claude gets structured data to reason about, not raw JSON.

**Dual Pagination:** Zendesk uses offset pagination for list endpoints (`/api/v2/tickets.json`) and search-specific pagination. The client handles both transparently via `get_all()` and `search()` methods.

## Development

```bash
# Install with dev dependencies
pip install -e ".[dev]"

# Run unit tests
pytest tests/ -v

# Run integration tests (requires Zendesk credentials)
pytest tests/ -v --integration
```

## License

MIT

TDQS

B3.4/5.0

Scored across 11 tools

Disambiguation5/5

Each tool targets a distinct operational concern: agent workload, satisfaction, group distribution, etc. No two tools have overlapping purposes.

Naming Consistency5/5

All tools use consistent snake_case naming with clear, descriptive verbs and nouns (e.g., agent_workload, csat_summary, bulk_close_tickets).

Tool Count5/5

11 tools is well within the optimal range for a domain-specific server, covering analytics and maintenance without redundancy.

Completeness4/5

Covers core Zendesk ops needs: workload, satisfaction, SLAs, stale tickets, triage, bulk actions, and audits. Minor gaps like individual ticket search or agent scheduling are acceptable given focus on operations.

Maintenance

ActivityInactive
ResponsivenessNo issues