Skip to main content
Glama

Zendesk MCP Server

License

A Model Context Protocol server for Zendesk.

Note: This is a fork of reminia/zendesk-mcp-server with the following additions:

  • search_tickets tool for searching tickets by text, filters, custom fields, and date ranges

This server provides a comprehensive integration with Zendesk. It offers:

  • Tools for retrieving and managing Zendesk tickets and comments

  • Ticket search with support for custom fields, filters, and date ranges

  • Specialized prompts for ticket analysis and response drafting

  • Full access to the Zendesk Help Center articles as knowledge base

demo

Prerequisites

  • uv - Python package manager (required)

    Install uv if you don't have it:

    # macOS/Linux
    curl -LsSf https://astral.sh/uv/install.sh | sh
    
    # Or with Homebrew
    brew install uv

Setup

  1. Clone the repository and note the full path (you'll need it for configuration):

    git clone <repo-url> /path/to/zendesk-mcp-server
  2. Build the project:

    cd /path/to/zendesk-mcp-server
    uv venv && uv pip install -e .
  3. Configure Zendesk credentials in a .env file:

    cp .env.example .env
    # Edit .env with your Zendesk subdomain, email, and API key
  4. Configure in Claude Desktop (or Claude Code):

    Add to your MCP settings, replacing /path/to/zendesk-mcp-server with the absolute path to where you cloned the repo:

{
  "mcpServers": {
      "zendesk": {
          "command": "uv",
          "args": [
              "--directory",
              "/path/to/zendesk-mcp-server",
              "run",
              "zendesk"
          ]
      }
  }
}

Example paths:

  • macOS: /Users/yourname/dev/zendesk-mcp-server

  • Linux: /home/yourname/projects/zendesk-mcp-server

  • Windows: C:\\Users\\yourname\\dev\\zendesk-mcp-server

zendesk-help Skill

The zendesk-help skill provides tools for searching and managing Zendesk tickets. If you upload the SKILL.md file to Claude Desktop, you can use the zendesk-help skill to search for tickets and manage them. This will make claude's use of the zendesk-mcp-server more seamless.

Resources

  • zendesk://knowledge-base, get access to the whole help center articles.

Prompts

analyze-ticket

Analyze a Zendesk ticket and provide a detailed analysis of the ticket.

draft-ticket-response

Draft a response to a Zendesk ticket.

Tools

get_tickets

Fetch the latest tickets with pagination support

  • Input:

    • page (integer, optional): Page number (defaults to 1)

    • per_page (integer, optional): Number of tickets per page, max 100 (defaults to 25)

    • sort_by (string, optional): Field to sort by - created_at, updated_at, priority, or status (defaults to created_at)

    • sort_order (string, optional): Sort order - asc or desc (defaults to desc)

  • Output: Returns a list of tickets with essential fields including id, subject, status, priority, description, timestamps, and assignee information, along with pagination metadata

get_ticket

Retrieve a Zendesk ticket by its ID

  • Input:

    • ticket_id (integer): The ID of the ticket to retrieve

get_ticket_comments

Retrieve all comments for a Zendesk ticket by its ID

  • Input:

    • ticket_id (integer): The ID of the ticket to get comments for

create_ticket_comment

Create a new comment on an existing Zendesk ticket

  • Input:

    • ticket_id (integer): The ID of the ticket to comment on

    • comment (string): The comment text/content to add

    • public (boolean, optional): Whether the comment should be public (defaults to true)

create_ticket

Create a new Zendesk ticket

  • Input:

    • subject (string): Ticket subject

    • description (string): Ticket description

    • requester_id (integer, optional)

    • assignee_id (integer, optional)

    • priority (string, optional): one of low, normal, high, urgent

    • type (string, optional): one of problem, incident, question, task

    • tags (array[string], optional)

    • custom_fields (array[object], optional)

update_ticket

Update fields on an existing Zendesk ticket (e.g., status, priority, assignee)

  • Input:

    • ticket_id (integer): The ID of the ticket to update

    • subject (string, optional)

    • status (string, optional): one of new, open, pending, on-hold, solved, closed

    • priority (string, optional): one of low, normal, high, urgent

    • type (string, optional)

    • assignee_id (integer, optional)

    • requester_id (integer, optional)

    • tags (array[string], optional)

    • custom_fields (array[object], optional)

    • due_at (string, optional): ISO8601 datetime

search_tickets

Search Zendesk tickets using query syntax with support for text search, filters, custom fields, and date ranges.

  • Input:

    • query (string, optional): Text to search in subject/description

    • status (string, optional): Filter by status - new, open, pending, hold, solved, closed

    • priority (string, optional): Filter by priority - low, normal, high, urgent

    • assignee (string, optional): Filter by assignee email

    • requester (string, optional): Filter by requester email

    • tags (array[string], optional): Filter by tags

    • custom_field_id (integer, optional): Custom field ID to search

    • custom_field_value (string, optional): Value to match in custom field

    • created_after (string, optional): ISO date - tickets created after this date

    • created_before (string, optional): ISO date - tickets created before this date

    • sort_by (string, optional): Field to sort by - created_at, updated_at, priority, status (defaults to updated_at)

    • sort_order (string, optional): Sort order - asc or desc (defaults to desc)

    • limit (integer, optional): Max results, up to 100 (defaults to 25)

  • Output: Returns matching tickets with id, subject, status, priority, description, timestamps, assignee info, and tags, along with search metadata

  • Example - Search by custom field (e.g., transfer ID):

    {
      "custom_field_id": 23301179390491,
      "custom_field_value": "txn_abc123"
    }
Install Server
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Resources

Looking for Admin?

Admins can modify the Dockerfile, update the server description, and track usage metrics. If you are the server author, to access the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kdopenshaw/zendesk-mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server