Zendesk MCP Server KON

September 4, 2026 · View on GitHub

한국어

This project is a fork of reminia/zendesk-mcp-server with modifications to support additional features and improvements.

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
  • Tools for managing community posts, comments, and topics
  • Specialized prompts for ticket analysis and response drafting
  • Full access to the Zendesk Help Center articles as knowledge base

Setup

  1. Install the package:
uv venv && uv pip install -e .
  1. Configure in Claude desktop:
{
  "mcpServers": {
    "zendesk": {
      "command": "uv",
      "args": [
        "--directory",
        "/path/to/zendesk-mcp-server-kon",
        "run",
        "zendesk"
      ],
      "env": {
        "ZENDESK_SUBDOMAIN": "your-zendesk-subdomain",
        "ZENDESK_EMAIL": "your-zendesk-email",
        "ZENDESK_API_KEY": "your-zendesk-api-key"
      }
    }
  }
}

Replace the environment variables with your Zendesk credentials:

  • ZENDESK_SUBDOMAIN: Your Zendesk subdomain (e.g., if your Zendesk URL is company.zendesk.com, use company)
  • ZENDESK_EMAIL: Your Zendesk admin email address
  • ZENDESK_API_KEY: Your Zendesk API token

Quick Install (No Clone Required)

If you have uv installed, you can skip step 1 and run this repository directly via uvx:

{
  "mcpServers": {
    "zendesk": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/nicekon/zendesk-mcp-server-kon.git@4717ee6299539c653655ba1d579cdcde42a0757c",
        "zendesk"
      ],
      "env": {
        "ZENDESK_SUBDOMAIN": "your-zendesk-subdomain",
        "ZENDESK_EMAIL": "your-zendesk-email",
        "ZENDESK_API_KEY": "your-zendesk-api-key"
      }
    }
  }
}

Since uvx fetches and runs the package directly from GitHub, there's no need to manage a local clone or a --directory path.

The URL above is pinned to a specific commit hash rather than a branch name. Because uv caches Git dependencies keyed by the fully resolved commit hash, pinning a commit makes this behave fully offline after the first install, just like the local clone method above. Pointing to a branch instead (e.g., ...git@main) makes every run issue a network request to check that branch's HEAD on GitHub — it won't reinstall if the commit hasn't changed, but it needs internet access every time, and in exchange automatically picks up new commits. To keep this install method tracking the latest version, you'll need to manually update the pinned commit hash.

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

Ticket Management

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)

Community Management

get_community_posts

Retrieve community posts with optional filtering and sorting

  • Input:
    • filter_by (string, optional): Filter posts by status (planned, not_planned, completed, answered, none)
    • sort_by (string, optional): Sort posts by criteria (created_at, edited_at, updated_at, recent_activity, votes, comments)

get_community_post_comments

Retrieve a community post and all its comments

  • Input:
    • post_id (integer): The ID of the post to retrieve comments for

create_community_post_comment

Create a new comment on a community post

  • Input:
    • post_id (integer): ID of the post to comment on
    • body (string): Comment content
    • author_id (integer, optional): Comment author ID (only available for Help Center administrators)
    • notify_subscribers (boolean, optional): Whether to notify subscribers (defaults to true)

update_community_post_comment

Update a comment on a community post

  • Input:
    • post_id (integer): ID of the post containing the comment
    • comment_id (integer): ID of the comment to update
    • body (string): Updated comment content

update_community_post

Update a community post

  • Input:
    • post_id (integer): ID of the post to update
    • title (string, optional): Post title
    • details (string, optional): Post content (supports p, br, strong tags)
    • topic_id (integer, optional): ID of the topic this post belongs to
    • status (string, optional): Post status (planned, not_planned, answered, completed)

get_community_topics

Retrieve all community topics

  • Returns a list of topics with their details including name, description, follower count, etc.