Skip to main content
Glama

kayako

Reply to a case or add an internal note

kayako_reply_to_case
Destructive

WRITE: add a post to a case. channel NOTE adds an INTERNAL note visible only to agents (no channel_id needed). channel MAIL/TWITTER/FACEBOOK sends a PUBLIC reply to the customer — get channel_id from kayako_list_channels with case_id. Can also set status/priority/assignee in the same call. Kayako: POST /api/v1/cases/{id}/reply.json.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
ccNoMAIL only: CC addresses.
htmlNoNOTE only: treat contents as HTML (sanitized by Kayako).
tagsNoComma-separated tags.
case_idYesThe case id (integer).
channelYesNOTE for an internal note; MAIL/TWITTER/FACEBOOK for a public reply.
type_idNo
contentsYesReply or note text.
status_idNoAlso set the case status.
channel_idNoChannel account id. Required unless channel is NOTE.
priority_idNo
assigned_team_idNo
assigned_agent_idNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.5/5.0
Behavior4/5

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

Annotations declare destructiveHint=true, and the description reinforces this with the 'WRITE:' marker plus a valuable behavioral distinction the annotations cannot convey: NOTE is visible only to agents while MAIL/TWITTER/FACEBOOK is a PUBLIC reply to the customer. It adds real context about visibility/side effects, though it omits auth/permission requirements and irreversibility details.

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?

Front-loaded with the 'WRITE:' operation type, then the NOTE vs public distinction, then auxiliary capabilities, ending with the raw endpoint. Dense and every clause carries routing or safety information with no filler.

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

Completeness5/5

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

For a 12-param write tool with no output schema and only a destructiveHint annotation, the description supplies the essential routing (which channel to pick, where channel_id comes from) and the safety-critical visibility distinction, which is enough for an agent to invoke it correctly.

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 coverage is 67%, and the description compensates for the key gap: it explains that channel=NOTE needs no channel_id, that public channels need channel_id sourced from kayako_list_channels, and that status/priority/assignee can be set in the same call. It offers no clarification for lesser-used params (type_id, tags, cc), which the schema already covers.

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?

States a specific verb+resource (add a post to a case) and immediately splits the operation into two distinct behaviors: internal NOTE vs public reply. This clearly separates it from siblings like kayako_create_case and kayako_update_case, which create or mutate the case itself rather than adding a post.

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

Usage Guidelines4/5

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

Explicitly tells the agent when to use NOTE (internal, no channel_id) vs MAIL/TWITTER/FACEBOOK (public reply), and points to kayako_list_channels to obtain channel_id. It does not, however, draw a boundary against kayako_update_case when the caller only wants to change status/priority/assignee, even though the description invites that overlap.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.