Skip to main content
Glama
TG-Techie

apple-mail-mcp

by TG-Techie

get_thread

Retrieve all messages in a conversation thread by providing any message ID from that thread. Returns sorted messages for further filtering or full body retrieval.

Instructions

Return all messages in the thread containing the given message.

Looks up the anchor message by its id, then reconstructs the conversation via the connector's tiered IMAP threading dispatch (Tier 1 X-GM-THRID for Gmail, Tier 3 header-search BFS fallback) or the AppleScript path. Result rows are sorted by date_received ascending.

The returned ids can be piped into search_messages(source=[ids]) for filtered metadata or get_messages([ids]) for full bodies.

Known limitation: thread members whose subject was rewritten mid-conversation are missed on the AppleScript fallback path (subject prefilter tradeoff).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
message_idYesInternal id of any message in the thread (from ``search_messages`` or ``get_messages`` results).

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault

No arguments

Behavior4/5

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

Without annotations, the description carries the full burden. It discloses the internal threading dispatch strategies (Tier 1/3 IMAP and AppleScript), the sorting order (date_received ascending), and a known limitation (missing rewritten subjects on AppleScript). It does not explicitly state read-only behavior, but the 'get' verb and lack of side-effect language imply safety. Informative and honest.

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 dense but efficient. It front-loads the core purpose, then explains the mechanism, provides downstream usage, and ends with a relevant limitation. Every sentence serves a purpose and there is no filler. Well-organized in three short paragraphs.

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?

With an output schema present, the description need not detail return values. It covers what the tool does, how it works, sorting, downstream usage, and a known limitation. For a single-parameter read-only operation, this is complete and leaves no obvious gaps for an agent to call it correctly.

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 coverage is 100%, so the parameter is fully described. The description's mention of 'anchor message' restates the schema's 'any message in the thread' without adding new constraints or format details. It adds minimal value beyond the schema, so a baseline 3 is appropriate.

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 begins with a specific verb-resource pair ('Return all messages in the thread') and immediately clarifies the input condition ('containing the given message'). It goes further to explain the internal lookup and reconstruction strategy, which clearly distinguishes it from siblings like get_messages or search_messages. The mention of pipable ids to other tools reinforces its distinct role.

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?

The description gives clear context: use this to get the full thread when you have any message id. It explicitly suggests how the returned ids can be used with search_messages and get_messages, implying alternatives for metadata or body retrieval. However, it does not explicitly state when NOT to use this tool (e.g., if you only need a single message), which prevents a 5.

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

Install Server

Other Tools

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/TG-Techie/apple-mail-mcp'

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