MCP Server for Zendesk - Ticket Management, Knowledge Base, Support Automation
npm install @plugix/mcp-zendeskMCP server for Zendesk support ticket management and automation.
- get_ticket - Get ticket with full history
- get_tickets - Search and list tickets
- search_kb - Search Knowledge Base
- respond_ticket - Send response (with confirmation)
- classify_ticket - Add tags/priority
- escalate_ticket - Escalate to higher tier (with confirmation)
``bash`
npm install
cp .env.example .env
Edit .env:
`envAI Integration API
API_URL=wss://api.ai-integration.com
API_TOKEN=sk_live_your_token_here
To get a Zendesk API token:
1. Go to Admin > Channels > API
2. Enable Token Access
3. Create new token
Usage
$3
`bash
npm run dev
`$3
`bash
npm run build
npm start
`$3
`bash
docker build -t mcp-zendesk .
docker run --env-file .env mcp-zendesk
`Tools Reference
$3
Get a single ticket with full comment history.
Parameters:
| Name | Type | Required | Description |
|------|------|----------|-------------|
| ticketId | number | Yes | The ticket ID |
Example:
`json
{
"name": "get_ticket",
"arguments": {
"ticketId": 12345
}
}
`$3
Search and list tickets with filters.
Parameters:
| Name | Type | Description |
|------|------|-------------|
| status | string | Filter: new, open, pending, hold, solved |
| priority | string | Filter: low, normal, high, urgent |
| limit | number | Max results (default: 25) |
Example:
`json
{
"name": "get_tickets",
"arguments": {
"status": "open",
"priority": "high",
"limit": 10
}
}
`$3
Search the Knowledge Base for relevant articles.
Parameters:
| Name | Type | Required | Description |
|------|------|----------|-------------|
| query | string | Yes | Search query |
| limit | number | No | Max results (default: 10) |
Example:
`json
{
"name": "search_kb",
"arguments": {
"query": "password reset",
"limit": 5
}
}
`$3
Send a response to a ticket. Requires confirmation.
Parameters:
| Name | Type | Required | Description |
|------|------|----------|-------------|
| ticketId | number | Yes | The ticket ID |
| body | string | Yes | Response message |
| public | boolean | No | Visible to requester (default: true) |
| status | string | No | New status: open, pending, solved |
| confirmed | boolean | Yes | Must be
true to send |Example:
`json
{
"name": "respond_ticket",
"arguments": {
"ticketId": 12345,
"body": "Thank you for contacting us...",
"status": "pending",
"confirmed": true
}
}
`$3
Classify a ticket by adding tags or changing priority.
Parameters:
| Name | Type | Required | Description |
|------|------|----------|-------------|
| ticketId | number | Yes | The ticket ID |
| tags | array | No | Tags to add |
| priority | string | No | New priority |
| groupId | number | No | Assign to group |
$3
Escalate a ticket to a higher-tier support group. Requires confirmation.
Parameters:
| Name | Type | Required | Description |
|------|------|----------|-------------|
| ticketId | number | Yes | The ticket ID |
| groupId | number | Yes | Target group ID |
| note | string | No | Internal escalation note |
| confirmed | boolean | Yes | Must be
true to escalate |API Permissions
Required Zendesk API permissions:
- Tickets: read, write
- Users: read
- Search: read
- Help Center: read (for KB search)
Testing
`bash
npm test
``MIT