View as Markdown

Zendesk Integration

Manage Zendesk tickets, users, and help center content

The Zendesk integration provides access to manage Zendesk tickets, users, and help center content through the Integrate MCP server.

Installation

The Zendesk integration is included with the SDK:

import { zendeskIntegration } from "integrate-sdk/server";

Setup

1. Create a Zendesk OAuth App

  1. Create an OAuth application for Zendesk
  2. Configure your redirect URI
  3. Note your Client ID and Client Secret

2. Configure the Integration on Your Server

Add the Zendesk integration to your server configuration. The integration automatically reads ZENDESK_CLIENT_ID and ZENDESK_CLIENT_SECRET from your environment variables:

import { createMCPServer, zendeskIntegration } from "integrate-sdk/server";
 
export const { client: serverClient } = createMCPServer({
  apiKey: process.env.INTEGRATE_API_KEY,
  integrations: [
    zendeskIntegration({
    }),
  ],
});

You can override the environment variables by passing explicit values:

zendeskIntegration({
  clientId: process.env.CUSTOM_ZENDESK_ID,
  clientSecret: process.env.CUSTOM_ZENDESK_SECRET,
});

3. Client-Side Usage

The default client automatically includes all integrations. You can use it directly:

import { client } from "integrate-sdk";
 
await client.authorize("zendesk");
const result = await client.zendesk.listTickets({});
 
console.log(result);

If you're using a custom client, add the integration to the integrations array:

import { createMCPClient, zendeskIntegration } from "integrate-sdk";
 
const customClient = createMCPClient({
  integrations: [zendeskIntegration()],
});

Configuration Options

export interface ZendeskIntegrationConfig {
  /** Zendesk OAuth client ID (defaults to ZENDESK_CLIENT_ID env var) */
  clientId?: string;

Tools

zendesk_list_tickets

List tickets

export interface ZendeskListTicketsParams {
    /** Filter by status */
    status?: "new" | "open" | "pending" | "hold" | "solved" | "closed";

zendesk_get_ticket

Get a specific ticket

export interface ZendeskGetTicketParams {
    /** Ticket ID */
    ticket_id: number;

zendesk_create_ticket

Create a new ticket

export interface ZendeskCreateTicketParams {
    /** Ticket subject */
    subject: string;

zendesk_update_ticket

Update an existing ticket

export interface ZendeskUpdateTicketParams {
    /** Ticket ID to update */
    ticket_id: number;

zendesk_delete_ticket

Delete a ticket

export interface ZendeskDeleteTicketParams {
    /** Ticket ID to delete */
    ticket_id: number;

zendesk_add_comment

Add a comment to a ticket

export interface ZendeskAddCommentParams {
    /** Ticket ID to comment on */
    ticket_id: number;

zendesk_list_ticket_comments

List comments on a ticket

export interface ZendeskListTicketCommentsParams {
    /** Ticket ID */
    ticket_id: number;

zendesk_list_users

List users

export interface ZendeskListUsersParams {
    /** Filter by role */
    role?: "end-user" | "agent" | "admin";

zendesk_get_user

Get a specific user

export interface ZendeskGetUserParams {
    /** User ID */
    user_id: number;

zendesk_create_user

Create a new user

export interface ZendeskCreateUserParams {
    /** User name */
    name: string;

zendesk_update_user

Update an existing user

export interface ZendeskUpdateUserParams {
    /** User ID to update */
    user_id: number;

zendesk_search_users

Search for users

export interface ZendeskSearchUsersParams {
    /** Search query */
    query: string;

zendesk_list_organizations

List organizations

export interface ZendeskListOrganizationsParams {
    /** Page number */
    page?: number;

zendesk_get_organization

Get a specific organization

export interface ZendeskGetOrganizationParams {
    /** Organization ID */
    organization_id: number;

zendesk_create_organization

Create a new organization

export interface ZendeskCreateOrganizationParams {
    /** Organization name */
    name: string;

zendesk_update_organization

Update an existing organization

export interface ZendeskUpdateOrganizationParams {
    /** Organization ID to update */
    organization_id: number;

zendesk_list_groups

List groups

export interface ZendeskListGroupsParams {
    /** Page number */
    page?: number;

zendesk_get_group

Get a specific group

export interface ZendeskGetGroupParams {
    /** Group ID */
    group_id: number;

zendesk_search_tickets

Search for tickets

export interface ZendeskSearchTicketsParams {
    /** Search query (Zendesk search syntax) */
    query: string;

Search across all Zendesk resources (tickets, users, organizations)

export interface ZendeskSearchParams {
    /** Search query (Zendesk search syntax) */
    query: string;

zendesk_list_views

List views

export interface ZendeskListViewsParams {
    /** Page number */
    page?: number;

zendesk_get_view_tickets

Get tickets from a specific view

export interface ZendeskGetViewTicketsParams {
    /** View ID */
    view_id: number;

zendesk_list_macros

List macros

export interface ZendeskListMacrosParams {
    /** Page number */
    page?: number;

zendesk_list_tags

List tags

No parameters.

zendesk_add_tags

Add tags to a ticket

export interface ZendeskAddTagsParams {
    /** Ticket ID */
    ticket_id: number;

zendesk_remove_tags

Remove tags from a ticket

export interface ZendeskRemoveTagsParams {
    /** Ticket ID */
    ticket_id: number;

Notes

  • Category: Business
  • Authentication mode: OAuth