Skip to main content
Glama

Reply in a thread

reply_to_conversation

Sends an answer in an existing thread, written by the caller, from the address the thread arrived through. A draft left pending on that thread is superseded, so the contact reads one answer. With "send_at" the answer is scheduled instead, and supersedes that draft only when it leaves.

Input Schema

NameRequiredDescriptionDefault
ccNoWho else receives it, in copy. Everyone on the mail sees these.
bccNoWho else receives it without the others being told. A blind copy is kept on the sending alone: the thread records the visible recipients only.
bodyYesThe text of the message, as the contact will read it. Plain text, in their language.
statusNoWhere the thread stands once the answer is out. Left out, "answered". "in_progress" for an answer that only holds the contact while someone keeps working on the case (an acknowledgement, a request passed on), "closed" for the answer that settles it.
send_atNoWhen it should leave, if not now: a date and time with its offset, such as "2026-10-12T08:30:00+03:00", at most a year ahead. Without an offset it is read in the zone of the person this connection acts for. Left out, it leaves at once.
reply_allNotrue answers everyone the contact wrote to, the people in copy included, minus the account own addresses. Left out, the answer goes to the contact alone.
attachmentsNoFiles to send along, up to 10 and 7 MiB in total. Each one is named EITHER by "upload_id", a file already pushed to a slot from create_attachment_upload, OR inline by "filename" and "content_base64". Prefer the upload for anything but a few lines of text: a file written out as base64 has to be produced character by character, which a real document overruns long before the 7 MiB cap.
conversation_idYesThe id of the conversation, as list_conversations gives it.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden and does disclose real side effects: the pending draft is superseded so the contact reads one answer, and with send_at the supersession is deferred until the answer actually departs. That is genuinely useful beyond what structured fields show. However, for an irreversible outbound-send mutation it says nothing about permission requirements, failure modes, whether a signature is appended, or whether cancelling a scheduled send is possible via cancel_scheduled_send.

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

Conciseness4/5

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

Three sentences, front-loaded with the core action, then side effects, then the scheduling caveat. No filler; the slightly convoluted "supersedes that draft only when it leaves" is the only wording that costs the reader a second pass.

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?

For an 8-parameter send tool with no annotations and no output schema, the description covers the send path and draft interplay adequately, and the rich schema fills in parameter detail. It still leaves the agent without any notion of what comes back after sending or what happens on partial failure, which matters when no output schema exists to describe the result.

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 every parameter including cc/bcc, status, send_at, and the attachment form is already documented in the schema itself. The description adds only a small amount of framing (the send_at draft-supersession interaction) rather than new parameter-level meaning, so the baseline of 3 applies.

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 and resource: "Sends an answer in an existing thread, written by the caller, from the address the thread arrived through." That clearly separates it from composing a brand-new message, though it never names the sibling it competes with (send_email, approve_draft, save_compose_draft), so the distinction is inferred rather than 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 precondition "an existing thread" is implied by the phrase itself, and scheduled vs immediate sending is explained. But there is no statement of when to prefer this over send_email, approve_draft, or a saved compose draft, and no exclusion for threads that are closed or otherwise ineligible.

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.

Resources