Skip to main content
Glama
bestpractical

mcp-server-rt

Official

add_reply

Destructive

Send a ticket reply visible to the requester, with optional attachments, status update, time logging, and custom field changes.

Instructions

Send a reply (correspondence) on a ticket, visible to the requestor

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
idYesTicket ID
StatusNoOptionally change ticket status (e.g. resolved)
ContentNoReply text (optional if Attachments provided)
TimeTakenNoMinutes of work time to log
AttachmentsNoFiles to attach. Provide either FilePath (local file path, server reads and encodes it) or FileContent (pre-encoded MIME Base64). FileName and FileType are optional with FilePath and are inferred from the path.
ContentTypeNoContent MIME type (default text/plain)
CustomFieldsNoTicket custom field values to set while sending this reply, as {CF_name: value}. Each value replaces everything the field currently holds, so for a multi-value field pass an array of the complete set you want ({"Tags": ["Red", "Blue"]}) — to add to existing values, read them with get_ticket first and include them. RT silently ignores names it does not recognize, including transaction custom fields (not supported here), so a success response does not confirm a field was set. Use get_queue_fields to see the custom fields available on the ticket's queue.

Schema Changelog

Changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. Changed1 schema field changedv0.3.0
    • addedInput schema / properties / CustomFields
      Added value: +{
      +  "description": "Ticket custom field values to set while sending this reply, as {CF_name: value}. Each value replaces everything the field currently holds, so for a multi-value field pass an array of the complete set you want ({\"Tags\": [\"Red\", \"Blue\"]}) — to add to existing values, read them with get_ticket first and include them. RT silently ignores names it does not recognize, including transaction custom fields (not supported here), so a success response does not confirm a field was set. Use get_queue_fields to see the custom fields available on the ticket's queue.",
      +  "type": "object"
      +}
  2. First observedv0.2.1

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare destructiveHint=true, covering the mutation/safety profile, so the bar is lower. The description adds one behavioral fact beyond the annotation — the reply is visible to the requestor — signaling an outward-facing side effect. It does not disclose return semantics or irreversibility, but the schema's CustomFields caveat covers a key failure mode. No contradiction with annotations.

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?

A single 12-word sentence with zero filler. The parenthetical '(correspondence)' and 'visible to the requestor' both earn their place by disambiguating the tool's intent, and the key scoping fact is front-loaded.

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

Completeness3/5

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

The detailed schema and destructiveHint annotation carry most of the burden for this 7-parameter, nested-object tool. The main gaps are that there is no output schema and the description never says what a successful call returns (e.g., reply/transaction ID), and the reply-versus-comment distinction is left implicit. Adequate given schema richness, but the description alone would not fully complete the picture.

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

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the baseline is 3 even though the tool description contributes no parameter detail. The schema itself is unusually rich, explaining CustomFields replacement semantics and silent RT failures plus Attachments FilePath vs FileContent encoding, so it fully carries the parameter burden.

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

Purpose4/5

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

States a specific verb ('Send'), resource ('a reply on a ticket'), and a scoping qualifier ('visible to the requestor') that carves out the customer-facing correspondence use case. It implicitly distinguishes from the sibling add_comment but never names or explicitly contrasts it, so differentiation is not fully explicit.

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

Usage Guidelines3/5

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

The 'visible to the requestor' qualifier provides context implying this tool is chosen when the message must be customer-facing rather than internal. However, there is no explicit when-to-use or when-not-to-use guidance, and the direct sibling add_comment is never mentioned as the alternative for non-visible notes.

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

Latest Blog Posts

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/bestpractical/mcp-server-rt'

If you have feedback or need assistance with the MCP directory API, please join our Discord server