Zendesk Support
About
Integrates with Zendesk to enable ticket retrieval, creation, updating, and searching directly from conversation interfaces for streamlined customer support workflows.
Details
- Author
- koundinya
- Repository
- koundinya/zd-mcp-server
- GitHub stars
- 3
- Downloads
- 264
- License
- MIT License
- Categories
- Productivity, Developer Tools, Design, Workplace, AI, Search, Security, Communication
- Tags
- #integration
Jump to
- 🎫 Complete Ticket Management: Create, read, update, and search Zendesk tickets
- 💬 Comments & Notes: Add public comments and private internal notes
- 🔍 Advanced Search: Search tickets using Zendesk's powerful query syntax
- 🔗 Incident Management: Retrieve and manage linked incident tickets
- 🏷️ Tag Management: Add and manage ticket tags and metadata
- 🔒 Secure Authentication: Uses Zendesk API tokens for secure access
- 🚀 Easy Installation: Available via npm, npx, or manual setup
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
Zendesk SupportCommand (node, npx, python, etc.)npxArguments-
Argument 1
-y -
Argument 2
zd-mcp-server
Environment-
ZENDESK_EMAIL
your-email@company.com -
ZENDESK_TOKEN
your-zendesk-api-token -
ZENDESK_SUBDOMAIN
your-company
Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
-
Argument 1
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
npm install -g zd-mcp-server
npx zd-mcp-server
git clone https://github.com/koundinya/zd-mcp-server.git
cd zd-mcp-server
npm install
npm run build
Set these environment variables in your system or MCP client configuration:
export ZENDESK_EMAIL="your-email@company.com"
export ZENDESK_TOKEN="your-zendesk-api-token"
export ZENDESK_SUBDOMAIN="your-company" # from https://your-company.zendesk.com
Add to your Claude Desktop configuration file:
Location:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
- Windows: %APPDATA%/Claude/claude_desktop_config.json
Configuration:
{
"mcpServers": {
"zendesk": {
"command": "npx",
"args": ["-y", "zd-mcp-server"],
"env": {
"ZENDESK_EMAIL": "your-email@company.com",
"ZENDESK_TOKEN": "your-zendesk-api-token",
"ZENDESK_SUBDOMAIN": "your-company"
}
}
}
}
Alternative (if installed globally):
{
"mcpServers": {
"zendesk": {
"command": "zd-mcp-server",
"env": {
"ZENDESK_EMAIL": "your-email@company.com",
"ZENDESK_TOKEN": "your-zendesk-api-token",
"ZENDESK_SUBDOMAIN": "your-company"
}
}
}
}
Add to ~/.cursor/mcp.json or .cursor/mcp.json in your project:
{
"mcpServers": {
"zendesk": {
"command": "npx",
"args": ["-y", "zd-mcp-server"],
"env": {
"ZENDESK_EMAIL": "your-email@company.com",
"ZENDESK_TOKEN": "your-zendesk-api-token",
"ZENDESK_SUBDOMAIN": "your-company"
}
}
}
}
Once configured, you can use natural language with your AI assistant:
```bash
zendesk_get_ticket
Retrieve a ticket by ID.
zendesk_get_ticket_details
Get detailed ticket with comments.
zendesk_search
Search tickets with query syntax.
zendesk_create_ticket
Create a new ticket.
zendesk_update_ticket
Update ticket properties.
zendesk_add_private_note
Add internal agent notes.
zendesk_add_public_note
Add public customer comments.
zendesk_get_linked_incidents
Get incident tickets linked to problems.
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"zendesk support": {
"env": {
"ZENDESK_EMAIL": "your-email@company.com",
"ZENDESK_TOKEN": "your-zendesk-api-token",
"ZENDESK_SUBDOMAIN": "your-company"
},
"args": [
"-y",
"zd-mcp-server"
],
"command": "npx"
}
}
}
Linux
{
"env": {
"ZENDESK_EMAIL": "your-email@company.com",
"ZENDESK_TOKEN": "your-zendesk-api-token",
"ZENDESK_SUBDOMAIN": "your-company"
},
"args": [
"-y",
"zd-mcp-server"
],
"command": "npx"
}
Macos
{
"env": {
"ZENDESK_EMAIL": "your-email@company.com",
"ZENDESK_TOKEN": "your-zendesk-api-token",
"ZENDESK_SUBDOMAIN": "your-company"
},
"args": [
"-y",
"zd-mcp-server"
],
"command": "npx"
}
Windows
{
"env": {
"ZENDESK_EMAIL": "your-email@company.com",
"ZENDESK_TOKEN": "your-zendesk-api-token",
"ZENDESK_SUBDOMAIN": "your-company"
},
"args": [
"/c",
"npx",
"-y",
"zd-mcp-server"
],
"command": "cmd"
}
Zendesk MCP Server
A Model Context Protocol (MCP) server that provides AI assistants like Claude with seamless integration to Zendesk Support. Enables natural language interactions with Zendesk tickets, allowing you to search, create, update, and manage support tickets through conversational AI.
✨ Features
- 🎫 Complete Ticket Management: Create, read, update, and search Zendesk tickets
- 💬 Comments & Notes: Add public comments and private internal notes
- 🔍 Advanced Search: Search tickets using Zendesk's powerful query syntax
- 🔗 Incident Management: Retrieve and manage linked incident tickets
- 🏷️ Tag Management: Add and manage ticket tags and metadata
- 🔒 Secure Authentication: Uses Zendesk API tokens for secure access
- 🚀 Easy Installation: Available via npm, npx, or manual setup
🚀 Quick Start
Option 1: NPM Installation (Recommended)
npm install -g zd-mcp-server
Option 2: Use with npx (No Installation)
npx zd-mcp-server
Option 3: Development Setup
git clone https://github.com/koundinya/zd-mcp-server.git
cd zd-mcp-server
npm install
npm run build
⚙️ Configuration
Environment Variables
Set these environment variables in your system or MCP client configuration:
export ZENDESK_EMAIL="your-email@company.com"
export ZENDESK_TOKEN="your-zendesk-api-token"
export ZENDESK_SUBDOMAIN="your-company" # from https://your-company.zendesk.com
Claude Desktop Setup
Add to your Claude Desktop configuration file:
Location:
- macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
- Windows: %APPDATA%/Claude/claude_desktop_config.json
Configuration:
{
"mcpServers": {
"zendesk": {
"command": "npx",
"args": ["-y", "zd-mcp-server"],
"env": {
"ZENDESK_EMAIL": "your-email@company.com",
"ZENDESK_TOKEN": "your-zendesk-api-token",
"ZENDESK_SUBDOMAIN": "your-company"
}
}
}
}
Alternative (if installed globally):
{
"mcpServers": {
"zendesk": {
"command": "zd-mcp-server",
"env": {
"ZENDESK_EMAIL": "your-email@company.com",
"ZENDESK_TOKEN": "your-zendesk-api-token",
"ZENDESK_SUBDOMAIN": "your-company"
}
}
}
}
Cursor IDE Setup
Add to ~/.cursor/mcp.json or .cursor/mcp.json in your project:
{
"mcpServers": {
"zendesk": {
"command": "npx",
"args": ["-y", "zd-mcp-server"],
"env": {
"ZENDESK_EMAIL": "your-email@company.com",
"ZENDESK_TOKEN": "your-zendesk-api-token",
"ZENDESK_SUBDOMAIN": "your-company"
}
}
}
}
Other MCP Clients
For other MCP-compatible clients (Cline, Windsurf, etc.), refer to their documentation for MCP server configuration. The server supports standard MCP protocols.
🛠️ Available Tools
| Tool | Description | Example Usage |
|------|-------------|---------------|
| zendesk_get_ticket | Retrieve a ticket by ID | "Get ticket #12345" |
| zendesk_get_ticket_details | Get detailed ticket with comments | "Show me full details for ticket #67890" |
| zendesk_search | Search tickets with query syntax | "Find all urgent tickets from last week" |
| zendesk_create_ticket | Create a new ticket | "Create a high priority ticket for login issues" |
| zendesk_update_ticket | Update ticket properties | "Set ticket #555 to solved status" |
| zendesk_add_private_note | Add internal agent notes | "Add a private note about investigation progress" |
| zendesk_add_public_note | Add public customer comments | "Reply to customer with solution steps" |
| zendesk_get_linked_incidents | Get incident tickets linked to problems | "Show incidents related to this problem ticket" |
💬 Usage Examples
Once configured, you can use natural language with your AI assistant:
Ticket Management
"Show me all high priority tickets assigned to me"
"Create a new ticket: Customer can't access dashboard, priority urgent"
"Update ticket #12345 status to pending and add a note about waiting for customer response"
Search & Discovery
"Find all solved tickets from this week tagged with 'billing'"
"Search for open tickets containing 'password reset'"
"Show me tickets created by john@company.com in the last 30 days"
Customer Communication
"Add a public comment to ticket #789: 'We've identified the issue and working on a fix'"
"Add a private note: 'Customer confirmed the workaround is effective'"
Advanced Queries
"Find all problem tickets that have linked incidents"
"Show me escalated tickets that haven't been updated in 2 days"
"Get details for ticket #456 including all comments and history"
🔑 Authentication Setup
1. Generate API Token
1. Log in to your Zendesk account
2. Go to Admin Center → Apps and integrations → APIs → Zendesk API
3. Click Add API token
4. Add description: "MCP Server Integration"
5. Click Create and copy the token
6. Important: Save this token securely - you won't see it again
2. Find Your Subdomain
Your Zendesk URL format: https://YOUR-SUBDOMAIN.zendesk.com
Use YOUR-SUBDOMAIN as the ZENDESK_SUBDOMAIN value.
3. Required Permissions
Ensure your Zendesk user account has:
- Agent role (minimum)
- Ticket access permissions
- API access enabled
🔧 Development
Project Structure
zd-mcp-server/
├── src/
│ ├── index.ts # Server entry point
│ └── tools/
│ └── index.ts # Zendesk tool implementations
├── dist/ # Compiled JavaScript
├── package.json
├── tsconfig.json
└── README.md
Building from Source
git clone https://github.com/koundinya/zd-mcp-server.git
cd zd-mcp-server
npm install
npm run build
Running Locally
# Start the server
npm start
Development mode with auto-rebuild
npm run dev
Testing
# Test with MCP Inspector (if available)
npx @modelcontextprotocol/inspector zd-mcp-server
Or test the built version
npx @modelcontextprotocol/inspector node dist/index.js
🔍 Troubleshooting
Common Issues
❌ "Authentication failed" errors
- Verify your API token is correct and hasn't expired
- Ensure your email address matches your Zendesk account
- Check that your subdomain is spelled correctly (no .zendesk.com suffix)
❌ "Permission denied" errors
- Verify your Zendesk user has Agent permissions or higher
- Ensure API access is enabled for your account
- Check if your token has the required scopes
❌ "Server not found" errors
- Ensure you've installed the package: npm install -g zd-mcp-server
- Try using npx instead: npx zd-mcp-server
- Check that your MCP client configuration file syntax is correct
❌ "Environment variables not set" errors
- Verify all three environment variables are set: ZENDESK_EMAIL, ZENDESK_TOKEN, ZENDESK_SUBDOMAIN
- Restart your MCP client after setting environment variables
- Check for typos in environment variable names
Debug Mode
Enable debug logging:
DEBUG=zd-mcp-server:* zd-mcp-server
Log Files
Check MCP client logs:
- Claude Desktop: ~/Library/Logs/Claude/ (macOS) or %APPDATA%/Claude/logs/ (Windows)
- Cursor: Check the output panel for MCP server logs
- Terminal: Run server directly to see real-time logs
📚 Advanced Usage
Search Query Syntax
Zendesk search supports powerful query operators:
```bash
Status-based searches
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





