Skip to main content
Glama
mdwsk88

MS 365-21V MCP Server

Get Mail Details

mail_get_message
Read-only

Retrieve one Microsoft 365 email as text, showing recipients and attachments. Drop quoted history or paginate long bodies with an offset for easier reading.

Instructions

Read one message as plain text with recipients and attachment list. onlyNewContent drops quoted earlier mails; long bodies continue with offset. Requires delegated Mail.Read. Chinese intents / 中文意图: 查看邮件详情, 读取邮件正文, 查看邮件内容, 查看邮件附件列表.

Input Schema

NameRequiredDescriptionDefault
offsetNoBody character offset, from body.nextOffset of a previous call.
maxCharsNoMaximum body characters. Defaults to 20000.
messageIdYesMessage ID from a mail list or search result.
bodyFormatNoBody format. Defaults to text.
onlyNewContentNoReturn only the content new in this message, without the quoted thread. Defaults to false.
includeAttachmentsNoInclude the attachment list. Defaults to true.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed5 schema fields changedv0.2.0
    • addedInput schema / properties / bodyFormat
      Added value: +{
      +  "description": "Body format. Defaults to text.",
      +  "enum": [
      +    "text",
      +    "html"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / includeAttachments
      Added value: +{
      +  "description": "Include the attachment list. Defaults to true.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / maxChars
      Added value: +{
      +  "description": "Maximum body characters. Defaults to 20000.",
      +  "maximum": 100000,
      +  "minimum": 200,
      +  "type": "integer"
      +}
    • addedInput schema / properties / offset
      Added value: +{
      +  "description": "Body character offset, from body.nextOffset of a previous call.",
      +  "maximum": 9007199254740991,
      +  "minimum": 0,
      +  "type": "integer"
      +}
    • addedInput schema / properties / onlyNewContent
      Added value: +{
      +  "description": "Return only the content new in this message, without the quoted thread. Defaults to false.",
      +  "type": "boolean"
      +}
  2. First observedv0.1.0

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnlyHint and openWorldHint, but the description adds genuinely useful behavior beyond them: the delegated Mail.Read requirement, plain-text output with recipients and attachment list, onlyNewContent stripping the quoted thread, and offset-based continuation for long bodies. Only the return shape/pagination envelope is left unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two information-dense sentences front-loaded with the core action, followed by the permission and localized intent keywords. The Chinese intent list is repetition for intent matching rather than new content, which keeps it just short of a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a six-parameter read tool with no output schema and 100% schema coverage, the description covers the action, output form, permission requirement, attachment inclusion, and long-body continuation. An agent has enough to call it correctly, with only pagination/return envelope details unaddressed.

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 baseline is 3, but the description adds meaning for the chained offset pattern ('long bodies continue with offset') and clarifies onlyNewContent's effect ('drops quoted earlier mails'). bodyFormat and includeAttachments rely on the schema, but the description still earns above baseline.

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 message') with the returned shape (plain text, recipients, attachment list). This clearly distinguishes it from mail_list_messages and mail_search_messages, which the agent can tell apart without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied rather than stated: 'Read one message' plus the offset-continuation note communicates the retrieve-by-id workflow, and the permission requirement gives a prerequisite. However, it never explicitly says when to prefer this over mail_list_messages or mail_search_messages, leaving the routing inference to the agent.

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