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
- Create an OAuth application for Zendesk
- Configure your redirect URI
- 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;
zendesk_search
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