Skip to main content

A simple Zendesk MCP server

Project description

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zendesk_mcp_server-0.1.0.tar.gz (27.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

zendesk_mcp_server-0.1.0-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

File details

Details for the file zendesk_mcp_server-0.1.0.tar.gz.

File metadata

  • Download URL: zendesk_mcp_server-0.1.0.tar.gz
  • Upload date:
  • Size: 27.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.8.9

File hashes

Hashes for zendesk_mcp_server-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7e09f4f5cf0517fa6f3d3ad129b7d7bab2e3044e9a6aa279aac65e0300904f55
MD5 4d829c597af77b54d61c67a4f908f5c1
BLAKE2b-256 a4a398bb44ddbe558380860bfa22a04f2bce934a3967a0d5907ab4022fb7f8e6

See more details on using hashes here.

File details

Details for the file zendesk_mcp_server-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for zendesk_mcp_server-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 25c1f6720815c205ccbc4b312e93d7d6ffe9edf0cfcc50797190c53c8d1e2a47
MD5 45d781f8a864227434a7325d3b8800df
BLAKE2b-256 6196d1ba1a331eb938de7b4e9bf6e36b5798b11eaaa4c9665caa1d3907625328

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page