list_messages
List messages from a specified mail folder (default inbox) newest first, with server-side filters for unread, sender, attachments, and more. Includes pagination and optional mailbox targeting.
Instructions
List messages from a mail folder, newest first.
Args:
folder_id: Folder id, or a well-known name (inbox, sentitems, drafts,
deleteditems, archive, junkemail). Default: inbox.
mailbox: Optional mailbox (email or user ID). Default: signed-in user.
limit: 1-100. Default 25.
page_token: Pass next_page_token from a previous result to continue.
include_raw: Include the raw Graph payload under "raw" on each item.
unread_only: When True, only return messages where isRead is false.
Adds isRead eq false to the server-side $filter.
filter: Raw OData $filter expression applied server-side. Combined
with unread_only using and. Examples:
from/emailAddress/address eq 'a@x.com',
hasAttachments eq true,
contains(subject,'report'),
receivedDateTime ge 2026-05-01T00:00:00Z.
Cannot be combined with $search — use search_messages for that.
Returns: {"items": [trimmed_message, ...], "next_page_token": str | None}
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| filter | No | ||
| mailbox | No | ||
| folder_id | No | inbox | |
| page_token | No | ||
| include_raw | No | ||
| unread_only | No |