Zendesk Support MCP Server
Create a powerful Model Context Protocol (MCP) server for Zendesk Support in minutes with our AI Gateway. This guide walks you through setting up seamless customer service integration with enterprise-grade security and instant OAuth authentication.
About Zendesk Support API
Zendesk Support is the industry-leading customer service platform that helps businesses manage customer interactions across multiple channels. The API provides comprehensive access to tickets, users, organizations, automations, and analytics.
Key Capabilities
- Ticket Management: Create, update, and track support tickets
- User & Organization: Customer and company management
- Automation: Triggers, macros, and views
- Knowledge Base: Help center articles
- SLA Management: Service level tracking
- Custom Fields: Extended data model
- Multi-channel: Email, chat, voice integration
- Analytics: Performance metrics and insights
API Features
- REST API v2: Comprehensive operations
- OAuth 2.0: Secure authentication
- Webhooks: Real-time events
- Bulk Operations: Efficient data handling
- Search API: Advanced querying
- Incremental Export: Data synchronization
- Rate Limiting: 700 requests/minute
- Pagination: Efficient data retrieval
What You Can Do with Zendesk Support MCP Server
The MCP server transforms Zendesk Support API into a natural language interface, enabling AI agents to:
Ticket Management
-
Ticket Operations
- "Create urgent support ticket"
- "Update ticket priority to high"
- "Assign ticket to tech team"
- "Close resolved tickets"
-
Ticket Search
- "Show all open tickets"
- "Find tickets from VIP customers"
- "List overdue tickets"
- "Search tickets about billing"
-
Bulk Actions
- "Update 50 tickets to solved"
- "Assign all new tickets"
- "Add tag to filtered tickets"
- "Merge duplicate tickets"
Customer Management
-
User Operations
- "Create customer profile"
- "Update user email address"
- "Merge duplicate users"
- "Suspend spam accounts"
-
Organization Management
- "Create company account"
- "Link users to organization"
- "Update company details"
- "Set organization tags"
-
Contact Information
- "Add phone number"
- "Update timezone"
- "Set preferred language"
- "Configure notifications"
Communication
-
Ticket Comments
- "Reply to customer"
- "Add internal note"
- "Send public update"
- "Include attachments"
-
Macros & Templates
- "Apply refund macro"
- "Use greeting template"
- "Send canned response"
- "Execute macro chain"
-
Email Integration
- "CC additional recipients"
- "BCC team members"
- "Set reply-to address"
- "Configure signatures"
Automation
-
Triggers
- "Create auto-response trigger"
- "Set escalation rules"
- "Configure SLA alerts"
- "Build routing logic"
-
Automations
- "Close inactive tickets"
- "Update stale tickets"
- "Send follow-up surveys"
- "Archive old tickets"
-
Views
- "Create VIP ticket view"
- "Build SLA breach view"
- "Design team dashboard"
- "Configure filters"
Analytics & Reporting
-
Ticket Analytics
- "Show resolution time"
- "Track ticket volume"
- "Measure satisfaction"
- "Monitor SLA compliance"
-
Agent Performance
- "Track response times"
- "Measure productivity"
- "Show ticket counts"
- "Calculate efficiency"
-
Customer Insights
- "Analyze satisfaction trends"
- "Track repeat contacts"
- "Measure resolution rates"
- "Identify pain points"
Categorization
-
Tags Management
- "Add product tags"
- "Create tag hierarchy"
- "Apply bulk tags"
- "Clean up unused tags"
-
Custom Fields
- "Create dropdown field"
- "Add date picker"
- "Build checkbox group"
- "Set field dependencies"
-
Forms
- "Design intake form"
- "Create ticket template"
- "Configure conditionals"
- "Set required fields"
SLA Management
-
SLA Policies
- "Create priority SLA"
- "Set response targets"
- "Configure escalations"
- "Define business hours"
-
SLA Tracking
- "Show SLA breaches"
- "Monitor at-risk tickets"
- "Track compliance rate"
- "Alert on violations"
-
Escalation
- "Escalate to manager"
- "Notify stakeholders"
- "Update priority"
- "Reassign agent"
Search & Discovery
-
Advanced Search
- "Search by multiple criteria"
- "Use search operators"
- "Filter by date range"
- "Save search queries"
-
Saved Searches
- "Create team searches"
- "Share with agents"
- "Schedule reports"
- "Export results"
-
Quick Filters
- "Filter by status"
- "Sort by priority"
- "Group by requester"
- "Show by channel"
Prerequisites
- Access to Cequence AI Gateway
- Zendesk Support account (Team or above)
- Admin or Agent permissions
- OAuth application credentials
Step 1: Create Zendesk OAuth Application
1.1 Access Admin Center
- Log in to Zendesk Support
- Go to Admin Center > Apps and integrations
- Select APIs > Zendesk API
- Click OAuth Clients tab
1.2 Create OAuth Client
- Click Add OAuth Client
- Fill in details:
- Client Name: "AI Gateway MCP Integration"
- Company: Your company name
- Description: "MCP server for AI-powered support"
- Redirect URLs:
https://auth.aigateway.cequence.ai/v1/outbound/oauth/callback
1.3 Configure Permissions
- Set client type to Confidential
- Select scopes:
read
- Read access to all resourceswrite
- Write access to all resourcestickets:read
- Read ticketstickets:write
- Manage ticketsusers:read
- Read usersorganizations:read
- Read organizations
1.4 Save Credentials
- Click Save
- Copy Client ID
- Copy Client Secret
- Note your Subdomain (e.g.,
company.zendesk.com
)
Step 2-4: Standard Setup
Follow standard steps to access AI Gateway, find Zendesk Support API, and create MCP server.
Step 5: Configure API Endpoints
- Base URL:
https://{subdomain}.zendesk.com/api/v2
- Select endpoints:
- Tickets endpoints
- Users endpoints
- Organizations endpoints
- Search endpoints
- Click Next
Step 6: MCP Server Configuration
- Name: "Zendesk Support"
- Description: "Customer service and ticketing"
- Configure production mode
- Click Next
Step 7: Configure Authentication
- Authentication Type: OAuth 2.0
- Authorization URL:
https://{subdomain}.zendesk.com/oauth/authorizations/new
- Token URL:
https://{subdomain}.zendesk.com/oauth/tokens
- Enter Client ID and Secret
- Select required scopes
Available Zendesk OAuth Scopes
Core Scopes
-
read
- Read all resources
- View configurations
- Access reports
- Search data
-
write
- Create resources
- Update data
- Delete items
- Manage settings
Resource-Specific Scopes
-
tickets:read
- View tickets
- Read comments
- Access attachments
- See audit logs
-
tickets:write
- Create tickets
- Update status
- Add comments
- Manage tags
-
users:read
- View user profiles
- Access contact info
- Read custom fields
- See organizations
-
users:write
- Create users
- Update profiles
- Manage roles
- Set permissions
Recommended Scope Combinations
For Support Agents:
read
tickets:write
users:read
organizations:read
For Administrators:
read
write
tickets:write
users:write
organizations:write
auditlogs:read
Step 8-10: Complete Setup
Configure security, choose deployment, and deploy.
Using Your Zendesk Support MCP Server
With Claude Desktop
{
"servers": {
"zendesk-support": {
"url": "your-mcp-server-url",
"auth": {
"type": "oauth2",
"client_id": "your-client-id"
}
}
}
}
Natural Language Commands
- "Create high priority ticket for customer issue"
- "Show all open tickets assigned to me"
- "Update ticket #12345 status to pending"
- "Find tickets from Acme Corp this week"
- "Apply refund macro to selected ticket"
API Integration Example
// Initialize MCP client
const mcpClient = new MCPClient({
serverUrl: 'your-mcp-server-url',
auth: {
type: 'oauth2',
token: 'access-token'
}
});
// Create a support ticket
const ticket = await mcpClient.zendesk.tickets.create({
ticket: {
subject: 'Unable to process payment',
comment: {
body: 'Customer reported error when trying to complete purchase. Error code: PAY-500',
public: true
},
priority: 'high',
type: 'problem',
tags: ['payment', 'urgent', 'error-500'],
custom_fields: [
{ id: 360000123456, value: 'payment_gateway' },
{ id: 360000123457, value: 'premium' }
],
requester: {
name: 'John Doe',
email: 'john.doe@example.com'
}
}
});
// Update ticket with internal note
await mcpClient.zendesk.tickets.update({
id: ticket.ticket.id,
ticket: {
comment: {
body: 'Escalated to payment team. Possible gateway timeout issue.',
public: false,
author_id: agentId
},
assignee_id: paymentTeamId,
group_id: paymentGroupId
}
});
// Search for related tickets
const relatedTickets = await mcpClient.zendesk.search.query({
query: 'type:problem tags:payment created>1week',
sort_by: 'created_at',
sort_order: 'desc'
});
// Create or update user
const user = await mcpClient.zendesk.users.createOrUpdate({
user: {
email: 'john.doe@example.com',
name: 'John Doe',
role: 'end-user',
organization_id: organizationId,
user_fields: {
customer_type: 'premium',
account_manager: 'Sarah Smith'
},
tags: ['vip', 'premium_support']
}
});
// Apply macro to ticket
await mcpClient.zendesk.macros.apply({
id: macroId,
ticket_id: ticket.ticket.id
});
// Create automation trigger
const trigger = await mcpClient.zendesk.triggers.create({
trigger: {
title: 'Auto-assign payment issues',
active: true,
conditions: {
all: [
{ field: 'status', operator: 'is', value: 'new' },
{ field: 'tags', operator: 'includes', value: 'payment' }
]
},
actions: [
{ field: 'group_id', value: paymentGroupId },
{ field: 'priority', value: 'high' },
{ field: 'notification_user', value: [
paymentManagerId,
'Payment issue requires attention: {{ticket.title}}'
]}
]
}
});
// Get ticket metrics
const metrics = await mcpClient.zendesk.tickets.metrics({
ticket_id: ticket.ticket.id
});
console.log(`First response time: ${metrics.reply_time_in_minutes.calendar} minutes`);
console.log(`Resolution time: ${metrics.full_resolution_time_in_minutes.calendar} minutes`);
// Bulk update tickets
const bulkUpdate = await mcpClient.zendesk.tickets.updateMany({
ids: [123, 456, 789],
ticket: {
status: 'pending',
tags: ['awaiting_customer'],
comment: {
body: 'We are investigating this issue and will update you soon.',
public: true
}
}
});
// Create SLA policy
const sla = await mcpClient.zendesk.slas.policies.create({
sla_policy: {
title: 'Premium Support SLA',
description: 'SLA for premium customers',
active: true,
filter: {
all: [
{ field: 'custom_fields_360000123457', operator: 'is', value: 'premium' }
]
},
policy_metrics: [
{
priority: 'urgent',
metric: 'first_reply_time',
target: 30,
business_hours: false
},
{
priority: 'high',
metric: 'first_reply_time',
target: 120,
business_hours: true
}
]
}
});
// Get satisfaction ratings
const satisfaction = await mcpClient.zendesk.satisfaction.ratings({
start_time: '2025-01-01',
end_time: '2025-01-31',
score: 'good'
});
Common Use Cases
Customer Support
- Ticket management and routing
- Multi-channel support
- Customer communication
- Issue escalation
Help Desk Operations
- IT service management
- Internal support
- Asset tracking
- Change requests
SLA Management
- Response time tracking
- Escalation workflows
- Performance monitoring
- Compliance reporting
Knowledge Management
- FAQ creation
- Solution articles
- Self-service portal
- Content organization
Security Best Practices
-
OAuth Security:
- Use minimal scopes required
- Rotate credentials regularly
- Implement IP restrictions
- Monitor token usage
-
Data Protection:
- Encrypt sensitive data
- Mask personal information
- Implement retention policies
- Audit data access
-
Access Control:
- Role-based permissions
- Group-level restrictions
- Custom role definitions
- Regular access reviews
Troubleshooting
Common Issues
-
Authentication Errors
- Verify OAuth credentials
- Check subdomain URL
- Validate redirect URI
- Review token expiration
-
Rate Limiting
- Monitor API usage
- Implement exponential backoff
- Use bulk endpoints
- Cache frequently accessed data
-
Data Sync Issues
- Use incremental export
- Handle pagination properly
- Check field mappings
- Validate data types
Getting Help
- Documentation: AI Gateway Docs
- Support: support@cequence.ai
- Zendesk API: developer.zendesk.com