Skip to main content
Glama

m365_mail_read

Read-onlyIdempotent

Read one email by message ID to access recipients, metadata, and up to 10,000 characters of body content; attachments are indicated but not downloaded.

Instructions

Read one email by message ID from m365_mail_list or m365_mail_search. Returns recipients, metadata and up to 10,000 characters of body content; longer bodies are cut off. Attachments are indicated but not downloaded.

Input Schema

NameRequiredDescriptionDefault
messageIdYesEmail message ID

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.7

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent and non-destructive, so the safety profile is covered. The description adds genuinely useful behavior not in the structured data: body truncation at 10,000 characters and the fact that attachments are noted but not downloaded — both key for an agent deciding whether this call is sufficient.

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?

Two tight sentences, front-loaded with the core action and followed by the return-shape caveats. No filler or restated names.

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 no output schema, the description compensates by naming what is returned (recipients, metadata, capped body) and flagging the attachment limitation. Nothing essential for a correct invocation is missing.

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?

Only one parameter with 100% schema coverage, so the baseline is already satisfied. The description adds meaning by tying messageId to the tools that produce it, which is more than the schema's bare 'Email message ID' label.

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?

States a specific verb and resource ('Read one email by message ID') and immediately distinguishes itself from the sibling list/search tools that produce those IDs. An agent can tell this is a single-item fetch rather than a bulk or mutation operation.

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?

Explicitly points to m365_mail_list and m365_mail_search as the sources of the required messageId, which effectively conveys the retrieval workflow. It doesn't state any when-not conditions, but for a single-read tool the implicit 'use after you have an ID' context is clear.

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