Skip to main content
Reference Last updated: 16 April 2026

Tools Reference - Outlook Assistant

Quick reference for all 22 MCP tools across 9 modules. Each tool includes MCP safety annotations (readOnlyHint, destructiveHint, idempotentHint).

Quick reference for all 22 MCP tools across 9 modules. Each tool includes MCP safety annotations (readOnlyHint, destructiveHint, idempotentHint).

Authentication (1 tool)

ToolActionsSafetyKey Parameters
authstatus (default), authenticate, device-code-complete, aboutmoderate writemethod (device-code default, browser), force. Device code state persists across server restarts (v3.7.2+).

Email (8 tools)

ToolDescriptionSafetyKey Parameters
search-emailsSearch, list, delta sync, conversationsread-onlyquery, from, to, folder, deltaMode, conversationId, groupByConversation, internetMessageId
read-emailRead content or forensic headersread-onlyid, headersMode, groupByType, importantOnly
send-emailSend email with safety controlsdestructiveto, subject, body, dryRun, checkRecipients, cc, bcc, importance
draftCreate, update, send, delete, reply, forward draftsdestructiveaction (required), id, to, subject, body, comment, dryRun, checkRecipients
get-mail-tipsPre-send recipient validationread-onlyrecipients, tipTypes
update-emailMark read/unread, flag/unflag/completeidempotentaction (required), id, ids, dueDateTime
attachmentsList, view, or download attachmentsmoderate writeaction (list/view/download), messageId, attachmentId
exportExport emails to various formatsmoderate writetarget (message/messages/conversation/mime), id, format, outputDir

search-emails modes

ModeTriggerDescription
ListNo query paramsLists recent emails (like old list-emails)
Searchquery, from, to, etc.Full search with filters and KQL
DeltadeltaMode: trueIncremental sync, returns deltaToken
Conversation listgroupByConversation: trueGroups by thread
Conversation getconversationIdAll messages in a thread
Message-ID lookupinternetMessageIdFind by RFC Message-ID header

Personal accounts: The query and kqlQuery parameters use Microsoft’s $search API which has limited support on personal Outlook.com accounts. Outlook Assistant handles this automatically with progressive search fallback — if $search returns no results, it tries OData filters, boolean filters, and recent message listing. For the most direct results on personal accounts, use structured filters (from, subject, to, receivedAfter, hasAttachments, unreadOnly).

Delta sync is designed for inbox monitoring workflows. The first call returns current emails and a deltaToken; subsequent calls with that token return only new, modified, and deleted messages. See Monitor Inbox with Delta Sync.

update-email actions

ActionDescriptionParams
mark-readMark as readid (single)
mark-unreadMark as unreadid (single)
flagFlag for follow-upid or ids (batch), dueDateTime, startDateTime
unflagClear flagid or ids (batch)
completeMark flag as completeid or ids (batch)

draft actions

ActionDescriptionRequired Params
createSave new draft to Drafts folder— (all optional)
updateEdit existing draftid
sendSend an existing draftid
deleteRemove a draftid
replyCreate reply draft from messageid
reply-allCreate reply-all draft from messageid
forwardCreate forward draft with new recipientsid, to

Draft safety: dryRun: true previews without saving (create only). checkRecipients: true validates recipients via mail-tips before saving. The send action shares rate limits with send-email. Recipient allowlist applies to create, update, and forward. comment and body are mutually exclusive on reply/forward.

Export formats

FormatUse Case
mime / emlFull MIME with headers — archival and forensics
mboxUnix MBOX archive — batch export conversations
markdownHuman-readable — paste into documents
jsonStructured data — programmatic processing
htmlFormatted — visual archival of threads
csvSpreadsheet-friendly metadata export

Content-type handling: The attachments tool handles text and binary content types. Text attachments (text/*, application/json, application/xml) are displayed inline; binary attachments require download. The contentType field is included in attachment listings.

Calendar (3 tools)

ToolDescriptionSafetyKey Parameters
list-eventsList upcoming eventsread-onlycount
create-eventCreate new eventmoderate writesubject, start, end, attendees, body. Times use configured timezone (default: Australia/Melbourne) — omit Z suffix for local time
manage-eventDecline, cancel, or deletedestructiveaction (decline/cancel/delete), eventId, comment

Folder (1 tool)

ToolActionsSafetyKey Parameters
folderslist (default), create, move, stats, deletedestructivename, emailIds, targetFolder, folder, folderId, folderName, outputVerbosity

Rules (1 tool)

ToolActionsSafetyKey Parameters
manage-ruleslist (default), create, update, reorder, deletedestructivename, fromAddresses, containsSubject, bodyContains, hasAttachments, moveToFolder, forwardTo, assignCategories, dryRun, except*, ruleName, ruleId, sequence

Contacts (2 tools)

ToolDescriptionSafetyKey Parameters
manage-contactFull CRUD: list (default), search, get, create, update, deletemoderate writeaction, query, id, displayName, email, count
search-peopleRelevance-based search (People API)read-onlyquery, count

Categories (3 tools)

ToolDescriptionSafetyKey Parameters
manage-categoryCRUD: list (default), create, update, deletemoderate writeaction, displayName, color, id
apply-categoryApply/add/remove categories on messagesmoderate writemessageId/messageIds, categories, action
manage-focused-inboxFocused Inbox overrides: list (default), set, deletemoderate writeaction, emailAddress, classifyAs

Category colours

preset0-preset24: Red, Orange, Brown, Yellow, Green, Teal, Olive, Blue, Purple, etc.

Settings (1 tool)

ToolActionsSafetyKey Parameters
mailbox-settingsget (default), set-auto-replies, set-working-hoursidempotentsection, enabled, startDateTime, endDateTime, internalReplyMessage, startTime, endTime, daysOfWeek

Advanced (2 tools)

ToolDescriptionSafetyKey Parameters
access-shared-mailboxRead shared mailboxread-onlysharedMailbox, folder, count
find-meeting-roomsSearch meeting roomsread-onlyquery, building, capacity

Safety Annotations

CategoryToolsClient Behaviour
Read-only (7)search-emails, read-email, list-events, search-people, access-shared-mailbox, find-meeting-rooms, get-mail-tipsAuto-approved by MCP clients that support annotations
Destructive (5)send-email, draft, manage-event, folders, manage-rulesClient prompts for confirmation
Idempotent (2)update-email, mailbox-settingsSafe to retry
Moderate write (8)All othersNormal approval flow

send-email Safety Controls

ControlConfigDefault
Pre-send mail tipscheckRecipients: true paramDisabled
Dry-run previewdryRun: true paramDisabled
Session rate limitOUTLOOK_MAX_EMAILS_PER_SESSION envUnlimited (0)
Recipient allowlistOUTLOOK_ALLOWED_RECIPIENTS envAllow all

get-mail-tips

Check recipients before sending — detects out-of-office, mailbox full, delivery restrictions, moderation, external recipients, group member counts, and max message size. Uses POST /me/getMailTips (existing Mail.Read scope).

Tip TypeWhat It Checks
automaticRepliesOut-of-office messages and schedule
mailboxFullStatusWhether mailbox is full (delivery may fail)
customMailTipAdmin-configured notices
deliveryRestrictionWhether you’re allowed to send to this recipient
moderationStatusWhether messages require approval
recipientScopeInternal vs external recipient
maxMessageSizeMaximum message size limit
totalMemberCountGroup size (total and external members)

Output Verbosity

LevelDescription
minimalEssential fields only (token efficient)
standardCommon fields (default)
fullAll available fields

draft Safety Controls

ControlConfigDefault
Dry-run previewdryRun: true param (create only)Disabled
Pre-save mail tipscheckRecipients: true param (create only)Disabled
Session rate limit (create/update)OUTLOOK_MAX_DRAFT_PER_SESSION envUnlimited (0)
Session rate limit (send)OUTLOOK_MAX_EMAILS_PER_SESSION env (shared with send-email)Unlimited (0)
Recipient allowlistOUTLOOK_ALLOWED_RECIPIENTS envAllow all

Common Patterns

// Create a draft for review
draft(action: "create", to: "sarah@company.com", subject: "Project Update", body: "Hi Sarah...", dryRun: true)

// Save draft, then update it
draft(action: "create", to: "sarah@company.com", subject: "Draft", body: "...")
draft(action: "update", id: "draft-id", subject: "Updated Subject", body: "Better content...")

// Send a draft
draft(action: "send", id: "draft-id")

// Reply to an email as a draft
draft(action: "reply", id: "message-id", comment: "Thanks for the update!")

// Forward as draft with recipients
draft(action: "forward", id: "message-id", to: "colleague@company.com", comment: "FYI")

// List recent emails
search-emails(folder: "inbox", count: 10)

// Search with filters
search-emails(from: "boss@company.com", receivedAfter: "2024-01-01")

// Check recipients before sending
get-mail-tips(recipients: ["sarah@company.com", "team@company.com"])

// Preview email with recipient check
send-email(to: "...", subject: "...", body: "...", dryRun: true, checkRecipients: true)

// Preview email before sending
send-email(to: "...", subject: "...", body: "...", dryRun: true)

// Get forensic headers
read-email(id: "...", headersMode: true, importantOnly: true)

// Export conversation to markdown
export(target: "conversation", conversationId: "...", format: "markdown", outputDir: "/tmp")

// Set out-of-office
mailbox-settings(action: "set-auto-replies", enabled: true, internalReplyMessage: "I'm away...")

// Flag email for follow-up
update-email(action: "flag", id: "...", dueDateTime: "2026-03-01T09:00:00Z")

// Access shared mailbox
access-shared-mailbox(sharedMailbox: "team@company.com", folder: "inbox")

// Delta sync (initial — returns emails + deltaToken)
search-emails(deltaMode: true)

// Delta sync (incremental — returns only changes)
search-emails(deltaMode: true, deltaToken: "previous-token...")
Was this helpful?

Related Articles