Zendesk MCP Server
The Zendesk MCP Server is a tool for integrating with Zendesk to manage and interact with tickets through these functions:
Retrieve Tickets: Get tickets by ID and view detailed information including comments
Search Tickets: Find tickets using Zendesk query syntax
Create Tickets: Generate new Zendesk tickets
Update Tickets: Modify properties like status, priority, subject, tags, type, and assignee
Add Notes: Include private internal notes or public comments to tickets
Manage Linked Incidents: Retrieve all incident tickets linked to a particular ticket
Provides tools for retrieving, searching, creating, and updating Zendesk tickets, as well as adding public and private notes to tickets through Zendesk's API.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Zendesk MCP Servershow me all high priority tickets from today"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Zendesk MCP Server
A Model Context Protocol (MCP) server that provides AI assistants like Claude with seamless integration to Zendesk Support. Enables natural language interactions with Zendesk tickets, allowing you to search, create, update, and manage support tickets through conversational AI.
β¨ Features
π« Complete Ticket Management: Create, read, update, and search Zendesk tickets
π¬ Comments & Notes: Add public comments and private internal notes
π Advanced Search: Search tickets using Zendesk's powerful query syntax
π Incident Management: Retrieve and manage linked incident tickets
π·οΈ Tag Management: Add and manage ticket tags and metadata
π Secure Authentication: Uses Zendesk API tokens for secure access
π Easy Installation: Available via npm, npx, or manual setup
Related MCP server: Zendesk MCP Server
π Quick Start
Option 1: NPM Installation (Recommended)
npm install -g zd-mcp-serverOption 2: Use with npx (No Installation)
npx zd-mcp-serverOption 3: Development Setup
git clone https://github.com/koundinya/zd-mcp-server.git
cd zd-mcp-server
npm install
npm run buildβοΈ Configuration
Environment Variables
Set these environment variables in your system or MCP client configuration:
export ZENDESK_EMAIL="your-email@company.com"
export ZENDESK_TOKEN="your-zendesk-api-token"
export ZENDESK_SUBDOMAIN="your-company" # from https://your-company.zendesk.comClaude Desktop Setup
Add to your Claude Desktop configuration file:
Location:
macOS:
~/Library/Application Support/Claude/claude_desktop_config.jsonWindows:
%APPDATA%/Claude/claude_desktop_config.json
Configuration:
{
"mcpServers": {
"zendesk": {
"command": "npx",
"args": ["-y", "zd-mcp-server"],
"env": {
"ZENDESK_EMAIL": "your-email@company.com",
"ZENDESK_TOKEN": "your-zendesk-api-token",
"ZENDESK_SUBDOMAIN": "your-company"
}
}
}
}Alternative (if installed globally):
{
"mcpServers": {
"zendesk": {
"command": "zd-mcp-server",
"env": {
"ZENDESK_EMAIL": "your-email@company.com",
"ZENDESK_TOKEN": "your-zendesk-api-token",
"ZENDESK_SUBDOMAIN": "your-company"
}
}
}
}Cursor IDE Setup
Add to ~/.cursor/mcp.json or .cursor/mcp.json in your project:
{
"mcpServers": {
"zendesk": {
"command": "npx",
"args": ["-y", "zd-mcp-server"],
"env": {
"ZENDESK_EMAIL": "your-email@company.com",
"ZENDESK_TOKEN": "your-zendesk-api-token",
"ZENDESK_SUBDOMAIN": "your-company"
}
}
}
}Other MCP Clients
For other MCP-compatible clients (Cline, Windsurf, etc.), refer to their documentation for MCP server configuration. The server supports standard MCP protocols.
π οΈ Available Tools
Tool | Description | Example Usage |
| Retrieve a ticket by ID | "Get ticket #12345" |
| Get detailed ticket with comments | "Show me full details for ticket #67890" |
| Search tickets with query syntax | "Find all urgent tickets from last week" |
| Create a new ticket | "Create a high priority ticket for login issues" |
| Update ticket properties | "Set ticket #555 to solved status" |
| Add internal agent notes | "Add a private note about investigation progress" |
| Add public customer comments | "Reply to customer with solution steps" |
| Get incident tickets linked to problems | "Show incidents related to this problem ticket" |
π¬ Usage Examples
Once configured, you can use natural language with your AI assistant:
Ticket Management
"Show me all high priority tickets assigned to me"
"Create a new ticket: Customer can't access dashboard, priority urgent"
"Update ticket #12345 status to pending and add a note about waiting for customer response"Search & Discovery
"Find all solved tickets from this week tagged with 'billing'"
"Search for open tickets containing 'password reset'"
"Show me tickets created by john@company.com in the last 30 days"Customer Communication
"Add a public comment to ticket #789: 'We've identified the issue and working on a fix'"
"Add a private note: 'Customer confirmed the workaround is effective'"Advanced Queries
"Find all problem tickets that have linked incidents"
"Show me escalated tickets that haven't been updated in 2 days"
"Get details for ticket #456 including all comments and history"π Authentication Setup
1. Generate API Token
Log in to your Zendesk account
Go to Admin Center β Apps and integrations β APIs β Zendesk API
Click Add API token
Add description: "MCP Server Integration"
Click Create and copy the token
Important: Save this token securely - you won't see it again
2. Find Your Subdomain
Your Zendesk URL format: https://YOUR-SUBDOMAIN.zendesk.com
Use YOUR-SUBDOMAIN as the ZENDESK_SUBDOMAIN value.
3. Required Permissions
Ensure your Zendesk user account has:
Agent role (minimum)
Ticket access permissions
API access enabled
π§ Development
Project Structure
zd-mcp-server/
βββ src/
β βββ index.ts # Server entry point
β βββ tools/
β βββ index.ts # Zendesk tool implementations
βββ dist/ # Compiled JavaScript
βββ package.json
βββ tsconfig.json
βββ README.mdBuilding from Source
git clone https://github.com/koundinya/zd-mcp-server.git
cd zd-mcp-server
npm install
npm run buildRunning Locally
# Start the server
npm start
# Development mode with auto-rebuild
npm run devTesting
# Test with MCP Inspector (if available)
npx @modelcontextprotocol/inspector zd-mcp-server
# Or test the built version
npx @modelcontextprotocol/inspector node dist/index.jsπ Troubleshooting
Common Issues
β "Authentication failed" errors
Verify your API token is correct and hasn't expired
Ensure your email address matches your Zendesk account
Check that your subdomain is spelled correctly (no
.zendesk.comsuffix)
β "Permission denied" errors
Verify your Zendesk user has Agent permissions or higher
Ensure API access is enabled for your account
Check if your token has the required scopes
β "Server not found" errors
Ensure you've installed the package:
npm install -g zd-mcp-serverTry using npx instead:
npx zd-mcp-serverCheck that your MCP client configuration file syntax is correct
β "Environment variables not set" errors
Verify all three environment variables are set:
ZENDESK_EMAIL,ZENDESK_TOKEN,ZENDESK_SUBDOMAINRestart your MCP client after setting environment variables
Check for typos in environment variable names
Debug Mode
Enable debug logging:
DEBUG=zd-mcp-server:* zd-mcp-serverLog Files
Check MCP client logs:
Claude Desktop:
~/Library/Logs/Claude/(macOS) or%APPDATA%/Claude/logs/(Windows)Cursor: Check the output panel for MCP server logs
Terminal: Run server directly to see real-time logs
π Advanced Usage
Search Query Syntax
Zendesk search supports powerful query operators:
# Status-based searches
status:open status:pending status:solved
# Priority searches
priority:urgent priority:high priority:normal priority:low
# Date-based searches
created>2024-01-01 updated<2024-01-31
# Tag searches
tags:billing tags:technical-issue
# Requester searches
requester:customer@company.com
# Complex combinations
status:open priority:high created>2024-01-01 tags:billingBatch Operations
While the server doesn't directly support batch operations, you can chain commands:
"Search for all urgent tickets, then show me details for the first 3 results"
"Find tickets tagged 'billing', update them to normal priority, and add a note about the billing system maintenance"π€ Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
Development Setup
Fork the repository
Create your feature branch (
git checkout -b feature/amazing-feature)Commit your changes (
git commit -m 'Add amazing feature')Push to the branch (
git push origin feature/amazing-feature)Open a Pull Request
Reporting Issues
Found a bug? Please open an issue with:
Description of the problem
Steps to reproduce
Expected behavior
Your environment (OS, Node.js version, MCP client)
Relevant log outputs
π License
This project is licensed under the MIT License - see the LICENSE file for details.
π Links
Zendesk API Docs: https://developer.zendesk.com/api-reference/
Model Context Protocol: https://modelcontextprotocol.io/
π Support
Issues: GitHub Issues
Zendesk API: Zendesk Developer Documentation
MCP Protocol: MCP Documentation
Made with β€οΈ for the MCP and Zendesk communities
Available Tools
7 toolszendesk_add_private_noteC
Add a private internal note to a Zendesk ticket
| Name | Required | Description | Default |
|---|---|---|---|
| note | Yes | The content of the private note | |
| ticket_id | Yes | The ID of the ticket to add a note to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. While 'Add' implies a write operation, it doesn't specify whether this requires special permissions, if notes are editable/deletable, rate limits, or what happens on success/failure. The description is minimal and lacks critical behavioral context for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's purpose without any unnecessary words. It's perfectly front-loaded and wastes no space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the tool returns, error conditions, permission requirements, or how it differs from similar tools. Given the complexity of ticket management systems, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 100%, with both parameters ('ticket_id' and 'note') clearly documented in the schema. The description doesn't add any additional parameter semantics beyond what's already in the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add') and resource ('private internal note to a Zendesk ticket'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from its sibling 'zendesk_add_public_note', which would be needed for a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'zendesk_add_public_note' or 'zendesk_update_ticket'. There's no mention of prerequisites, permissions needed, or contextual constraints for adding private notes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_add_public_noteC
Add a public comment to a Zendesk ticket
| Name | Required | Description | Default |
|---|---|---|---|
| comment | Yes | The content of the public comment | |
| ticket_id | Yes | The ID of the ticket to add a comment to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the action is 'Add a public comment', implying a write operation, but doesn't mention permissions needed, whether the comment is editable, rate limits, or what happens on success/failure. This leaves significant gaps for a mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It's front-loaded with the core purpose and efficiently communicates the essential action without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with no annotations and no output schema, the description is insufficient. It doesn't explain what happens after adding the comment (e.g., success confirmation, error handling), nor does it address behavioral aspects like permissions or side effects, leaving the agent with incomplete operational context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, clearly documenting both parameters. The description doesn't add any additional semantic context beyond what's in the schema (e.g., comment format restrictions, ticket ID validation). This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Add') and target ('a public comment to a Zendesk ticket'), making the purpose immediately understandable. However, it doesn't explicitly differentiate from its sibling 'zendesk_add_private_note', which would be helpful for disambiguation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'zendesk_add_private_note' or 'zendesk_update_ticket'. There's no mention of prerequisites, context, or exclusions, leaving the agent to infer usage from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_create_ticketC
Create a new Zendesk ticket
| Name | Required | Description | Default |
|---|---|---|---|
| description | Yes | The initial description or comment for the ticket | |
| priority | No | The priority of the ticket | |
| status | No | The status of the ticket | |
| subject | Yes | The subject of the ticket | |
| tags | No | Tags to add to the ticket | |
| type | No | The type of the ticket |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states 'Create' which implies a write/mutation operation, but doesn't disclose critical traits like authentication requirements, rate limits, whether the creation is irreversible, or what happens on success/failure. For a mutation tool with zero annotation coverage, this leaves significant gaps in understanding its behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that states the core purpose without unnecessary words. It's appropriately sized and front-loaded, with every word earning its place. No structural issues or redundancy are present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a mutation tool (ticket creation) with no annotations, no output schema, and 6 parameters, the description is insufficiently complete. It doesn't address behavioral aspects like authentication needs, error handling, or what the tool returns. While the schema covers parameters well, the overall context for safe and effective use is lacking.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with all 6 parameters well-documented in the schema itself (including descriptions and enums for 3 parameters). The description adds no additional parameter information beyond what's in the schema. According to scoring rules, when schema coverage is high (>80%), the baseline is 3 even with no param info in the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Create') and resource ('new Zendesk ticket'), making the purpose immediately understandable. It distinguishes itself from sibling tools like 'zendesk_update_ticket' by specifying creation rather than modification. However, it doesn't explicitly differentiate from other creation-related tools (e.g., notes), though those are clearly different operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., authentication needs), when to choose this over 'zendesk_update_ticket' for modifications, or how it relates to sibling tools like 'zendesk_add_private_note' for ticket interactions. Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_get_ticketC
Get a Zendesk ticket by ID
| Name | Required | Description | Default |
|---|---|---|---|
| ticket_id | Yes | The ID of the ticket to retrieve |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but offers minimal behavioral insight. It doesn't mention whether this is a read-only operation, what permissions are required, error handling, or response format. 'Get' implies retrieval, but lacks details on rate limits, authentication needs, or data returned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with zero wasted words. It's front-loaded with the core purpose and appropriately sized for a simple retrieval tool, making it efficient for an agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no annotations and no output schema, the description is inadequate. It doesn't explain what data is returned, error conditions, or behavioral constraints. Given the sibling tools suggest a complex Zendesk API environment, more context is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the parameter 'ticket_id' is fully documented in the schema. The description adds no additional meaning beyond implying retrieval by ID, which is already clear from the schema. This meets the baseline for high schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get') and resource ('a Zendesk ticket by ID'), making the purpose immediately understandable. However, it doesn't differentiate from sibling 'zendesk_get_ticket_details', which appears to serve a similar retrieval function, preventing a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'zendesk_get_ticket_details' or 'zendesk_search'. The description only states what it does, not when it's appropriate, leaving the agent to guess based on tool names alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_get_ticket_detailsC
Get detailed information about a Zendesk ticket including comments
| Name | Required | Description | Default |
|---|---|---|---|
| ticket_id | Yes | The ID of the ticket to retrieve details for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states what data is retrieved ('detailed information... including comments'). It doesn't disclose behavioral traits such as authentication needs, rate limits, error handling, or response format, leaving significant gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste, clearly front-loading the purpose. It's appropriately sized for a simple retrieval tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and a simple input schema, the description is incomplete. It lacks details on behavioral aspects (e.g., permissions, errors) and output structure, making it inadequate for full agent understanding despite the tool's low complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the 'ticket_id' parameter. The description adds no additional meaning beyond implying retrieval of details and comments, which doesn't enhance parameter understanding beyond the schema's baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Get detailed information') and resource ('about a Zendesk ticket'), specifying it includes comments. However, it doesn't explicitly differentiate from sibling 'zendesk_get_ticket' (which might return basic info), making it less than perfect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'zendesk_get_ticket' or 'zendesk_search'. The description implies retrieval of details with comments, but lacks explicit usage context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_searchC
Search for Zendesk tickets based on a query
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Search query (e.g., 'status:open', 'priority:urgent', 'tags:need_help') |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. While 'search' implies a read-only operation, it doesn't specify whether this requires authentication, what format results return (e.g., pagination, fields included), or any rate limits. The description is minimal and leaves critical behavioral aspects unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that communicates the core purpose without any wasted words. It's appropriately sized for a simple search tool and gets straight to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a search tool with no annotations and no output schema, the description is insufficient. It doesn't explain what the search returns (ticket objects? summaries?), how results are structured, or any limitations (e.g., maximum results, supported query syntax beyond the schema examples). The combination of missing behavioral context and output information creates significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the single parameter 'query' well-documented in the schema (including examples like 'status:open'). The description adds no additional parameter information beyond what the schema already provides, meeting the baseline expectation when schema coverage is complete.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('search') and resource ('Zendesk tickets'), making the purpose immediately understandable. However, it doesn't differentiate this search tool from sibling tools like 'zendesk_get_ticket' or 'zendesk_get_ticket_details', which also retrieve ticket information but through different mechanisms.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'zendesk_get_ticket' (presumably for retrieving specific tickets by ID) and 'zendesk_get_ticket_details' (possibly for more detailed views), there's no indication of when search is preferred over direct retrieval methods.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
zendesk_update_ticketC
Update a Zendesk ticket's properties
| Name | Required | Description | Default |
|---|---|---|---|
| assignee_id | No | The ID of the agent to assign the ticket to | |
| priority | No | The new priority of the ticket | |
| status | No | The new status of the ticket | |
| subject | No | The new subject of the ticket | |
| tags | No | Tags to set on the ticket (replaces existing tags) | |
| ticket_id | Yes | The ID of the ticket to update | |
| type | No | The new type of the ticket |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states it 'updates' without detailing behavioral traits. It doesn't disclose permissions needed, whether updates are reversible, rate limits, or what happens to unspecified properties (e.g., if tags replace existing ones, as hinted in schema but not description).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded and appropriately sized for the tool's complexity, making it easy to parse without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a mutation tool with 7 parameters, no annotations, and no output schema, the description is inadequate. It lacks behavioral context (e.g., auth needs, side effects), usage guidelines, and doesn't compensate for the absence of structured fields, leaving significant gaps for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema fully documents all 7 parameters with descriptions and enums. The description adds no additional meaning beyond implying 'properties' updates, aligning with the baseline score when schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Update') and resource ('Zendesk ticket's properties'), making the purpose unambiguous. However, it doesn't differentiate from sibling tools like 'zendesk_create_ticket' or 'zendesk_get_ticket' beyond the basic action, missing explicit distinction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., needing a ticket ID), exclusions, or comparisons to siblings like 'zendesk_add_private_note' for adding notes versus updating properties.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
7 tool updates
v1.0.0- First observed
zendesk_add_private_note - First observed
zendesk_add_public_note - First observed
zendesk_create_ticket - First observed
zendesk_get_ticket - First observed
zendesk_get_ticket_details - First observed
zendesk_search - First observed
zendesk_update_ticket
TDQS
Most tools have distinct purposes, but there is notable overlap between 'zendesk_get_ticket' and 'zendesk_get_ticket_details'βboth retrieve ticket information, which could confuse agents about which to use for basic vs. detailed data. The other tools are clearly differentiated by their actions (create, update, search, add notes).
All tool names follow a consistent 'zendesk_verb_noun' pattern with snake_case, using clear verbs like 'add', 'create', 'get', 'search', and 'update'. This predictability makes it easy for agents to understand and navigate the toolset.
With 7 tools, the server is well-scoped for managing Zendesk tickets, covering core operations like create, read, update, search, and adding notes. This count is appropriate, avoiding bloat while providing essential functionality for the domain.
The toolset covers key CRUD and lifecycle aspects for Zendesk tickets, including creation, retrieval, updating, searching, and adding notes. A minor gap is the lack of a tool to delete tickets, but this is often intentional in support systems, and agents can work around it.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Read tickets, users, orgs, macros and satisfaction ratings; create, update and comment on tickets.
MCP server unifying ERPs, CRMs, APIs and knowledge base for Claude, ChatGPT and Gemini.
Marketo MCP server for AI. 130 tools to operate Marketo from Claude, Cursor, or ChatGPT.
Build and manage AI-native customer support agents from Claude or any MCP client.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceThis server provides a comprehensive integration with Zendesk. Retrieving and managing tickets and comments. Ticket analyzes and response drafting. Access to help center articles as knowledge base.115Apache 2.0
- FlicenseNot gradedqualityDmaintenanceA lightweight, AI-native server that enables GPT-based AI agents to fetch real-time customer and organization context from Zendesk APIs dynamically.-
- FlicenseCqualityDmaintenanceA comprehensive server that allows users to interact with the Zendesk API, providing tools and resources for managing Zendesk Support, Talk, Chat, and Guide products including tickets, users, organizations, and more.4914-
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to search tickets, manage tags, create tickets, inspect automations, and more in Zendesk.MIT
Appeared in Searches
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/koundinya/zd-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server