Skip to main content
Glama
fruggr

Zendesk MCP Server by Fruggr

Add Public Comment

add_public_comment

Post a public comment on a Zendesk ticket to reply to the requester, with optional attachments. Ensures the customer sees your response and any files.

Instructions

Add a public comment (visible to requester) to a ticket, optionally with file attachments (uploaded via the Zendesk Uploads API and carried on the comment). The comment is appended to the ticket thread and emails the requester; use add_private_note instead for an internal, agent-only note.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyYesComment text sent to the requester. Plain text or HTML; visible in the ticket.
ticket_idYesTicket ID — the numeric id of the ticket to reply on. Obtain it from search_tickets or list_tickets.
attachmentsNoFiles to attach to this comment (base64-encoded content).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changedv2.22.0
    • addedInput schema / properties / attachments / items / properties / file_base64 / contentEncoding
      Added value: +"base64"
  2. Changed2 schema fields changedv2.20.2
    • changedInput schema / properties / attachments / items / properties / file_base64 / description
      Previous value: -"File content encoded as base64."New value: +"File content encoded as base64. At most 10420224 characters (about 7.45 MB of file), and the attachments of one call must stay under that total; the HTTP transport additionally caps request bodies at 4 MB."
    • addedInput schema / properties / attachments / items / properties / file_base64 / maxLength
      Added value: +10420224
  3. Changed2 schema fields changedv2.6.0
    • changedInput schema / properties / body / description
      Previous value: -"Comment content"New value: +"Comment text sent to the requester. Plain text or HTML; visible in the ticket."
    • changedInput schema / properties / ticket_id / description
      Previous value: -"Ticket ID"New value: +"Ticket ID — the numeric id of the ticket to reply on. Obtain it from search_tickets or list_tickets."
  4. Changed1 schema field changedv2.4.1
    • addedInput schema / properties / attachments
      Added value: +{
      +  "description": "Files to attach to this comment (base64-encoded content).",
      +  "items": {
      +    "properties": {
      +      "content_type": {
      +        "default": "application/octet-stream",
      +        "description": "MIME type, e.g. \"text/plain\", \"image/png\", \"application/pdf\".",
      +        "minLength": 1,
      +        "type": "string"
      +      },
      +      "file_base64": {
      +        "description": "File content encoded as base64.",
      +        "format": "base64",
      +        "minLength": 1,
      +        "pattern": "^$|^(?:[0-9a-zA-Z+/]{4})*(?:(?:[0-9a-zA-Z+/]{2}==)|(?:[0-9a-zA-Z+/]{3}=))?$",
      +        "type": "string"
      +      },
      +      "file_name": {
      +        "description": "File name, e.g. \"app.log\" or \"screenshot.png\".",
      +        "minLength": 1,
      +        "type": "string"
      +      }
      +    },
      +    "required": [
      +      "file_name",
      +      "file_base64"
      +    ],
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
  5. Changed1 schema field changedv2.3.1
    • addedInput schema / additionalProperties
      Added value: +false
  6. First observedv1.7.0

TDQS

A4.6/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, destructiveHint=false, idempotentHint=false, so the agent knows this is a non-read, non-idempotent operation. The description adds valuable behavioral context: the comment is visible to the requester, appended to the ticket thread, and triggers an email to the requester. It also notes the attachment upload mechanism. It doesn't explicitly state side effects like notification behavior beyond email, but the key behavioral traits are disclosed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences with no filler. The primary action and visibility are front-loaded, the attachment mechanism is mentioned in passing, and the alternative tool is named at the end. Every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a tool with 3 parameters, 100% schema coverage, and no output schema, the description is nearly complete. It explains the public/private distinction, the email side effect, and the attachment upload path. It doesn't describe the return value, but there is no output schema and the tool's purpose is clear. A small gap is that it doesn't mention whether the comment is added immediately or if there are any constraints (e.g., ticket status), but these are minor for this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

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 all three parameters. The description adds context beyond the schema by explaining the overall effect (comment visible to requester, emails requester) and the attachment upload path. It doesn't add per-parameter details beyond the schema, but the schema is already thorough, including base64 size limits and MIME type defaults. Baseline 3 is exceeded because the description clarifies the purpose of the parameters in the broader workflow.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb ('Add'), a resource ('public comment to a ticket'), and key characteristics (visible to requester, appended to thread, emails requester). It also explicitly distinguishes itself from add_private_note, which is a sibling tool, so an agent can tell them apart without opening schemas.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly says when to use this tool ('Add a public comment... to a ticket') and when not to ('use add_private_note instead for an internal, agent-only note'). It also mentions the optional attachment workflow via the Zendesk Uploads API, giving clear context for the intended use case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.