@thoughtindustries/zendesk-mcp
v0.1.0
Published
MCP server wrapping the [Zendesk Support API](https://developer.zendesk.com/api-reference/), available via `npx` or as a Docker container.
Downloads
34
Readme
zendesk MCP Server
MCP server wrapping the Zendesk Support API, available via npx or as a Docker container.
Prerequisites
ZENDESK_EMAIL— your agent email with the literal/tokensuffix, e.g.[email protected]/tokenZENDESK_API_TOKEN— an API token from Admin Center > Apps and integrations > APIs > Zendesk API (enable token access and add a token)ZENDESK_BASE_URL— your instance root, e.g.https://acme.zendesk.com(no trailing path; the/api/v2prefix is built into each tool)
Auth uses Zendesk's API token scheme over HTTP Basic: the username is
{email}/tokenand the password is the API token.
Curated tools
| Tool | Endpoint | Description |
|------|----------|-------------|
| list_tickets | GET /api/v2/tickets.json | Paginated list of tickets (most recent first). |
| get_ticket | GET /api/v2/tickets/{ticket_id}.json | Show full details for a single ticket. |
| create_ticket | POST /api/v2/tickets.json | Create a ticket from a ticket object. |
| update_ticket | PUT /api/v2/tickets/{ticket_id}.json | Update a ticket (status, assignee, public/private reply, tags). |
| list_ticket_comments | GET /api/v2/tickets/{ticket_id}/comments.json | Read the full conversation on a ticket. |
| search | GET /api/v2/search.json | Unified search with Zendesk query syntax (tickets, users, orgs, groups). |
| list_users | GET /api/v2/users.json | Paginated list of users (filter by role). |
| get_user | GET /api/v2/users/{user_id}.json | Show a single user by ID. |
| search_users | GET /api/v2/users/search.json | Find users by name, email, phone, or external_id. |
| get_current_user | GET /api/v2/users/me.json | Show the authenticated identity (handy for verifying credentials). |
| list_organizations | GET /api/v2/organizations.json | Paginated list of organizations. |
| get_organization | GET /api/v2/organizations/{organization_id}.json | Show a single organization by ID. |
| search_articles | GET /api/v2/help_center/articles/search.json | Full-text search of Help Center articles. |
All other 27 endpoints (create/update/delete users & organizations, bulk ticket ops, audits, tags, views, groups, macros, ticket fields, satisfaction ratings, Help Center articles, etc.) are accessible via search_actions + execute_action.
Tip: prefer
searchfor attribute lookups, e.g.type:ticket status:open priority:high,type:user email:[email protected], ortype:organization name:Acme.
Quick start (npx, for Claude Desktop)
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"zendesk": {
"command": "npx",
"args": ["-y", "@thoughtindustries/zendesk-mcp"],
"env": {
"ZENDESK_EMAIL": "[email protected]/token",
"ZENDESK_API_TOKEN": "<your api token>",
"ZENDESK_BASE_URL": "https://acme.zendesk.com"
}
}
}
}Run locally (stdio, Docker)
docker build -t zendesk-mcp -f servers/zendesk-mcp/Dockerfile .
docker run -i --rm \
-e ZENDESK_EMAIL="[email protected]/token" \
-e ZENDESK_API_TOKEN="your-api-token" \
-e ZENDESK_BASE_URL="https://acme.zendesk.com" \
zendesk-mcpRun as HTTP server (shared deployment)
docker run -p 3000:3000 \
-e MCP_TRANSPORT=http \
-e ZENDESK_EMAIL="[email protected]/token" \
-e ZENDESK_API_TOKEN="your-api-token" \
-e ZENDESK_BASE_URL="https://acme.zendesk.com" \
zendesk-mcpThen connect via Streamable HTTP at http://your-host:3000/mcp.
