Skip to main content
Glama
flt-sudo

gmail-mcp-server

by flt-sudo

Reply to Gmail thread

gmail_reply_to_thread

Reply to an existing Gmail thread with correct threading headers. Supports reply-all and multiple accounts with send access.

Instructions

Reply to an existing thread from the account that owns it, with correct In-Reply-To/References threading headers. REQUIRES the account to have been added with access: "send".

Args:

  • thread_id (string, required): the thread to reply within (account-specific — use the same account the id came from).

  • body (string, required): plain-text reply body.

  • reply_all (boolean, default false): false replies only to the last message's sender (or Reply-To); true also includes everyone on that message's To/Cc lines (minus this account).

  • account (string, optional): email or alias. Omit for the default account.

Returns: confirmation echoing the sending account, recipients, and the new message id + thread id.

Examples:

  • {"thread_id": "18c2f5a7b3d9e1f0", "body": "Sounds good — Thursday works."}

  • {"thread_id": "18c2f5a7b3d9e1f0", "body": "Looping everyone in.", "reply_all": true, "account": "work"}

Error Handling: accounts without send access get a re-add instruction. A 404 usually means the thread id belongs to a different account.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
bodyYesPlain-text reply body.
accountNoEmail or alias of the account to use. Omit to use the default account. Call gmail_list_accounts if unsure.
reply_allNoReply to all recipients of the last message instead of only its sender.
thread_idYesThread id to reply within (account-specific).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.0

TDQS

A4.8/5.0
Behavior5/5

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

The description discloses key behaviors beyond the annotations: it creates threaded replies, requires send access, explains reply_all recipient semantics, specifies the return value, and covers common errors such as 404 indicating a cross-account thread id. This is substantial behavioral detail that annotations cannot convey.

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 well-organized into Args, Returns, Examples, and Error Handling sections, with the purpose and access requirement front-loaded. It is longer than average but every section adds actionable information, and the examples clarify parameter usage without padding.

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 four-parameter tool with no output schema or output schema richness, this description is complete: it explains return values, error conditions, account requirements, recipient selection, and the exact threading behavior. An agent has enough context to call it correctly without needing the output schema.

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

Parameters5/5

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

Although schema coverage is 100%, the description adds real semantic value beyond the schema: thread_id is account-specific, reply_all false means sender or Reply-To only, reply_all true includes To/Cc minus this account, account may be an alias, and examples illustrate realistic invocation. This goes well beyond the schema's field names.

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 ('Reply to an existing thread'), the resource (thread, with threading headers), and a scope constraint ('from the account that owns it'). This clearly distinguishes it from siblings like gmail_send_message (new message) and gmail_create_draft (draft).

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?

It clearly specifies when to use the tool: to reply within an existing thread with correct In-Reply-To/References headers, and states the prerequisite that the account must have send access. It doesn't explicitly name alternatives like 'use gmail_send_message for new mail,' but the 'existing thread' framing provides clear context without naming siblings.

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