Connect Zendesk to Claude: Manage Help Center & Tickets via MCP
Learn how to connect Zendesk to Claude using a managed MCP server. Automate ticket triage, update Help Center articles, and manage users without writing integration code.
You want to connect Zendesk to Claude so your AI agents can read tickets, update statuses, and draft replies based on historical context (if your team uses OpenAI, check out our guide on connecting Zendesk to ChatGPT). Here is exactly how to do it using a Model Context Protocol (MCP) server.
A December 2025 Gartner survey of customer service leaders found that 91% are under executive pressure to implement AI [1]. The mandate is clear: automate support triage, reduce response times, and sync account intelligence across platforms. Giving a Large Language Model (LLM) read and write access to your Zendesk instance (or other B2B support platforms like Pylon) is a massive engineering headache.
There is no native Claude connector for Zendesk. You either spend weeks building, hosting, and maintaining a custom MCP server, or you use a managed infrastructure layer that handles the boilerplate for you.
This guide breaks down exactly how to use Truto to generate a secure, managed MCP server for Zendesk, connect it natively to Claude Desktop, and execute complex support workflows using natural language.
The Engineering Reality of Custom Zendesk Connectors
A custom MCP server is a self-hosted integration layer that translates an LLM's tool calls into REST API requests.
Anthropic's rollout of Custom Connectors in Claude Desktop gave engineers a standardized way to connect models to external systems. The protocol itself is elegant. The reality of implementing it against vendor APIs is painful.
If you decide to build a custom MCP server for Zendesk, you are responsible for the entire API lifecycle. You have to handle OAuth token refreshes. You have to write and maintain massive JSON schemas for every endpoint you want the LLM to access. When the LLM requests a list of tickets, you have to write the logic to handle cursor-based pagination.
Then there are the rate limits. Zendesk enforces strict API quotas. Depending on your plan, requests are capped anywhere from 200 to 2,500 calls per minute, with an additional app-level limit of 700 calls per 5 minutes per user. If your AI agent gets stuck in a loop or tries to summarize too many tickets at once, Zendesk will return a 429 Too Many Requests error. You have to build exponential backoff and retry logic directly into your MCP server to prevent your agents from failing silently.
Instead of building this from scratch, you can use Truto. Truto normalizes the authentication, pagination, and rate-limiting logic, exposing Zendesk's endpoints as ready-to-use MCP tools.
How to Generate a Zendesk MCP Server with Truto
Truto dynamically generates MCP tools from Zendesk's API documentation and resource definitions. You can create a scoped MCP server for a specific connected Zendesk account in seconds.
Method 1: Via the Truto UI
This is the fastest way to generate an MCP server for internal use or testing.
- Navigate to the integrated account page for your connected Zendesk instance in the Truto dashboard.
- Click the MCP Servers tab.
- Click Create MCP Server.
- Select your desired configuration (e.g., restrict to
readmethods only, or filter by specific tags liketickets). - Copy the generated MCP server URL.
Method 2: Via the API
If you are provisioning infrastructure programmatically for your own customers, you can generate the MCP server via a simple POST request to the Truto API.
curl -X POST https://api.truto.one/integrated-account/{integrated_account_id}/mcp \
-H "Authorization: Bearer <YOUR_TRUTO_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{
"name": "Zendesk Support Agent",
"config": {
"methods": ["read", "write"]
}
}'The API returns a secure, self-contained URL (e.g., https://api.truto.one/mcp/a1b2c3...). This URL contains a cryptographic token that handles authentication and routing automatically.
Connecting the Zendesk MCP Server to Claude
Once you have your Truto MCP server URL, connecting it to Claude takes less than a minute.
- Open Claude Desktop.
- Navigate to Settings → Connectors → Add custom connector.
- Paste the Truto MCP server URL and click Add.
Claude will immediately connect, perform the JSON-RPC handshake, and discover the available Zendesk tools. No additional configuration is required on the client side.
sequenceDiagram
participant Claude
participant Truto MCP Server
participant Zendesk API
Claude->>Truto MCP Server: Call list_all_zendesk_tickets
Truto MCP Server->>Zendesk API: GET /api/v2/tickets.json
Zendesk API-->>Truto MCP Server: Returns ticket array
Truto MCP Server-->>Claude: Returns normalized JSONZendesk Tool Inventory for Claude
Truto exposes a massive surface area of the Zendesk API as individual MCP tools. You can view the full list and detailed schemas on the Zendesk integration page.
Here is the complete inventory of Zendesk tools available to your Claude agent, categorized by function:
Tickets & Conversations
- list_all_zendesk_tickets: List tickets in Zendesk. Returns id, subject, status, and requester.
- create_a_zendesk_ticket: Create ticket in Zendesk. Requires comment in request body.
- update_a_zendesk_ticket_by_id: Update ticket id in Zendesk. Returns updated status and details.
- list_all_zendesk_side_conversations: List side conversations for a ticket in Zendesk. Requires ticket_id.
- create_a_zendesk_side_conversation: Create a side conversation in Zendesk with ticket_id.
- list_all_zendesk_bookmarks: List bookmarks in Zendesk. Returns id, url, and title fields.
- create_a_zendesk_bookmark: Create a bookmark in Zendesk. Requires ticket_id.
- list_all_zendesk_satisfaction_ratings: List satisfaction ratings in Zendesk. Returns score and comments.
- create_a_zendesk_satisfaction_rating: Create a satisfaction rating for a solved ticket in Zendesk.
- list_all_zendesk_csat_surveys: List CSAT surveys in Zendesk for a specific locale.
- list_all_zendesk_csat_survey_responses: List survey responses in Zendesk. Returns responder_id and subject.
- list_all_zendesk_tags: List tags in Zendesk. Returns up to 20,000 of the most popular tags.
- create_a_zendesk_tag: Set tags for a ticket in Zendesk. Requires ticket id.
Users, Groups & Organizations
- list_all_zendesk_users: List users in Zendesk. Returns id, name, email, and role.
- create_a_zendesk_user: Create a new user in Zendesk with name and role.
- list_all_zendesk_organizations: List organizations in Zendesk. Returns id and name.
- create_a_zendesk_organization: Create organization in Zendesk using a unique name.
- list_all_zendesk_groups: List groups by user_id in Zendesk. Returns group id and name.
- create_a_zendesk_group: Create a new group in Zendesk. Returns details of the created group.
- list_all_zendesk_user_subscription: List user subscriptions for a specific user in Zendesk. Requires user_id.
- delete_a_zendesk_help_center_user_segment_by_id: Delete a help-center-user-segment in Zendesk. Requires id.
- list_all_zendesk_help_center_user_segments: List help-center-user-segments in Zendesk. Returns segments including id and name.
- create_a_zendesk_help_center_user_segment: Create a help-center-user-segment in Zendesk. Returns fields like id and name.
- update_a_zendesk_help_center_user_segment_by_id: Update a help center user segment in Zendesk using id.
Help Center Articles & Sections
- list_all_zendesk_help_center_articles: List all help-center-articles in Zendesk for a specific locale.
- create_a_zendesk_help_center_article: Create a help-center-article in Zendesk. Requires section_id.
- list_all_zendesk_help_center_section_articles: List articles in a specific help center section in Zendesk. Requires locale and id. Returns article metadata.
- create_a_zendesk_help_center_section_article: Create an article in Zendesk under a specific help center section. Requires section_id. Returns article details.
- get_single_zendesk_help_center_section_article_by_id: Get a specific help center section article in Zendesk. Requires locale and id. Returns fields like id.
- update_a_zendesk_help_center_section_article_by_id: Update a specific help center section article in Zendesk. Requires id. This updates metadata fields.
- delete_a_zendesk_help_center_section_article_by_id: Delete a specific help center article in Zendesk. Requires id. No fields are returned in the response.
- list_all_zendesk_help_center_sections: List sections in Zendesk Help Center for a specific locale. Requires locale.
- create_a_zendesk_help_center_section: Create a section in Zendesk Help Center under a specific category.
- list_all_zendesk_help_center_categories: List help center categories in Zendesk. Returns id, name, and description.
- create_a_zendesk_help_center_category: Create a new help-center-category in Zendesk. Requires name.
- list_all_zendesk_help_center_translations: List translations for a specific article in Zendesk. Requires article_id.
- create_a_zendesk_help_center_translation: Create a translation for an article in Zendesk. Requires article_id.
- list_all_zendesk_articles_lables: List all labels in Zendesk articles. Returns label name and usage data.
- create_a_zendesk_articles_lable: Create labels for a specific article in Zendesk. Requires article id.
- list_all_zendesk_article_comments: List article-comments for a specific user in Zendesk. Requires id.
- create_a_zendesk_article_comment: Create a comment on a specific article in Zendesk using article_id.
- create_a_zendesk_article_subscription: Create an article-subscription for a specific article in Zendesk. Requires article_id.
- list_all_zendesk_article_subscription: List article-subscriptions for a specific article in Zendesk. Requires article_id.
- delete_a_zendesk_article_subscription_by_id: Delete an article-subscription in Zendesk. Requires article_id and id.
Help Center Media & Tags
- list_all_zendesk_help_center_content_tags: List help center content tags in Zendesk. Returns id and name for each content tag.
- create_a_zendesk_help_center_content_tag: Create a help-center-content-tag in Zendesk. Requires name. Returns content_tag with fields.
- update_a_zendesk_help_center_content_tag_by_id: Update a specific help-center-content-tag in Zendesk using id. Returns the updated tag details.
- delete_a_zendesk_help_center_content_tag_by_id: Delete a specific help-center-content-tag in Zendesk. Requires id. Returns confirmation of deletion.
- list_all_zendesk_help_center_medias: List help-center-medias in Zendesk. Returns medias with key fields such as id and url.
- create_a_zendesk_help_center_media: Create a new guide media in Zendesk using asset_upload_id and filename.
- get_single_zendesk_help_center_media_by_id: Get information about a specific help-center-media in Zendesk using id.
- update_a_zendesk_help_center_media_by_id: Update a specific help-center-media in Zendesk by replacing it with new data. Requires id.
- delete_a_zendesk_help_center_media_by_id: Delete a specific help-center-media in Zendesk. Requires id. Returns confirmation of deletion.
- zendesk_help_center_medias_create_upload_url: Create upload URL for a guide-media object in Zendesk. Requires content_type and file_size.
- create_a_zendesk_help_center_user_image: Create image upload URL and token in Zendesk. Requires content_type and file_size.
- zendesk_help_center_user_images_create_image_path: Create image path in Zendesk. Requires token and brand_id.
Community Posts & Topics
- list_all_zendesk_posts: List posts in Zendesk community. Returns posts with id, title, and status.
- create_a_zendesk_post: Create a new post in Zendesk community. Returns id, title, and topic_id.
- list_all_zendesk_post_comments: List comments on a specific post in Zendesk. Requires post_id.
- create_a_zendesk_post_comment: Create a comment on a specific post in Zendesk. Requires post_id.
- list_all_zendesk_post_subscriptions: List post subscriptions in Zendesk for a given post. Requires post_id.
- create_a_zendesk_post_subscription: Create a subscription for a post in Zendesk. Requires post_id.
- list_all_zendesk_topics: List topics in Zendesk community. Returns id, name, and html_url.
- create_a_zendesk_topic: Create a new topic in Zendesk community. Returns id, name, and description.
- list_all_zendesk_topic_subscriptions: List subscriptions for a specific topic in Zendesk. Requires topic_id.
- create_a_zendesk_topic_subscription: Create a topic subscription in Zendesk. Requires topic_id.
Badges, Votes & Gamification
- list_all_zendesk_badges: List all badges in Zendesk. Returns badge details including id and name.
- create_a_zendesk_badge: Create a badge in Zendesk. Requires badge_category_id, name, and description.
- get_single_zendesk_badge_by_id: Get information about a specific badge in Zendesk. Requires id. Returns name and description.
- update_a_zendesk_badge_by_id: Update a badge in Zendesk using id. Returns badge fields including name and description.
- delete_a_zendesk_badge_by_id: Delete a badge in Zendesk. Requires id. Deleting a badge also deletes all assignments.
- list_all_zendesk_badge_categories: List badge categories in Zendesk. Returns badge categories with fields like id and name.
- create_a_zendesk_badge_category: Create a badge category in Zendesk. Requires brand_id. Returns badge_category fields.
- get_single_zendesk_badge_category_by_id: Get details about a specific badge category in Zendesk using id.
- delete_a_zendesk_badge_category_by_id: Delete a badge category in Zendesk by id. Only if they do not contain badges.
- list_all_zendesk_badge_assignments: List badge assignments in Zendesk. Returns id, badge_id, user_id, and created_at.
- create_a_zendesk_badge_assignment: Create a badge assignment in Zendesk. Requires badge_id and user_id.
- delete_a_zendesk_badge_assignment_by_id: Delete a badge assignment in Zendesk by id. Requires id. Returns confirmation.
- list_all_zendesk_help_center_votes: List help-center-votes for a given user in Zendesk. Requires user_id.
- create_a_zendesk_help_center_vote: Create a vote for a specific help-center article in Zendesk. Requires article_id.
- get_single_zendesk_help_center_vote_by_id: Get details of a specific help-center-votes in Zendesk using id.
- delete_a_zendesk_help_center_vote_by_id: Delete a specific help-center-votes resource in Zendesk. Requires id.
Admin, Configuration & Rules
- list_all_zendesk_redirect_rules: List redirect rules in Zendesk. Returns fields such as id, redirect_from, and redirect_to.
- create_a_zendesk_redirect_rule: Create or update a redirect rule in Zendesk. Requires redirect_from, redirect_to, and redirect_status.
- get_single_zendesk_redirect_rule_by_id: Get information about a specific redirect rule in Zendesk. Requires id. The response returns fields such as from/to.
- delete_a_zendesk_redirect_rule_by_id: Delete a specific redirect rule in Zendesk. Requires id. No response body returned.
- list_all_zendesk_account_custom_claims: List account custom claims in Zendesk. Returns account_custom_claims for the account and brand.
- create_a_zendesk_account_custom_claim: Create an account custom claim in Zendesk scoped by account and brand.
- get_single_zendesk_account_custom_claim_by_id: Get details of a specific account custom claim in Zendesk using id.
- update_a_zendesk_account_custom_claim_by_id: Update an account custom claim in Zendesk. Requires id. Returns the updated account custom claim fields.
- delete_a_zendesk_account_custom_claim_by_id: Delete an account custom claim in Zendesk. Requires id. Returns success status without content.
- list_all_zendesk_macros: List macros in Zendesk. Includes personal and shared macros for admins.
- create_a_zendesk_macro: Create a macro in Zendesk with specified actions and title.
- list_all_zendesk_automations: List automations in Zendesk. Returns an array of automation objects.
- create_a_zendesk_automation: Create automation in Zendesk. Requires time-based conditions.
- list_all_zendesk_triggers: List triggers in Zendesk. Returns id, title, and active status.
- create_a_zendesk_trigger: Create a trigger in Zendesk. Requires actions and conditions.
- list_all_zendesk_ticket_trigger_categories: List ticket trigger categories in Zendesk. Returns id and name.
- create_a_zendesk_ticket_trigger_category: Create a ticket trigger category in Zendesk. Returns name and position.
- list_all_zendesk_sla_policies: List SLA policies in Zendesk. Returns sla_policies array.
- create_a_zendesk_sla_policy: Create SLA policy in Zendesk. Returns name and description.
- list_all_zendesk_group_sla_policies: List group-sla-policies in Zendesk. Returns list of policies with details.
- create_a_zendesk_group_sla_policy: Create a group SLA policy in Zendesk. Returns created policy object.
- list_all_zendesk_views: List all shared and personal views available to the current user.
- create_a_zendesk_view: Create a view in Zendesk with required title and conditions.
- list_all_zendesk_routing_attributes: List routing-attributes in Zendesk. Includes attribute_values.
- create_a_zendesk_routing_attribute: Create a routing-attributes resource in Zendesk.
- list_all_zendesk_schedules: List schedules in Zendesk. Returns id, name, and time settings.
- create_a_zendesk_schedule: List schedules in Zendesk. Returns id, name, and time_zone.
- list_all_zendesk_deletion_schedules: List all deletion-schedules in Zendesk. Returns schedule details.
- create_a_zendesk_deletion_schedule: Create a deletion-schedule in Zendesk. Returns the created schedule.
- list_all_zendesk_dynamic_content_items: List all dynamic content items in Zendesk. Returns array of items.
- create_a_zendesk_dynamic_content_item: Create a new dynamic content item in Zendesk. Requires locale and variant.
- list_all_zendesk_jira_links: List Jira links for the current account in Zendesk. Returns link id and ticket_id.
- create_a_zendesk_jira_link: Create a Jira link in Zendesk. Returns id, issue key, and ticket id.
- list_all_zendesk_targets: List all targets in Zendesk. Returns fields such as id, title, and type.
- create_a_zendesk_target: Create a new target in Zendesk. Returns id, title, and type.
- list_all_zendesk_apps: List all public apps in Zendesk Marketplace. Returns id and name.
- create_a_zendesk_app: Create an app in Zendesk by providing upload_id in the payload.
- list_all_zendesk_workspaces: List workspaces in Zendesk. Returns id, title, and other details.
- create_a_zendesk_workspace: Create workspace in Zendesk. Returns id, title, and description.
- list_all_zendesk_brands: List brands in Zendesk. Returns id, name, subdomain, and active status.
- create_a_zendesk_brand: Create a brand in Zendesk. Returned response includes name and subdomain.
- list_all_zendesk_locales: List locales available in Zendesk account. Returns array of locales.
- list_all_zendesk_sessions: List sessions in Zendesk. Returns all account sessions for admins.
- list_all_zendesk_support_addresses: List support-addresses in Zendesk. Returns id, email, and brand_id.
- create_a_zendesk_support_address: Create support address in Zendesk. Returns recipient_address details.
- list_all_zendesk_help_center_themes: List help center themes in Zendesk. Returns id, name, and author.
- list_all_zendesk_help_center_permission_groups: List help-center-permission-groups in Zendesk. Returns group details.
Example Usage: Automating Ticket Triage
Let's look at how Claude uses these tools in practice. Once connected, you can prompt Claude directly:
"Claude, find ticket #4092. Read the latest comments. If the user is asking about our refund policy, find the relevant article in the Help Center, draft a reply as a new comment on the ticket, and update the ticket status to 'solved'."
Behind the scenes, Claude executes the following tool chain:
- Calls
get_single_zendesk_ticket_by_idto fetch the ticket metadata and current status. - Reads the comment array from the ticket payload to understand the context of the user's request.
- Calls
list_all_zendesk_help_center_articlesto search the knowledge base for "refund policy". - Calls
update_a_zendesk_ticket_by_idto post the drafted response and change the status.
The LLM handles the decision-making orchestration; the Truto MCP server handles the API execution, schema validation, and rate limiting.
Strategic Wrap-up and Next Steps
Building a custom MCP server for Zendesk is an exercise in managing technical debt. You spend your time writing boilerplate API wrappers, handling OAuth flows, and fighting rate limits instead of building actual AI workflows.
By using a managed infrastructure layer, you get immediate access to the entire Zendesk API surface. Your agents can read tickets, update Help Center articles, and manage user segments without you writing a single line of integration code.
Sources: [1] Gartner, "Customer Service and Support Leaders Must Prioritize Blending Human Strengths with AI Intelligence 2026" (December 2025)
FAQ
- Does Claude have a native Zendesk integration?
- No. Connecting Claude to Zendesk requires an integration layer like a Model Context Protocol (MCP) server to translate the LLM's natural language requests into Zendesk REST API calls.
- What are Zendesk's API rate limits?
- Zendesk enforces strict API quotas based on your plan, typically ranging from 200 to 2,500 requests per minute. Apps are subject to an additional limit of 700 calls per 5 minutes per user.
- How do I create a Zendesk MCP server?
- You can generate a managed Zendesk MCP server using Truto. Connect your Zendesk account, navigate to the MCP Servers tab in the Truto dashboard, and click Create MCP Server to generate a secure connection URL.