P

zendesk-mcp-server

Created Oct 19, 2025 by reminia

Language:

Python

Stars:

5

Forks:

2

README

Zendesk MCP Server

ci License

A Model Context Protocol server for Zendesk.

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

  • Tools for retrieving and managing Zendesk tickets and comments
  • Specialized prompts for ticket analysis and response drafting
  • Full access to the Zendesk Help Center articles as knowledge base

demo

Setup

  • build: uv venv && uv pip install -e . or uv build in short.
  • setup zendesk credentials in .env file, refer to .env.example.
  • configure in Claude desktop:
{
  "mcpServers": {
      "zendesk": {
          "command": "uv",
          "args": [
              "--directory",
              "/path/to/zendesk-mcp-server",
              "run",
              "zendesk"
          ]
      }
  }
}

Docker

You can containerize the server if you prefer an isolated runtime:

  1. Copy .env.example to .env and fill in your Zendesk credentials. Keep this file outside version control.

  2. Build the image:

    docker build -t zendesk-mcp-server .
  3. Run the server, providing the environment file:

    docker run --rm --env-file /path/to/.env zendesk-mcp-server

    Add -i when wiring the container to MCP clients over STDIN/STDOUT (Claude Code uses this mode). For daemonized runs, add -d --name zendesk-mcp.

The image installs dependencies from requirements.lock, drops privileges to a non-root user, and expects configuration exclusively via environment variables.

Claude MCP Integration

To use the Dockerized server from Claude Code/Desktop, add an entry to Claude Code's settings.json similar to:

{
  "mcpServers": {
    "zendesk": {
      "command": "/usr/local/bin/docker",
      "args": [
        "run",
        "--rm",
        "-i",
        "--env-file",
        "/path/to/zendesk-mcp-server/.env",
        "zendesk-mcp-server"
      ]
    }
  }
}

Adjust the paths to match your environment. After saving the file, restart Claude for the new MCP server to be detected.

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
Last updated: Oct 19, 2025

Publisher info

reminia's avatar

reminia

Seeking for a remote job.

4
followers
3
following
22
repos

More MCP servers built with Python

Stable Diffusion WebUI

Stable Diffusion web UI

By AUTOMATIC1111 160.1K
Transformers

🤗 Transformers: the model-definition framework for state-of-the-art machine learning models in text, vision, audio, and multimodal models, for both inference and training.

By huggingface 155.5K
PyTorch

Tensors and Dynamic neural networks in Python with strong GPU acceleration

By pytorch 96.8K