Skip to main content
Glama
mpalermiti

outlook-mcp

by mpalermiti

outlook_read_message

Read-only

Retrieve a full Outlook message by ID or Message-ID, choosing text, HTML, or both formats, with optional concise preview, deferred-send time, and sender authentication checks.

Instructions

Get one full message by ID or Message-ID (<abc@example.com>).

format is "text", "html", or "full" (both). Pass include_deferred_send=True to also return the scheduled-send time (PR_DEFERRED_SEND_TIME) as deferred_send_datetime — useful when recreating a delayed draft. Pass concise=True to drop large fields (body, body_html) and return a 200-char body_preview — ~10x fewer tokens for triage scans. include_sender_auth=True adds sender_authentication: did Microsoft verify the From domain?

Input Schema

NameRequiredDescriptionDefault
formatNotext
conciseNo
message_idYes
include_sender_authNo
include_deferred_sendNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed6 schema fields changedv1.30.2
    • removedInput schema / properties / concise / title
      Removed value: -"Concise"
    • removedInput schema / properties / format / title
      Removed value: -"Format"
    • removedInput schema / properties / include_deferred_send / title
      Removed value: -"Include Deferred Send"
    • removedInput schema / properties / include_sender_auth / title
      Removed value: -"Include Sender Auth"
    • removedInput schema / properties / message_id / title
      Removed value: -"Message Id"
    • removedInput schema / title
      Removed value: -"outlook_read_messageArguments"
  2. Changed1 schema field changedv1.28.0
    • addedInput schema / properties / include_sender_auth
      Added value: +{
      +  "default": false,
      +  "title": "Include Sender Auth",
      +  "type": "boolean"
      +}
  3. First observedv1.11.0

TDQS

A4.4/5.0
Behavior4/5

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

readOnlyHint already covers the safety profile, and the description goes beyond it: concise mode drops body/body_html and returns a 200-char body_preview at roughly 10x token savings, and two flags add specific response fields (deferred_send_datetime, sender_authentication). It does not cover error behavior for an unknown message_id or whether reading affects read state.

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?

Purpose sentence first, then one short clause per parameter, zero filler. Each sentence carries information not present in the schema.

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 and empty parameter descriptions, the description supplies the identifier formats, the format enumeration, and the return-field consequences of each flag — enough to invoke it correctly and interpret the response. Remaining unknowns (not-found errors, read-state side effects) are minor and partly covered by readOnlyHint.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description carries the full burden and does: message_id accepts an ID or a `<abc@example.com>` Message-ID, format accepts the otherwise-unenumerated values "text"/"html"/"full", and all three booleans are explained by their effect. This is exactly the compensation the metric rewards when structured fields are empty.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a concrete verb and resource ('Get one full message') plus the two accepted identifier forms, so it is clearly the single-message fetch. It never names a sibling, so the distinction from `outlook_read_messages` (plural/batch) or `outlook_list_thread` must be inferred from the word 'one'.

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?

Gives conditional guidance for each optional flag: concise=True for triage scans, include_deferred_send when recreating a delayed draft, include_sender_auth when From-domain verification matters. No explicit exclusions or named alternatives for the tool itself, so it stops short of 5.

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

Deploy Server

Other Tools