get_message
Fetch a single message's full headers, body, and labels to inspect or process a specific email in your inbox.
Instructions
Fetch one message in full: headers, body, and labels.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Fetch a single message's full headers, body, and labels to inspect or process a specific email in your inbox.
Fetch one message in full: headers, body, and labels.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes |
Changes observed during successful MCP inspections.
v0.1.0Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations, so the description carries the full burden. 'Fetch' implies a read-only, non-destructive operation and the field list tells the agent what comes back, but nothing is said about missing/invalid ids, permissions, or whether the full body is always present.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One sentence, front-loaded with the action and immediately followed by the return payload. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple single-parameter read tool this covers the core contract, and the return fields are enumerated despite no output schema. The main gap is id provenance and error behavior when the message is not found.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0% and the single parameter is a bare string named 'id'. The description does not clarify whether this is a message id, a thread id, or a label-qualified reference, nor where to obtain it, so it adds nothing beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Fetch one message') plus the scope of what is returned ('headers, body, and labels'), which clearly separates it from the plural search_messages. It stops short of naming the sibling explicitly, but the singular/full-record framing is unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: 'one message' combined with a required id signals retrieval-by-identifier rather than searching. There is no explicit statement that search_messages should be used first to obtain the id, and no exclusion of list_threads.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.