Skip to main content
Glama

search-emails

Read-only

Search Outlook emails using text, sender, subject, or date filters; list recent messages, sync incremental changes, or group by conversation thread.

Instructions

Search, list, delta-sync, or thread-group emails — six modes selected by parameters (read-only). With no params: lists recent emails in folder (default inbox). With query/from/to/subject/date filters: full search (combines via OData filter). With searchExpression (deprecated alias kqlQuery): a raw Microsoft Graph $search expression for advanced server-side search. With deltaMode: true: returns current state plus a deltaToken; pass the token back on the next call for incremental changes only — ideal for inbox monitoring. With groupByConversation: true: returns conversation threads. With conversationId: returns all messages in a single thread. With internetMessageId: looks up a message by its RFC Message-ID header. Personal Outlook.com accounts have limited $search support — this tool falls back through OData filters / boolean filters / recent listing automatically, but structured filters (from/subject/receivedAfter/hasAttachments/unreadOnly) return cleaner results. Returns paged messages with id/subject/from/receivedDateTime/preview by default; use outputVerbosity to expand.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toNoFilter by recipient email/name
fromNoFilter by sender email/name
countNoNumber of results (list default: 25, search default: 10, max: 50)
queryNoSearch query text. Omit for list mode.
folderNoEmail folder (default: 'inbox')
subjectNoFilter by subject
kqlQueryNoDEPRECATED alias for `searchExpression` (this was never full KQL — it is a Graph `$search` expression). Prefer `searchExpression`.
deltaModeNoEnable delta sync mode. Returns only changes since last sync. Use deltaToken for subsequent calls.
deltaTokenNoToken from previous delta call for incremental sync (deltaMode only)
maxResultsNoMax results per page for delta sync (default: 100, max: 200)
unreadOnlyNoFilter to unread emails only
receivedAfterNoFilter emails received after date (ISO 8601)
conversationIdNoGet all messages in a conversation thread by conversationId.
hasAttachmentsNoFilter to emails with attachments
includeHeadersNoInclude email headers for each message (conversationId only)
receivedBeforeNoFilter emails received before date (ISO 8601)
outputVerbosityNoOutput detail level (default: standard)
searchAllFoldersNoSearch across all mail folders
searchExpressionNoRaw Microsoft Graph `$search` expression for advanced server-side search, e.g. `subject:"invoice"`, `from:github.com`, or `foo OR bar`. Quote your own phrases; a single bare token is auto-quoted. Pair with `searchAllFolders: true` for cross-folder search. Bypasses other search params. NOTE: on personal Outlook.com accounts field-scoped `$search` is best-effort and may return nothing — prefer `query` there (it has progressive fallback).
internetMessageIdNoLook up email by Message-ID header (e.g. <abc123@example.com>). For threading/deduplication.
groupByConversationNoList conversations (threads) grouped by conversationId instead of individual emails.
Behavior5/5

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

Beyond the readOnlyHint annotation, the description discloses important behavioral nuances: automatic fallback through OData filters / boolean filters / recent listing on Outlook.com, deprecated alias behavior for kqlQuery, auto-quoting of search tokens, and the mechanics of delta tokens for incremental sync. This adds significant value beyond the annotations.

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?

The description is dense but well-organized, front-loading the core purpose and then systematically explaining each mode. It is long, but given 21 parameters and multiple modes, every sentence contributes necessary information without fluff. A tighter structure with bullet points could improve readability, but no sentence is wasted.

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?

The description covers return values ("Returns paged messages with id/subject/from/receivedDateTime/preview by default"), mode behavior, personal account limitations, and parameter interactions. With no output schema, this is sufficient context for an agent to select and invoke the tool correctly across all its modes.

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?

While the input schema already covers all 21 parameters with descriptions, the tool description explains how parameters interact to select modes (e.g., deltaMode with deltaToken, searchExpression bypassing other params, groupByConversation vs conversationId). This cross-parameter semantic guidance goes beyond what the schema provides, though the baseline is 3 due to high schema coverage.

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?

The description opens with a clear verb+resource statement: "Search, list, delta-sync, or thread-group emails — six modes selected by parameters (read-only)." It enumerates the distinct modes and explicitly notes the tool is read-only, which distinguishes it from sibling mutation tools like send-email and update-email.

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?

The description provides detailed guidance on when to use each mode, such as "ideal for inbox monitoring" for delta mode and explicit fallback behavior on personal Outlook.com accounts. It does not explicitly contrast with direct alternatives like read-email for single-message lookup, but the mode distinctions and parameter guidance adequately convey usage context.

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

Install Server

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/littlebearapps/outlook-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server