Package Exports
- @plugix/mcp-zendesk
- @plugix/mcp-zendesk/dist/index.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@plugix/mcp-zendesk) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Zendesk MCP Server
MCP server for Zendesk support ticket management and automation.
Features
- 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)
Installation
npm install
cp .env.example .envConfiguration
Edit .env:
# AI Integration API
API_URL=wss://api.ai-integration.com
API_TOKEN=sk_live_your_token_here
# Zendesk credentials
ZENDESK_SUBDOMAIN=yourcompany
ZENDESK_EMAIL=admin@yourcompany.com
ZENDESK_API_TOKEN=your_zendesk_api_tokenTo get a Zendesk API token:
- Go to Admin > Channels > API
- Enable Token Access
- Create new token
Usage
Development
npm run devProduction
npm run build
npm startDocker
docker build -t mcp-zendesk .
docker run --env-file .env mcp-zendeskTools Reference
get_ticket
Get a single ticket with full comment history.
Parameters:
| Name | Type | Required | Description |
|---|---|---|---|
| ticketId | number | Yes | The ticket ID |
Example:
{
"name": "get_ticket",
"arguments": {
"ticketId": 12345
}
}get_tickets
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:
{
"name": "get_tickets",
"arguments": {
"status": "open",
"priority": "high",
"limit": 10
}
}search_kb
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:
{
"name": "search_kb",
"arguments": {
"query": "password reset",
"limit": 5
}
}respond_ticket
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:
{
"name": "respond_ticket",
"arguments": {
"ticketId": 12345,
"body": "Thank you for contacting us...",
"status": "pending",
"confirmed": true
}
}classify_ticket
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 |
escalate_ticket
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
npm testLicense
MIT