Skip to main content
Glama
JulienRabault

icloud-mail

Get Thread

get_thread

Reconstruct an entire email conversation from any message, returning all related messages oldest to newest. Optionally fetch message bodies for full context.

Instructions

Reconstitue une conversation a partir d'un de ses messages.

Le regroupement se fait sur les entetes References / Message-ID. Quand le message n'en porte pas, on retombe sur le sujet normalise (prefixes Re:, Fwd: et TR: retires) : le champ matched_by indique la methode retenue. Les messages sont renvoyes du plus ancien au plus recent.

include_bodies telecharge le corps de chaque message du fil : indispensable pour resumer un echange, mais coute un FETCH complet par message.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
uidYesUID d'un message quelconque du fil
limitNoNombre max de messages
folderNoDossier contenant le messageINBOX
include_bodiesNoJoindre le corps de chaque message, pas seulement les entetes
max_body_charsNoTroncature du corps de chaque message

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
folderYes
messagesNo
returnedYes
matched_byYes'references' ou 'subject' selon la methode utilisee
root_message_idYesMessage-ID racine ayant servi au regroupement

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the thread-assembly algorithm (References/Message-ID grouping, fallback to normalized subject), the matched_by field, chronological ordering, and the cost of include_bodies ('coûte un FETCH complet par message'). This is rich, non-obvious behavior that goes well beyond the schema.

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 compact and front-loaded with the core purpose, then provides the matching algorithm, output ordering, and body-fetch cost. Each sentence contributes unique information and there is no filler or repetition of schema details.

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?

Given an output schema exists and all input parameters are documented, the description covers the remaining essential behavioral context: how threads are matched, how to interpret matched_by, the return ordering, and the performance implication of include_bodies. An agent can call this tool correctly with the information provided.

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 100%, so the description does not need to re-explain every parameter. It adds meaningful context for include_bodies, describing what it downloads and why it matters for summarization. The other parameters are already fully described in the schema, so the description complements rather than repeats.

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 opens with 'Reconstitue une conversation à partir d'un de ses messages', which names a specific verb and resource: reconstructing a thread from a single message. This clearly differentiates it from siblings like read_email (single message) and search_emails (searching messages), so an agent can identify what the tool does without ambiguity.

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 explains the use case for include_bodies ('indispensable pour résumer un échange'), giving practical guidance on when the heavier option is worth using. It does not explicitly name alternative tools or state when not to use get_thread, but the context is clear enough for selecting this tool over siblings.

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