Zendesk MCP Server (Extended)
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| MCP_HOST | No | HTTP bind address | 0.0.0.0 |
| MCP_PORT | No | HTTP port | 8000 |
| MCP_KEYS_DB | No | SQLite database path for keys and config | data/keys.db |
| MCP_AUTH_MODE | No | Authentication mode: keys, oauth, or both | keys |
| MCP_TRANSPORT | No | Transport mode: stdio or http | stdio |
| ZENDESK_EMAIL | No | Agent email for single-identity mode (either this or both ZENDESK_READ_EMAIL and ZENDESK_WRITE_EMAIL) | |
| MCP_ADMIN_HOST | No | Admin console bind address | 127.0.0.1 |
| MCP_ADMIN_PORT | No | Admin console port | 9000 |
| MCP_PUBLIC_URL | No | Public URL of the server (required for OAuth modes) | |
| ZENDESK_API_KEY | Yes | Zendesk API token | |
| MCP_AUTH_ENABLED | No | Enable authentication for HTTP mode | true |
| MCP_OAUTH_ISSUER | No | OIDC issuer URL | |
| ZENDESK_SUBDOMAIN | Yes | Your Zendesk subdomain (e.g., 'mycompany' from mycompany.zendesk.com) | |
| MCP_ADMIN_PASSWORD | No | Admin console password (enables admin console) | |
| MCP_OAUTH_AUDIENCE | No | Audience for JWT validation | |
| MCP_OAUTH_JWKS_URI | No | JWKS URI override | |
| ZENDESK_READ_EMAIL | No | Restricted user email for reads (dual identity) | |
| ZENDESK_WRITE_EMAIL | No | Full agent email for writes (dual identity) | |
| MCP_OAUTH_AUTH_SERVERS | No | Comma-separated authorization server URLs | |
| MCP_OAUTH_TENANT_CLAIM | No | JWT claim for tenant | zendesk_tenant |
| MCP_WRITE_CONFIRMATION | No | Elicit approval before public comments | false |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| get_ticketA | Retrieve a Zendesk ticket by its ID. |
| get_ticketsA | Fetch tickets with cursor pagination. Pass the returned after_cursor as |
| get_ticket_commentsB | Retrieve comments for a ticket (cursor-paginated), including attachment metadata. |
| search_ticketsA | Search tickets with Zendesk search syntax. Examples: 'status:open priority:high', 'requester:jane@example.com', 'printer error created>2026-01-01'. limit max is 100. |
| get_ticket_attachmentA | Fetch an image attachment by its content_url (from get_ticket_comments) and return it as base64-encoded data. Only safe image types are allowed. |
| get_userA | Get a Zendesk user by ID — resolve requester_id/assignee_id to name, email, role. |
| search_usersB | Search Zendesk users by name or email. |
| list_groupsA | List agent groups (teams) for routing tickets. |
| list_ticket_fieldsA | List ticket fields including custom fields with their IDs, types, and options. Use this to interpret or set custom_fields {id, value} pairs on tickets. |
| search_articlesA | Search Help Center knowledge-base articles. Prefer this over reading the whole zendesk://knowledge-base resource. |
| create_ticketA | Create a new Zendesk ticket. Requires the tickets:write scope. priority: low | normal | high | urgent. type: problem | incident | question | task. custom_fields: list of {id, value} objects (see list_ticket_fields). |
| update_ticketA | Update fields on an existing Zendesk ticket. Requires the tickets:write scope. status: new | open | pending | on-hold | solved | closed. priority: low | normal | high | urgent. due_at: ISO8601 datetime. |
| upload_attachmentA | Upload a file (base64) to Zendesk. Returns an upload token to pass to create_ticket_comment's upload_tokens. Requires the tickets:write scope. Max 10 MB. |
| create_ticket_commentA | Add a comment to an existing Zendesk ticket. Requires the tickets:write scope. WARNING: public=true comments are visible to the end customer. upload_tokens: tokens from upload_attachment to attach files. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
| analyze-ticket | Analyze a Zendesk ticket and provide insights |
| draft-ticket-response | Draft a professional response to a Zendesk ticket |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| Zendesk Knowledge Base | Access to Zendesk Help Center articles and sections |
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/srinivas-86/zendesk-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server