Read tickets, users, orgs, macros and satisfaction ratings; create, update and comment on tickets.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
MUTATING: add a comment to a ticket. `public` defaults to true (a reply visible to the requester); set it false for an internal agent note. Convenience over PUT /tickets/{id}.json.
Numeric ticket id (required).
Comment text (required).
Public reply (true, default) or internal note (false).
The server marks this tool as destructive. Running it may delete or overwrite data on the server or in any account you connected with your headers.
MUTATING: add a comment to a ticket. `public` defaults to true (a reply visible to the requester); set it false for an internal agent note. Convenience over PUT /tickets/{id}.json.
| Argument | Type | Description |
|---|---|---|
| id* | integer | Numeric ticket id (required). |
| body* | string | Comment text (required). |
| public | boolean | Public reply (true, default) or internal note (false). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id",
"body"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Numeric ticket id (required).",
"exclusiveMinimum": 0
},
"body": {
"type": "string",
"minLength": 1,
"description": "Comment text (required)."
},
"public": {
"type": "boolean",
"description": "Public reply (true, default) or internal note (false)."
}
}
}MUTATING: create a new support ticket. `subject` and `comment_body` are required; the comment becomes the ticket's first message. Zendesk REST: POST /tickets.json.
| Argument | Type | Description |
|---|---|---|
| tags | array | Tags to set on the ticket. |
| type | string | Type: problem | incident | question | task. |
| status | string | Status: new | open | pending | hold | solved | closed. |
| subject* | string | Ticket subject/title (required). |
| group_id | integer | Group id to assign the ticket to. |
| priority | string | Priority: urgent | high | normal | low. |
| assignee_id | integer | Agent id to assign the ticket to. |
| comment_body* | string | Body of the ticket's first comment (required). |
| requester_id | integer | User id of the ticket requester. |
| comment_public | boolean | Whether the first comment is public (default true). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"subject",
"comment_body"
],
"properties": {
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tags to set on the ticket."
},
"type": {
"enum": [
"problem",
"incident",
"question",
"task"
],
"type": "string",
"description": "Type: problem | incident | question | task."
},
"status": {
"enum": [
"new",
"open",
"pending",
"hold",
"solved",
"closed"
],
"type": "string",
"description": "Status: new | open | pending | hold | solved | closed."
},
"subject": {
"type": "string",
"minLength": 1,
"description": "Ticket subject/title (required)."
},
"group_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Group id to assign the ticket to.",
"exclusiveMinimum": 0
},
"priority": {
"enum": [
"urgent",
"high",
"normal",
"low"
],
"type": "string",
"description": "Priority: urgent | high | normal | low."
},
"assignee_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Agent id to assign the ticket to.",
"exclusiveMinimum": 0
},
"comment_body": {
"type": "string",
"minLength": 1,
"description": "Body of the ticket's first comment (required)."
},
"requester_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "User id of the ticket requester.",
"exclusiveMinimum": 0
},
"comment_public": {
"type": "boolean",
"description": "Whether the first comment is public (default true)."
}
}
}Return the currently authenticated user — a quick way to verify credentials and subdomain. Zendesk REST: GET /users/me.json.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}Run a saved view by id and return the matching tickets. Zendesk REST: GET /views/{id}/execute.json.
| Argument | Type | Description |
|---|---|---|
| id* | integer | Numeric view id (required; from zendesk_list_views). |
| page | integer | Page number for offset pagination. |
| sort_by | string | Field to sort the resulting tickets by. |
| per_page | integer | Records per page (max 100). |
| sort_order | string | Sort direction: asc or desc. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Numeric view id (required; from zendesk_list_views).",
"exclusiveMinimum": 0
},
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number for offset pagination.",
"exclusiveMinimum": 0
},
"sort_by": {
"type": "string",
"description": "Field to sort the resulting tickets by."
},
"per_page": {
"type": "integer",
"maximum": 100,
"description": "Records per page (max 100).",
"exclusiveMinimum": 0
},
"sort_order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction: asc or desc."
}
}
}Fetch a single organization by id. Zendesk REST: GET /organizations/{id}.json.
| Argument | Type | Description |
|---|---|---|
| id* | integer | Numeric organization id (required). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Numeric organization id (required).",
"exclusiveMinimum": 0
}
}
}Fetch a single ticket by id. Zendesk REST: GET /tickets/{id}.json.
| Argument | Type | Description |
|---|---|---|
| id* | integer | Numeric ticket id (required). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Numeric ticket id (required).",
"exclusiveMinimum": 0
}
}
}Fetch SLA / response / resolution time metrics for a ticket. Zendesk REST: GET /tickets/{id}/metrics.json.
| Argument | Type | Description |
|---|---|---|
| id* | integer | Numeric ticket id (required). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Numeric ticket id (required).",
"exclusiveMinimum": 0
}
}
}Fetch a single user by id. Zendesk REST: GET /users/{id}.json.
| Argument | Type | Description |
|---|---|---|
| id* | integer | Numeric user id (required). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Numeric user id (required).",
"exclusiveMinimum": 0
}
}
}List agent groups. Zendesk REST: GET /groups.json.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number for offset pagination. |
| per_page | integer | Records per page (max 100). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number for offset pagination.",
"exclusiveMinimum": 0
},
"per_page": {
"type": "integer",
"maximum": 100,
"description": "Records per page (max 100).",
"exclusiveMinimum": 0
}
}
}List macros (reusable sets of ticket actions/replies agents apply). Zendesk REST: GET /macros.json.
| Argument | Type | Description |
|---|---|---|
| access | string | Filter by access, e.g. 'personal' or 'shared'. |
| active | boolean | If true, only active macros. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"access": {
"type": "string",
"description": "Filter by access, e.g. 'personal' or 'shared'."
},
"active": {
"type": "boolean",
"description": "If true, only active macros."
}
}
}List organizations (offset pagination). Zendesk REST: GET /organizations.json.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number for offset pagination. |
| per_page | integer | Records per page (max 100). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number for offset pagination.",
"exclusiveMinimum": 0
},
"per_page": {
"type": "integer",
"maximum": 100,
"description": "Records per page (max 100).",
"exclusiveMinimum": 0
}
}
}List customer satisfaction (CSAT) ratings, optionally filtered by score. Zendesk REST: GET /satisfaction_ratings.json.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number for offset pagination. |
| score | string | Filter by rating state, e.g. 'good', 'bad', or 'received'. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number for offset pagination.",
"exclusiveMinimum": 0
},
"score": {
"enum": [
"offered",
"unoffered",
"received",
"received_with_comment",
"received_without_comment",
"good",
"good_with_comment",
"good_without_comment",
"bad",
"bad_with_comment",
"bad_without_comment"
],
"type": "string",
"description": "Filter by rating state, e.g. 'good', 'bad', or 'received'."
}
}
}List the comments (public replies and internal notes) on a ticket, oldest first. Zendesk REST: GET /tickets/{id}/comments.json.
| Argument | Type | Description |
|---|---|---|
| id* | integer | Numeric ticket id (required). |
| page | integer | Page number for offset pagination. |
| per_page | integer | Records per page (max 100). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Numeric ticket id (required).",
"exclusiveMinimum": 0
},
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number for offset pagination.",
"exclusiveMinimum": 0
},
"per_page": {
"type": "integer",
"maximum": 100,
"description": "Records per page (max 100).",
"exclusiveMinimum": 0
}
}
}List all standard and custom ticket fields — useful for discovering field ids/values before creating or updating tickets. Zendesk REST: GET /ticket_fields.json.
No arguments.
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {}
}List recent tickets (offset pagination). Zendesk REST: GET /tickets.json.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number for offset pagination. |
| sort_by | string | Field to sort by. |
| per_page | integer | Records per page (max 100). |
| sort_order | string | Sort direction: asc or desc (default asc). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number for offset pagination.",
"exclusiveMinimum": 0
},
"sort_by": {
"enum": [
"id",
"subject",
"created_at",
"updated_at",
"status",
"requester",
"group",
"assignee"
],
"type": "string",
"description": "Field to sort by."
},
"per_page": {
"type": "integer",
"maximum": 100,
"description": "Records per page (max 100).",
"exclusiveMinimum": 0
},
"sort_order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction: asc or desc (default asc)."
}
}
}List saved ticket views (curated ticket lists). Use zendesk_execute_view to run one. Zendesk REST: GET /views.json.
| Argument | Type | Description |
|---|---|---|
| access | string | Filter by access: 'personal' or 'shared'. |
| active | boolean | If true, only active views. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"access": {
"enum": [
"personal",
"shared"
],
"type": "string",
"description": "Filter by access: 'personal' or 'shared'."
},
"active": {
"type": "boolean",
"description": "If true, only active views."
}
}
}Unified search across tickets, users, organizations and groups using Zendesk search syntax. Examples: `type:ticket status:open`, `type:user email:[email protected]`, `type:organization name:acme`. Zendesk REST: GET /search.json.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number for offset pagination. |
| query* | string | Zendesk search query, e.g. 'type:ticket status:open priority:high' (required). |
| sort_by | string | Field to sort by. |
| sort_order | string | Sort direction: asc or desc (default desc). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number for offset pagination.",
"exclusiveMinimum": 0
},
"query": {
"type": "string",
"minLength": 1,
"description": "Zendesk search query, e.g. 'type:ticket status:open priority:high' (required)."
},
"sort_by": {
"enum": [
"updated_at",
"created_at",
"priority",
"status",
"ticket_type"
],
"type": "string",
"description": "Field to sort by."
},
"sort_order": {
"enum": [
"asc",
"desc"
],
"type": "string",
"description": "Sort direction: asc or desc (default desc)."
}
}
}Find users by name, email, phone, or other attributes. Zendesk REST: GET /users/search.json.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number for offset pagination. |
| query* | string | Search string — a name, email, phone, or external id, e.g. '[email protected]' (required). |
| per_page | integer | Records per page (max 100). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"query"
],
"properties": {
"page": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Page number for offset pagination.",
"exclusiveMinimum": 0
},
"query": {
"type": "string",
"minLength": 1,
"description": "Search string — a name, email, phone, or external id, e.g. '[email protected]' (required)."
},
"per_page": {
"type": "integer",
"maximum": 100,
"description": "Records per page (max 100).",
"exclusiveMinimum": 0
}
}
}MUTATING: update an existing ticket. Provide the ticket `id` plus at least one field to change (status, priority, assignee_id, group_id, type, tags, or a comment). Zendesk REST: PUT /tickets/{id}.json.
| Argument | Type | Description |
|---|---|---|
| id* | integer | Numeric ticket id (required). |
| tags | array | Tags to set on the ticket (replaces existing). |
| type | string | New type: problem | incident | question | task. |
| status | string | New status: new | open | pending | hold | solved | closed. |
| group_id | integer | Group id to (re)assign to. |
| priority | string | New priority: urgent | high | normal | low. |
| assignee_id | integer | Agent id to (re)assign to. |
| comment_body | string | Body of a comment to add as part of this update. |
| comment_public | boolean | Whether the added comment is public (default true; set false for an internal note). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Numeric ticket id (required).",
"exclusiveMinimum": 0
},
"tags": {
"type": "array",
"items": {
"type": "string"
},
"description": "Tags to set on the ticket (replaces existing)."
},
"type": {
"enum": [
"problem",
"incident",
"question",
"task"
],
"type": "string",
"description": "New type: problem | incident | question | task."
},
"status": {
"enum": [
"new",
"open",
"pending",
"hold",
"solved",
"closed"
],
"type": "string",
"description": "New status: new | open | pending | hold | solved | closed."
},
"group_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Group id to (re)assign to.",
"exclusiveMinimum": 0
},
"priority": {
"enum": [
"urgent",
"high",
"normal",
"low"
],
"type": "string",
"description": "New priority: urgent | high | normal | low."
},
"assignee_id": {
"type": "integer",
"maximum": 9007199254740991,
"description": "Agent id to (re)assign to.",
"exclusiveMinimum": 0
},
"comment_body": {
"type": "string",
"description": "Body of a comment to add as part of this update."
},
"comment_public": {
"type": "boolean",
"description": "Whether the added comment is public (default true; set false for an internal note)."
}
}
}