Skip to main content
Glama
Outlook MCP Server

Outlook MCP Server

by kennymatsudo

list_messages

Retrieve recent email summaries from a specified Outlook folder, including sender, subject, read status, attachments, and preview, to answer inbox overview questions.

Instructions

The newest messages in one folder, as summaries (id, subject, from, received, is_read, has_attachments, a 200-character preview).

Use it for "what is in my inbox" questions. Use search_messages to find specific mail, and get_message only when the full body is needed. folder: a well-known name (inbox, drafts, sentitems, deleteditems, archive, junkemail) or a folder id from list_folders. top: 1 to 50.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "list_messages"
  }
}

Input Schema

NameRequiredDescriptionDefault
topNo
folderNoinbox
unread_onlyNo

Output Schema

NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are supplied, so the description carries the full disclosure burden. It does well on result shape and the 50-item ceiling, but never states that the call is read-only / does not mark messages as read, nor anything about ordering guarantees beyond 'newest' or paging past 50.

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?

Front-loaded summary line followed by usage routing and per-parameter notes; each block earns its place. Minor slack in restating the returned field list, which the output schema already covers.

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?

An output schema exists, so the enumerated fields are a bonus rather than a necessity, and the usage routing is complete for a 3-param listing tool. The only real hole is the undocumented 'unread_only' flag, which is a plausible thing for an agent to need on an inbox tool.

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

Parameters3/5

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

Schema coverage is 0%, so the description must compensate and it partly does: 'folder' gets accepted well-known names and the list_folders id escape hatch, and 'top' gains the 1-50 bound the schema lacks. However, the third parameter 'unread_only' is never mentioned anywhere, leaving it undocumented in both schema and description.

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 ('The newest messages in one folder') plus the exact result shape (id, subject, from, received, is_read, has_attachments, 200-char preview). It explicitly distinguishes itself from search_messages and get_message, so an agent can pick it without diffing schemas.

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

Usage Guidelines5/5

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

Gives a concrete trigger ('what is in my inbox' questions) and names both alternatives with the condition that selects each: search_messages for finding specific mail, get_message when the full body is needed. When-to-use and when-not-to-use are both covered.

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