littlebearapps/outlook-assistant

littlebearapps/outlook-assistant

от littlebearapps
MCP-сервер для Outlook, подключающий AI-ассистентов к вашей электронной почте, календарю и контактам. Поддерживает личные Outlook.com и корпоративные Microsoft 365 — поиск, отправку, экспорт писем,...

Outlook Assistant

Outlook Assistant

MCP server for Outlook email, calendar, and contacts — let your AI assistant manage your inbox directly from the conversation.

npm version npm downloads CI CodeQL License: MIT Glama score

Outlook Assistant connects AI assistants to your Microsoft Outlook account through the Model Context Protocol. Ask your AI assistant to search your inbox, send emails, schedule meetings, manage contacts, and configure mailbox settings — without leaving the conversation. Works with Claude, Cursor, Windsurf, and any MCP-compatible client.

Works with personal Outlook.com and work/school Microsoft 365 accounts.


Outlook Assistant Demo — searching emails, reading, and drafting a reply
Search inbox → read & summarise → draft a reply — all from the conversation

What you can do

  • 📨 Search and read emails — find messages by sender, subject, date, or keywords; read full threads with conversation grouping; batch flag, move, export, or categorise multiple emails at once
  • 🛡️ Send emails with safety controls — dry-run preview, pre-send mail tips (out-of-office, mailbox full, delivery restrictions), session rate limiting, and recipient allowlist to prevent mistakes
  • ✏️ Draft emails for review — create, update, and send drafts; reply and forward as drafts; preview before saving with dry-run mode
  • 📅 Manage your calendar — view upcoming events, schedule meetings with attendees, decline or cancel invitations
  • 📦 Export emails — save individual messages to Markdown, EML, JSON, or CSV; export full conversation threads to MBOX or HTML; bulk-export search results in one call
  • 🔍 Investigate email headers — full raw header access (DKIM, SPF, DMARC, delivery chain, X-Mailer, X-Originating-IP) for phishing investigation and compliance review
  • 🗂️ Organise your inbox — create folders, set up inbox rules, colour-code with categories, manage Focused Inbox — all work together for complete inbox automation
  • 🔄 Track inbox changes — delta sync detects new, modified, and deleted emails since your last check, with tokens for incremental polling
  • 👥 Manage contacts — search your contact book and organisational directory, create and update contact records
  • ⚙️ Configure settings — set out-of-office auto-replies, working hours, and time zone
  • 📬 Access shared mailboxes — read team inboxes and service accounts (Microsoft 365)
  • 🏢 Find meeting rooms — search by building, floor, capacity, AV equipment, and wheelchair accessibility (Microsoft 365)
access-shared-mailboxтолько чтение

Перечисляет письма из общего почтового ящика, к которому у вошедшего пользователя есть доступ (только чтение). Возвращает постраничные сообщения из указанного `sharedMailbox` (или псевдонима `email`) и `folder` (по умолчанию `inbox`) с полями id/subject/from/receivedDateTime/preview — та же структура, что и в режиме списка `search-emails`. Требует, чтобы общий почтовый ящик был делегирован вошедшему пользователю в Exchange (настраивается администратором). Используйте `outputVerbosity` для управления количеством полей и `count` (по умолчанию 25, макс. 50) для размера страницы. Для полноценного поиска и фильтрации по общему почтовому ящику лучше использовать `search-emails` с путём к папке, ограниченной этим ящиком.

Перечисляет письма из общего почтового ящика, к которому у вошедшего пользователя есть доступ (только чтение). Возвращает постраничные сообщения из указанного `sharedMailbox` (или псевдонима `email`) и `folder` (по умолчанию `inbox`) с полями id/subject/from/receivedDateTime/preview — та же структура, что и в режиме списка `search-emails`. Требует, чтобы общий почтовый ящик был делегирован вошедшему пользователю в Exchange (настраивается администратором). Используйте `outputVerbosity` для управления количеством полей и `count` (по умолчанию 25, макс. 50) для размера страницы. Для полноценного поиска и фильтрации по общему почтовому ящику лучше использовать `search-emails` с путём к папке, ограниченной этим ящиком.

Параметры

  • sharedMailboxstring

    Email address of the shared mailbox (required)

  • emailstring

    Alias for `sharedMailbox` (more intuitive name for the same value).

  • folderstring

    Folder to read from (default: inbox)

  • countnumber

    Number of emails to retrieve (default: 25, max: 50)

  • outputVerbosityenum

    Output detail level (default: standard)

    minimalstandardfull
apply-category

Помечает или снимает пометку с писем с помощью основных категорий (созданных через `manage-category`). action=`set` (по умолчанию) заменяет текущий набор категорий письма на переданный массив `categories`. action=`add` добавляет категории к уже имеющимся на письме. action=`remove` удаляет только указанные категории, оставляя остальные. Принимает либо `messageId` (одно письмо), либо `messageIds` (пакетно через Graph `$batch`). `categories` сопоставляются по отображаемому имени: имена должны уже существовать в основном списке (сначала создайте их через `manage-category`). Возвращает подтверждение по каждому письму.

Помечает или снимает пометку с писем с помощью основных категорий (созданных через `manage-category`). action=`set` (по умолчанию) заменяет текущий набор категорий письма на переданный массив `categories`. action=`add` добавляет категории к уже имеющимся на письме. action=`remove` удаляет только указанные категории, оставляя остальные. Принимает либо `messageId` (одно письмо), либо `messageIds` (пакетно через Graph `$batch`). `categories` сопоставляются по отображаемому имени: имена должны уже существовать в основном списке (сначала создайте их через `manage-category`). Возвращает подтверждение по каждому письму.

Параметры

  • messageIdstring

    Single message ID to categorise

  • messageIdsstring[]

    Array of message IDs to categorise (batch operation)

  • categoriesstring[]обязательный

    Category display names to apply/remove (required)

  • actionenum

    set (replace all), add (append), remove (remove specific). Default: set

    setaddremove
attachments

Просматривайте или получайте вложения электронных писем. action=`list` (по умолчанию) возвращает метаданные всех вложений для `messageId` (id, name, contentType, size, isInline) — только чтение. action=`view` возвращает содержимое текстовых/JSON/XML-вложений, отображаемых в письме, по `attachmentId`; двоичные типы требуют скачивания. action=`download` сохраняет вложение на диск в `outputDir` (по умолчанию системная временная папка, создаётся автоматически) и возвращает путь к сохранённому файлу. `messageId` обязателен для всех действий; `attachmentId` обязателен для view/download. Используйте `outputVerbosity`, чтобы управлять набором полей вывода для действия list.

Просматривайте или получайте вложения электронных писем. action=`list` (по умолчанию) возвращает метаданные всех вложений для `messageId` (id, name, contentType, size, isInline) — только чтение. action=`view` возвращает содержимое текстовых/JSON/XML-вложений, отображаемых в письме, по `attachmentId`; двоичные типы требуют скачивания. action=`download` сохраняет вложение на диск в `outputDir` (по умолчанию системная временная папка, создаётся автоматически) и возвращает путь к сохранённому файлу. `messageId` обязателен для всех действий; `attachmentId` обязателен для view/download. Используйте `outputVerbosity`, чтобы управлять набором полей вывода для действия list.

Параметры

  • actionenum

    Action to perform (default: list)

    listviewdownload
  • messageIdstringобязательный

    Email message ID (required)

  • attachmentIdstring

    Attachment ID (action=view/download, required)

  • outputDirstring

    Directory to save file (action=download, default: system tmpdir). Auto-created if missing.

  • savePathstring

    DEPRECATED alias for `outputDir`. Will be removed in v3.8.0.

auth

Управляйте аутентификацией с Microsoft Graph API. Действие `status` (по умолчанию) возвращает текущее состояние аутентификации и автоматически обновляет токен доступа, если он истёк, но refresh-токен ещё действителен (около 90 дней). Вызывайте его сначала, чтобы проверить состояние перед другими инструментами. Действие `authenticate` запускает OAuth-процесс: с `method: "device-code"` (по умолчанию, работает без браузера) возвращает код и URL, который пользователь должен открыть; с `method: "browser"` открывает локальный сервер аутентификации на порту :3333 (предварительно выполните `npm run auth-server`). Передайте `force: true`, чтобы перепройти аутентификацию, даже если есть действующая сессия. Действие `device-code-complete` завершает аутентификацию через код устройства после того, как пользователь ввёл код в браузере — вызывайте его, когда аутентификация отобразится как успешная. Действие `about` возвращает версию сервера, настроенную аудиторию, список областей и другие диагностические данные. Токены сохраняются в `~/.outlook-assistant-tokens.json` и переживают перезапуски сервера.

Управляйте аутентификацией с Microsoft Graph API. Действие `status` (по умолчанию) возвращает текущее состояние аутентификации и автоматически обновляет токен доступа, если он истёк, но refresh-токен ещё действителен (около 90 дней). Вызывайте его сначала, чтобы проверить состояние перед другими инструментами. Действие `authenticate` запускает OAuth-процесс: с `method: "device-code"` (по умолчанию, работает без браузера) возвращает код и URL, который пользователь должен открыть; с `method: "browser"` открывает локальный сервер аутентификации на порту :3333 (предварительно выполните `npm run auth-server`). Передайте `force: true`, чтобы перепройти аутентификацию, даже если есть действующая сессия. Действие `device-code-complete` завершает аутентификацию через код устройства после того, как пользователь ввёл код в браузере — вызывайте его, когда аутентификация отобразится как успешная. Действие `about` возвращает версию сервера, настроенную аудиторию, список областей и другие диагностические данные. Токены сохраняются в `~/.outlook-assistant-tokens.json` и переживают перезапуски сервера.

Параметры

  • actionenum

    Action to perform (default: status)

    statusauthenticatedevice-code-completeabout
  • methodenum

    Auth method for action=authenticate. device-code (default): no auth server needed, works remotely. browser: traditional OAuth redirect via port 3333.

    device-codebrowser
  • forceboolean

    Force re-authentication even if already authenticated (action=authenticate only)

create-event

Создайте новое событие календаря в календаре по умолчанию вошедшего в систему пользователя. Возвращает созданное событие с его `id`, `webLink` и (если есть участники) автоматически сгенерированной ссылкой на онлайн-встречу — участники получают приглашения при сохранении. Время использует настроенный часовой пояс (по умолчанию Australia/Melbourne; переопределяется через `OUTLOOK_DEFAULT_TIMEZONE`); опустите суффикс `Z`, чтобы передать местное время. Используйте `manage-event` action=`update`, чтобы изменить событие после создания, или `manage-event` action=`cancel`/`delete`, чтобы удалить его.

Создайте новое событие календаря в календаре по умолчанию вошедшего в систему пользователя. Возвращает созданное событие с его `id`, `webLink` и (если есть участники) автоматически сгенерированной ссылкой на онлайн-встречу — участники получают приглашения при сохранении. Время использует настроенный часовой пояс (по умолчанию Australia/Melbourne; переопределяется через `OUTLOOK_DEFAULT_TIMEZONE`); опустите суффикс `Z`, чтобы передать местное время. Используйте `manage-event` action=`update`, чтобы изменить событие после создания, или `manage-event` action=`cancel`/`delete`, чтобы удалить его.

Параметры

  • subjectstringобязательный

    The subject of the event

  • startstringобязательный

    The start time of the event in ISO 8601 format

  • endstringобязательный

    The end time of the event in ISO 8601 format

  • attendeesstring[]

    List of attendee email addresses

  • bodystring

    Optional body content for the event

draftвнешний мир

Полный жизненный цикл черновика для рабочих процессов с проверкой перед отправкой (разрушительные: охватывает `send` и `delete`). action=`create` сохраняет новый черновик в папке Drafts и возвращает его id (используйте `dryRun: true`, чтобы просмотреть без сохранения; `checkRecipients: true` сначала запускает mail-tips). action=`update` обновляет существующий черновик по `id` (изменяются только переданные поля). action=`send` отправляет существующий черновик - разделяет лимит запросов с `send-email`. action=`delete` безвозвратно удаляет черновик. action=`reply`/`reply-all` создает черновик ответа из сообщения `id` (используйте `comment`, чтобы добавить текст в начало - взаимно исключает с `body`). action=`forward` создает черновик пересылки (требует `id` и `to`). Белый список получателей применяется к create/update/forward. Возвращает объект черновика для create/update/reply/forward; подтверждение статуса для send/delete.

Полный жизненный цикл черновика для рабочих процессов с проверкой перед отправкой (разрушительные: охватывает `send` и `delete`). action=`create` сохраняет новый черновик в папке Drafts и возвращает его id (используйте `dryRun: true`, чтобы просмотреть без сохранения; `checkRecipients: true` сначала запускает mail-tips). action=`update` обновляет существующий черновик по `id` (изменяются только переданные поля). action=`send` отправляет существующий черновик - разделяет лимит запросов с `send-email`. action=`delete` безвозвратно удаляет черновик. action=`reply`/`reply-all` создает черновик ответа из сообщения `id` (используйте `comment`, чтобы добавить текст в начало - взаимно исключает с `body`). action=`forward` создает черновик пересылки (требует `id` и `to`). Белый список получателей применяется к create/update/forward. Возвращает объект черновика для create/update/reply/forward; подтверждение статуса для send/delete.

Параметры

  • actionenumобязательный

    Action to perform (required)

    createupdatesenddeletereplyreply-allforward
  • idstring

    Draft or message ID. Required for update/send/delete/reply/reply-all/forward.

  • tostring

    Comma-separated recipient email addresses (optional for create/update, required for forward)

  • ccstring

    Comma-separated CC email addresses

  • bccstring

    Comma-separated BCC email addresses

  • subjectstring

    Email subject

  • bodystring

    Email body (plain text or HTML)

  • importanceenum

    Email importance (default: normal)

    normalhighlow
  • commentstring

    Comment text for reply/forward (prepended to original message). Cannot combine with body.

  • dryRunboolean

    Preview draft without saving (action=create only, default: false)

  • checkRecipientsboolean

    Check recipients for out-of-office, delivery restrictions before saving (action=create, default: false)

export

Экспортирует письма в файловые форматы для архивации, криминалистики или программной обработки. target=`message` (по умолчанию) экспортирует одно письмо по `id` в `savePath` — поддерживает `mime`/`eml`/`markdown`/`json`/`csv`. target=`messages` пакетно экспортирует либо явный массив `emailIds`, либо письма, подходящие под `searchQuery` (или сокращение `query`) в `outputDir` — поддерживает `markdown`/`json`/`csv`. target=`conversation` экспортирует всю ветку по `conversationId` в `outputDir` (по умолчанию в хронологическом порядке; передайте `order: "reverse"` для сортировки от новых к старым) — поддерживает `eml`/`mbox`/`markdown`/`json`/`html`/`csv`. target=`mime` возвращает сырые байты MIME в формате RFC-822 для `id` (используйте `headersOnly` только для заголовков, `base64` для кодированной передачи, `maxSize` для ограничения — по умолчанию 1 МБ). `includeAttachments` по умолчанию равен true для экспорта одного письма и false для пакетного. Поддерживаемые форматы зависят от цели — смотрите перечисление параметров.

Экспортирует письма в файловые форматы для архивации, криминалистики или программной обработки. target=`message` (по умолчанию) экспортирует одно письмо по `id` в `savePath` — поддерживает `mime`/`eml`/`markdown`/`json`/`csv`. target=`messages` пакетно экспортирует либо явный массив `emailIds`, либо письма, подходящие под `searchQuery` (или сокращение `query`) в `outputDir` — поддерживает `markdown`/`json`/`csv`. target=`conversation` экспортирует всю ветку по `conversationId` в `outputDir` (по умолчанию в хронологическом порядке; передайте `order: "reverse"` для сортировки от новых к старым) — поддерживает `eml`/`mbox`/`markdown`/`json`/`html`/`csv`. target=`mime` возвращает сырые байты MIME в формате RFC-822 для `id` (используйте `headersOnly` только для заголовков, `base64` для кодированной передачи, `maxSize` для ограничения — по умолчанию 1 МБ). `includeAttachments` по умолчанию равен true для экспорта одного письма и false для пакетного. Поддерживаемые форматы зависят от цели — смотрите перечисление параметров.

Параметры

  • targetenum

    Export target (default: message)

    messagemessagesconversationmime
  • idstring

    Email ID (target=message/mime, required)

  • formatenum

    Export format. Valid values vary by target: target=message accepts mime/eml/markdown/json/csv (mbox and html are conversation-only). target=conversation accepts eml/mbox/markdown/json/html/csv. target=messages (batch) accepts markdown/json/csv. mime is an alias for eml (same RFC822 bytes, .eml extension on disk).

    mimeemlmarkdownjsonmboxhtmlcsv
  • savePathstring

    File path or directory (target=message)

  • includeAttachmentsboolean

    Include attachments (default: true for single, false for batch)

  • emailIdsstring[]

    Email IDs to export (target=messages)

  • searchQueryobject

    Search query to find emails (target=messages, alternative to emailIds)

  • querystring

    Free-text search shortcut (target=messages). Equivalent to passing searchQuery: { subject: <query> }. Convenience alias for callers used to search-emails.

  • outputDirstring

    Output directory (target=messages/conversation, required)

  • conversationIdstring

    Conversation ID (target=conversation, required)

  • orderenum

    Message order (target=conversation, default: chronological)

    chronologicalreverse
  • headersOnlyboolean

    MIME headers only, no body (target=mime)

  • base64boolean

    Return base64 encoded (target=mime)

  • maxSizenumber

    Max content size in bytes (target=mime, default: 1MB)

find-meeting-roomsтолько чтение

Находит доступные для бронирования переговорные комнаты в организации пользователя через конечную точку Graph rooms (только чтение). Возвращает ресурсы комнат с полями displayName, emailAddress, building, floor, capacity и bookingType — подходит для передачи в `create-event` в качестве участников. Фильтрует по `query` (совпадение с именем/email), `building`, `floor` или минимальному `capacity`. Возвращает пустой список для личных аккаунтов (конечная точка rooms работает только в M365). Используйте `outputVerbosity`, чтобы управлять количеством полей.

Находит доступные для бронирования переговорные комнаты в организации пользователя через конечную точку Graph rooms (только чтение). Возвращает ресурсы комнат с полями displayName, emailAddress, building, floor, capacity и bookingType — подходит для передачи в `create-event` в качестве участников. Фильтрует по `query` (совпадение с именем/email), `building`, `floor` или минимальному `capacity`. Возвращает пустой список для личных аккаунтов (конечная точка rooms работает только в M365). Используйте `outputVerbosity`, чтобы управлять количеством полей.

Параметры

  • querystring

    Search query (room name, email)

  • buildingstring

    Filter by building name

  • floornumber

    Filter by floor number

  • capacitynumber

    Minimum capacity required

  • outputVerbosityenum

    Output detail level (default: standard)

    minimalstandardfull
folders

Управление почтовыми папками (tool-level destructiveHint=true, потому что `delete` безвозвратно удаляет папку; `list` и `stats` — действия только для чтения, несмотря на аннотацию). action=`list` (по умолчанию) возвращает дерево папок с id/displayName/parentFolderId (включите `includeItemCounts` для непрочитанных/всего, `includeChildren` для иерархии). action=`create` создает новую папку внутри входящих (или внутри `folder`/`folderId`/`folderName`) и возвращает её id. action=`move` перемещает письма (массив `emailIds`) в `targetFolder`. action=`stats` возвращает счетчики (totalItemCount/unreadItemCount) — подходит для планирования пагинации; используйте с `outputVerbosity` чтобы уменьшить шум. action=`delete` безвозвратно удаляет папку и её содержимое — корзины нет.

Управление почтовыми папками (tool-level destructiveHint=true, потому что `delete` безвозвратно удаляет папку; `list` и `stats` — действия только для чтения, несмотря на аннотацию). action=`list` (по умолчанию) возвращает дерево папок с id/displayName/parentFolderId (включите `includeItemCounts` для непрочитанных/всего, `includeChildren` для иерархии). action=`create` создает новую папку внутри входящих (или внутри `folder`/`folderId`/`folderName`) и возвращает её id. action=`move` перемещает письма (массив `emailIds`) в `targetFolder`. action=`stats` возвращает счетчики (totalItemCount/unreadItemCount) — подходит для планирования пагинации; используйте с `outputVerbosity` чтобы уменьшить шум. action=`delete` безвозвратно удаляет папку и её содержимое — корзины нет.

Параметры

  • actionenum

    Action to perform (default: list)

    listcreatemovestatsdelete
  • includeItemCountsboolean

    Include counts of total and unread items (action=list)

  • includeChildrenboolean

    Include child folders in hierarchy (action=list)

  • namestring

    Name of the folder to create (action=create, required)

  • parentFolderstring

    Parent folder name, default is root (action=create)

  • emailIdsstring

    Comma-separated list of email IDs to move (action=move, required)

  • targetFolderstring

    Folder name to move emails to (action=move, required)

  • sourceFolderstring

    Source folder name, default is inbox (action=move)

  • folderstring

    Folder name (inbox, sent, drafts, etc.). Default: inbox (action=stats)

  • outputVerbosityenum

    Output detail level (action=stats, default: standard)

    minimalstandardfull
  • folderIdstring

    Folder ID to delete (action=delete)

  • folderNamestring

    Folder name to delete — resolved to ID (action=delete). Cannot delete protected folders (Inbox, Drafts, Sent, etc.)

get-mail-tipsтолько чтение

Предварительная проверка получателя через Graph `POST /me/getMailTips` (только чтение; использует существующую область `Mail.Read` - без дополнительных разрешений). Возвращает подсказки по каждому получателю: автоматические ответы (отпуск), статус переполнения почтового ящика, пользовательские подсказки администратора, ограничения доставки, требования модерации, внешний или внутренний контекст, максимальный размер сообщения и количество участников группы (всего + внешние). Используйте перед `send-email` или `draft` action=`create`, чтобы выявить проблемы вроде автоматических ответов (OOO) или предупреждений о внешних получателях до отправки сообщения; `send-email`/`draft` принимают `checkRecipients: true`, чтобы вызывать это автоматически. Принимает строку с разделителями-запятыми или массив адресов; `tipTypes` фильтрует запрашиваемые подсказки (по умолчанию — все).

Предварительная проверка получателя через Graph `POST /me/getMailTips` (только чтение; использует существующую область `Mail.Read` - без дополнительных разрешений). Возвращает подсказки по каждому получателю: автоматические ответы (отпуск), статус переполнения почтового ящика, пользовательские подсказки администратора, ограничения доставки, требования модерации, внешний или внутренний контекст, максимальный размер сообщения и количество участников группы (всего + внешние). Используйте перед `send-email` или `draft` action=`create`, чтобы выявить проблемы вроде автоматических ответов (OOO) или предупреждений о внешних получателях до отправки сообщения; `send-email`/`draft` принимают `checkRecipients: true`, чтобы вызывать это автоматически. Принимает строку с разделителями-запятыми или массив адресов; `tipTypes` фильтрует запрашиваемые подсказки (по умолчанию — все).

Параметры

  • recipientsanyобязательный

    Email addresses to check for mail tips

  • tipTypesstring

    Comma-separated tip types to request (default: all). Options: automaticReplies, mailboxFullStatus, customMailTip, externalMemberCount, totalMemberCount, maxMessageSize, deliveryRestriction, moderationStatus, recipientScope, recipientSuggestions

list-eventsтолько чтение

Выводит предстоящие события календаря для текущего пользователя (только чтение). Возвращает массив событий с полями id, subject, start/end, attendees, location, organiser и webLink. Используйте `count` (по умолчанию 10, максимум 50), чтобы управлять размером страницы; этот инструмент не фильтрует - для фильтрации запросов используйте Outlook UI или конкретные диапазоны дат через Graph. Время возвращается в настроенном часовом поясе (по умолчанию Australia/Melbourne; переопределяется через `OUTLOOK_DEFAULT_TIMEZONE`).

Выводит предстоящие события календаря для текущего пользователя (только чтение). Возвращает массив событий с полями id, subject, start/end, attendees, location, organiser и webLink. Используйте `count` (по умолчанию 10, максимум 50), чтобы управлять размером страницы; этот инструмент не фильтрует - для фильтрации запросов используйте Outlook UI или конкретные диапазоны дат через Graph. Время возвращается в настроенном часовом поясе (по умолчанию Australia/Melbourne; переопределяется через `OUTLOOK_DEFAULT_TIMEZONE`).

Параметры

  • countnumber

    Number of events to retrieve (default: 10, max: 50)

mailbox-settingsидемпотентный

Читает или обновляет настройки на уровне почтового ящика (идемпотентно — безопасно повторять; set-операции работают как PATCH и сливаются с текущим состоянием). action=`get` (по умолчанию) возвращает настройки — используйте `section` для фильтрации (`language`, `timeZone`, `workingHours`, `automaticRepliesSetting` или `all`). action=`set-auto-replies` настраивает автоответ: `enabled` true/false, опционально `startDateTime`/`endDateTime` (ISO 8601) для запланированного режима, `internalReplyMessage` и (опционально) `externalReplyMessage`. action=`set-working-hours` обновляет расписание: `startTime`/`endTime` (HH:MM) и `daysOfWeek` (массив от `monday` до `sunday`). При set-действиях возвращает обновлённый объект настроек.

Читает или обновляет настройки на уровне почтового ящика (идемпотентно — безопасно повторять; set-операции работают как PATCH и сливаются с текущим состоянием). action=`get` (по умолчанию) возвращает настройки — используйте `section` для фильтрации (`language`, `timeZone`, `workingHours`, `automaticRepliesSetting` или `all`). action=`set-auto-replies` настраивает автоответ: `enabled` true/false, опционально `startDateTime`/`endDateTime` (ISO 8601) для запланированного режима, `internalReplyMessage` и (опционально) `externalReplyMessage`. action=`set-working-hours` обновляет расписание: `startTime`/`endTime` (HH:MM) и `daysOfWeek` (массив от `monday` до `sunday`). При set-действиях возвращает обновлённый объект настроек.

Параметры

  • actionenum

    Action to perform (default: get)

    getset-auto-repliesset-working-hours
  • sectionenum

    Specific section to retrieve (action=get, default: all)

    alllanguagetimeZoneworkingHoursautomaticRepliesSetting
  • enabledboolean

    Enable (true) or disable (false) automatic replies (action=set-auto-replies)

  • startDateTimestring

    Start date/time for scheduled mode, ISO 8601 format (action=set-auto-replies)

  • endDateTimestring

    End date/time for scheduled mode, ISO 8601 format (action=set-auto-replies)

  • internalReplyMessagestring

    Reply message for internal senders (action=set-auto-replies)

  • externalReplyMessagestring

    Reply message for external senders (action=set-auto-replies)

  • externalAudienceenum

    Who receives external reply (action=set-auto-replies)

    nonecontactsOnlyall
  • startTimestring

    Work start time in HH:MM format, e.g. '09:00' (action=set-working-hours)

  • endTimestring

    Work end time in HH:MM format, e.g. '17:00' (action=set-working-hours)

  • daysOfWeekstring[]

    Work days, e.g. ['monday','tuesday','wednesday','thursday','friday'] (action=set-working-hours)

  • timeZonestring

    Time zone name, e.g. 'Australia/Melbourne' (action=set-working-hours)

manage-category

Управляет главным списком категорий пользователя (цветные метки, доступные в почте, календаре и контактах). action=`list` (по умолчанию) возвращает категории с id/displayName/color. action=`create` добавляет новую категорию — `displayName` обязателен, `color` опционален (preset0-preset24, например preset0=Red, preset7=Blue). action=`update` (псевдоним `set` — устарел) меняет имя/цвет по `id`. action=`delete` удаляет категорию — это НЕ снимает метки с уже помеченных сообщений; существующие сообщения сохраняют "осиротевшую" метку до ручной очистки. Используйте `apply-category` для маркировки/снятия меток с конкретных сообщений.

Управляет главным списком категорий пользователя (цветные метки, доступные в почте, календаре и контактах). action=`list` (по умолчанию) возвращает категории с id/displayName/color. action=`create` добавляет новую категорию — `displayName` обязателен, `color` опционален (preset0-preset24, например preset0=Red, preset7=Blue). action=`update` (псевдоним `set` — устарел) меняет имя/цвет по `id`. action=`delete` удаляет категорию — это НЕ снимает метки с уже помеченных сообщений; существующие сообщения сохраняют "осиротевшую" метку до ручной очистки. Используйте `apply-category` для маркировки/снятия меток с конкретных сообщений.

Параметры

  • actionenum

    Action to perform (default: list). 'set' is a deprecated alias for 'update'.

    listcreateupdatesetdelete
  • outputVerbosityenum

    Output detail level (action=list, default: standard)

    minimalstandardfull
  • displayNamestring

    Category name (action=create required, action=update optional)

  • colorenum

    Color preset, e.g. preset0=Red, preset7=Blue (action=create/update)

    preset0preset1preset2preset3preset4preset5preset6preset7preset8preset9preset10preset11preset12preset13preset14preset15preset16preset17preset18preset19preset20preset21preset22preset23preset24
  • idstring

    Category ID (action=update/delete, required)

  • categoryIdstring

    DEPRECATED: alias for `id`. Will be removed in v3.8.0.

manage-contact

Полный CRUD над личными контактами Outlook текущего пользователя (деструктивная операция: включает действие `delete`). action=`list` (по умолчанию) возвращает контакты с пагинацией через `skip`/`count` (по умолчанию 50). action=`search` возвращает контакты, соответствующие `query` по имени или email (по умолчанию 25). action=`get` возвращает полную информацию о контакте по `id`. action=`create` добавляет новый контакт и возвращает его `id`. action=`update` обновляет переданные поля по `id` (изменяются только переданные поля). action=`delete` безвозвратно удаляет контакт по `id`. Используйте `outputVerbosity` (minimal/standard/full) на list/search, чтобы контролировать количество полей. Предпочитайте `search-people` для ранжирования по релевантности из разных источников (контакты + каталог + недавние сообщения) - этот инструмент ищет только по вашим личным контактам Outlook.

Полный CRUD над личными контактами Outlook текущего пользователя (деструктивная операция: включает действие `delete`). action=`list` (по умолчанию) возвращает контакты с пагинацией через `skip`/`count` (по умолчанию 50). action=`search` возвращает контакты, соответствующие `query` по имени или email (по умолчанию 25). action=`get` возвращает полную информацию о контакте по `id`. action=`create` добавляет новый контакт и возвращает его `id`. action=`update` обновляет переданные поля по `id` (изменяются только переданные поля). action=`delete` безвозвратно удаляет контакт по `id`. Используйте `outputVerbosity` (minimal/standard/full) на list/search, чтобы контролировать количество полей. Предпочитайте `search-people` для ранжирования по релевантности из разных источников (контакты + каталог + недавние сообщения) - этот инструмент ищет только по вашим личным контактам Outlook.

Параметры

  • actionenum

    Action to perform (default: list)

    listsearchgetcreateupdatedelete
  • countnumber

    Number of results (action=list default: 50, action=search default: 25)

  • skipinteger

    Pagination offset for action=list (default: 0). Use the value suggested by the previous page response.

  • folderstring

    Contact folder ID (action=list)

  • outputVerbosityenum

    Output detail level (action=list/search, default: standard)

    minimalstandardfull
  • querystring

    Search query for name or email (action=search, required)

  • idstring

    Contact ID (action=get/update/delete, required)

  • displayNamestring

    Full name (action=create/update)

  • firstNamestring

    Given name (action=create/update). Maps to Graph `givenName`. If displayName not provided, will be combined with lastName.

  • lastNamestring

    Surname (action=create/update). Maps to Graph `surname`.

  • emailstring

    Primary email address (action=create/update)

  • emailsstring[]

    Multiple email addresses (action=create/update). First entry is primary.

  • mobilePhonestring

    Mobile phone number (action=create/update)

  • companyNamestring

    Company name (action=create/update)

  • jobTitlestring

    Job title (action=create/update)

  • notesstring

    Personal notes (action=create/update)

manage-event

Управление существующим событием календаря (деструктивное: охватывает update/decline/cancel/delete — используйте dryRun, где поддерживается, для предварительного просмотра). action=`update` редактирует поля на месте через PATCH (subject, start, end, attendees, body, location, isOnlineMeeting, sensitivity, showAs, importance, categories, reminderMinutesBeforeStart) — изменяются только переданные поля; передайте `dryRun: true` для предварительного просмотра PATCH-нагрузки. action=`decline` отклоняет приглашение (опционально `comment`). action=`cancel` отменяет событие, которое вы организовали, и уведомляет участников. action=`delete` окончательно удаляет событие. Возвращает обновлённое событие при update; в остальных случаях — подтверждение статуса. Примечание: action `accept` отсутствует — принимайте приглашения в интерфейсе Outlook (глагол accept в Graph ненадёжен для событий).

Управление существующим событием календаря (деструктивное: охватывает update/decline/cancel/delete — используйте dryRun, где поддерживается, для предварительного просмотра). action=`update` редактирует поля на месте через PATCH (subject, start, end, attendees, body, location, isOnlineMeeting, sensitivity, showAs, importance, categories, reminderMinutesBeforeStart) — изменяются только переданные поля; передайте `dryRun: true` для предварительного просмотра PATCH-нагрузки. action=`decline` отклоняет приглашение (опционально `comment`). action=`cancel` отменяет событие, которое вы организовали, и уведомляет участников. action=`delete` окончательно удаляет событие. Возвращает обновлённое событие при update; в остальных случаях — подтверждение статуса. Примечание: action `accept` отсутствует — принимайте приглашения в интерфейсе Outlook (глагол accept в Graph ненадёжен для событий).

Параметры

  • actionenumобязательный

    Action to perform (required)

    updatedeclinecanceldelete
  • eventIdstring

    The ID of the event

  • idstring

    Alias for `eventId` (canonical per the v3.7.3 alias pass).

  • commentstring

    Optional comment for declining or cancelling the event

  • subjectstring

    New subject (action=update only)

  • startany

    New start time as ISO 8601 string or {dateTime, timeZone} object (action=update only)

  • endany

    New end time as ISO 8601 string or {dateTime, timeZone} object (action=update only)

  • attendeesstring[]

    Full replacement attendee list — pass complete desired list, or [] to clear (action=update only)

  • bodystring

    New body content (action=update only)

  • locationstring

    New location display name (action=update only)

  • isOnlineMeetingboolean

    Toggle online meeting flag (action=update only)

  • sensitivityenum

    Event sensitivity classification (action=update only)

    normalpersonalprivateconfidential
  • showAsenum

    Free/busy status shown to others (action=update only)

    freetentativebusyoofworkingElsewhereunknown
  • importanceenum

    Event importance flag (action=update only)

    lownormalhigh
  • categoriesstring[]

    Full replacement category list — pass [] to clear (action=update only)

  • reminderMinutesBeforeStartnumber

    Minutes before start to fire the reminder (action=update only)

  • dryRunboolean

    Preview the PATCH without applying it (action=update only). Returns the body that would be sent to Graph.

manage-focused-inbox

Управляет переопределениями Фокусированного ящика — явными правилами, которые заставляют сообщения от указанного отправителя попадать в «Фокус» или «Другое» независимо от классификации ML. `action=list` (по умолчанию) возвращает существующие переопределения с id/отправителем/классификацией. `action=set` создаёт или обновляет переопределение для `emailAddress` (опционально `name`), направляя будущие письма в `focused` (по умолчанию) или `other`. `action=delete` удаляет переопределение для `emailAddress`. Примечание: это работает только для аккаунтов, у которых включен Фокусированный ящик — личные аккаунты Outlook.com без него возвращают пустой список.

Управляет переопределениями Фокусированного ящика — явными правилами, которые заставляют сообщения от указанного отправителя попадать в «Фокус» или «Другое» независимо от классификации ML. `action=list` (по умолчанию) возвращает существующие переопределения с id/отправителем/классификацией. `action=set` создаёт или обновляет переопределение для `emailAddress` (опционально `name`), направляя будущие письма в `focused` (по умолчанию) или `other`. `action=delete` удаляет переопределение для `emailAddress`. Примечание: это работает только для аккаунтов, у которых включен Фокусированный ящик — личные аккаунты Outlook.com без него возвращают пустой список.

Параметры

  • actionenum

    Action to perform (default: list)

    listsetdelete
  • outputVerbosityenum

    Output detail level (action=list, default: standard)

    minimalstandardfull
  • emailAddressstring

    Sender email address (action=set/delete, required)

  • namestring

    Sender display name (action=set)

  • classifyAsenum

    Where to put emails from this sender (action=set, default: focused)

    focusedother
manage-rules

CRUD правил входящей почты на стороне сервера (деструктивный: включает `delete`; поддерживает `dryRun` при создании/обновлении для предварительного просмотра). Правила выполняются на сервере Exchange независимо от того, какой клиент открыт. `action=list` (по умолчанию) возвращает правила с id/name/sequence — передайте `includeDetails: true`, чтобы развернуть условия/действия/исключения. `action=create` создаёт новое правило из параметров условий (12 поддерживаемых: fromAddresses, containsSubject, bodyContains, hasAttachments, importance, sentTo, sensitivity и т.д.), параметров действий (9 поддерживаемых: moveToFolder, forwardTo, redirectTo, assignCategories, markAsRead, delete и т.д.) и опциональных исключений `except*`. `action=update` исправляет указанные поля по `ruleId`. `action=reorder` меняет приоритет выполнения через `sequence` (меньше — раньше). `action=delete` удаляет правило. Список разрешённых получателей применяется для forwardTo/redirectTo. Действие `permanentDelete` намеренно пропущено (слишком опасно для использования AI — пользуйтесь интерфейсом Outlook). Применяются сессионные лимиты (`OUTLOOK_MAX_MANAGE_RULES_PER_SESSION`).

CRUD правил входящей почты на стороне сервера (деструктивный: включает `delete`; поддерживает `dryRun` при создании/обновлении для предварительного просмотра). Правила выполняются на сервере Exchange независимо от того, какой клиент открыт. `action=list` (по умолчанию) возвращает правила с id/name/sequence — передайте `includeDetails: true`, чтобы развернуть условия/действия/исключения. `action=create` создаёт новое правило из параметров условий (12 поддерживаемых: fromAddresses, containsSubject, bodyContains, hasAttachments, importance, sentTo, sensitivity и т.д.), параметров действий (9 поддерживаемых: moveToFolder, forwardTo, redirectTo, assignCategories, markAsRead, delete и т.д.) и опциональных исключений `except*`. `action=update` исправляет указанные поля по `ruleId`. `action=reorder` меняет приоритет выполнения через `sequence` (меньше — раньше). `action=delete` удаляет правило. Список разрешённых получателей применяется для forwardTo/redirectTo. Действие `permanentDelete` намеренно пропущено (слишком опасно для использования AI — пользуйтесь интерфейсом Outlook). Применяются сессионные лимиты (`OUTLOOK_MAX_MANAGE_RULES_PER_SESSION`).

Параметры

  • actionenum

    Action to perform (default: list)

    listcreateupdatereorderdelete
  • includeDetailsboolean

    Include detailed conditions, actions, and exceptions (action=list)

  • namestring

    Rule name (action=create required, action=update to rename)

  • displayNamestring

    Alias for `name` (matches Graph's own `displayName` field).

  • dryRunboolean

    Preview rule without creating/updating (action=create, action=update)

  • isEnabledboolean

    Enable/disable rule (action=create default: true, action=update)

  • sequencenumber

    Execution order, lower = higher priority (action=create default: auto, action=reorder required)

  • fromAddressesstring

    Comma-separated sender emails to match (action=create/update)

  • containsSubjectstring

    Comma-separated subject keywords (OR logic). e.g. "invoice, receipt, payment" (action=create/update)

  • bodyContainsstring

    Comma-separated body text keywords (OR logic) (action=create/update)

  • bodyOrSubjectContainsstring

    Comma-separated keywords matching body OR subject (OR logic) (action=create/update)

  • senderContainsstring

    Comma-separated partial sender matches (action=create/update)

  • recipientContainsstring

    Comma-separated partial recipient matches (action=create/update)

  • sentToAddressesstring

    Comma-separated recipient emails to match (action=create/update)

  • hasAttachmentsboolean

    Match emails with attachments (action=create/update)

  • importanceenum

    Match emails with this importance (action=create/update)

    lownormalhigh
  • sensitivityenum

    Match emails with this sensitivity (action=create/update)

    normalpersonalprivateconfidential
  • sentToMeboolean

    Match emails sent to me (action=create/update)

  • sentOnlyToMeboolean

    Match emails where I am the only recipient (action=create/update)

  • sentCcMeboolean

    Match emails where I am in CC (action=create/update)

  • isAutomaticReplyboolean

    Match automatic reply emails (action=create/update)

  • moveToFolderstring

    Folder name to move matching emails to (action=create/update)

  • copyToFolderstring

    Folder name to copy matching emails to (action=create/update)

  • markAsReadboolean

    Mark matching emails as read (action=create/update)

  • markImportanceenum

    Set importance on matching emails (action=create/update)

    lownormalhigh
  • forwardTostring

    Comma-separated emails to forward matching messages to (action=create/update)

  • redirectTostring

    Comma-separated emails to redirect matching messages to (action=create/update)

  • assignCategoriesstring

    Comma-separated Outlook categories to assign (action=create/update)

  • stopProcessingRulesboolean

    Stop evaluating subsequent rules (action=create/update)

  • deleteMessageboolean

    Move matching emails to Deleted Items (action=create/update)

  • exceptFromAddressesstring

    Comma-separated sender emails to exclude (action=create/update)

  • exceptSubjectContainsstring

    Comma-separated subject keywords to exclude (action=create/update)

  • exceptSenderContainsstring

    Comma-separated partial sender matches to exclude (action=create/update)

  • exceptBodyContainsstring

    Comma-separated body keywords to exclude (action=create/update)

  • exceptHasAttachmentsboolean

    Exclude emails with attachments (action=create/update)

  • ruleNamestring

    Name of existing rule (action=update/reorder/delete)

  • ruleIdstring

    ID of existing rule (action=update/delete)

read-emailтолько чтение

Читает одно письмо по идентификатору (только чтение). По умолчанию: возвращает полное тело сообщения (HTML по умолчанию преобразуется в текст), тему, from/to/cc, receivedDateTime, conversationId, метаданные вложений и webLink в формате Markdown. С параметром `headersMode: true`: вместо этого возвращает криминалистические заголовки RFC-822 (DKIM, SPF, DMARC, цепочку Received, Message-ID, Authentication-Results). Комбинируйте с `importantOnly: true` для подмножества, относящегося к безопасности, с `groupByType: true` для сгруппированного по категориям представления или с `raw: true` для JSON вместо Markdown. С параметром `includeHeaders: true` (не в режиме заголовков): добавляет основные заголовки вместе с телом. Используйте `outputVerbosity` (minimal/standard/full) для управления детализацией вывода.

Читает одно письмо по идентификатору (только чтение). По умолчанию: возвращает полное тело сообщения (HTML по умолчанию преобразуется в текст), тему, from/to/cc, receivedDateTime, conversationId, метаданные вложений и webLink в формате Markdown. С параметром `headersMode: true`: вместо этого возвращает криминалистические заголовки RFC-822 (DKIM, SPF, DMARC, цепочку Received, Message-ID, Authentication-Results). Комбинируйте с `importantOnly: true` для подмножества, относящегося к безопасности, с `groupByType: true` для сгруппированного по категориям представления или с `raw: true` для JSON вместо Markdown. С параметром `includeHeaders: true` (не в режиме заголовков): добавляет основные заголовки вместе с телом. Используйте `outputVerbosity` (minimal/standard/full) для управления детализацией вывода.

Параметры

  • idstringобязательный

    ID of the email to read

  • headersModeboolean

    Return forensic headers instead of email content (default: false)

  • includeHeadersboolean

    Include basic headers alongside email content (default: false)

  • outputVerbosityenum

    Output detail level (default: standard)

    minimalstandardfull
  • groupByTypeboolean

    Group headers by category (headersMode only, default: false)

  • importantOnlyboolean

    Show only important headers (headersMode only, default: false)

  • rawboolean

    Return raw JSON instead of Markdown (headersMode only, default: false)

search-emailsтолько чтение

Поиск, список, дельта-синхронизация или группировка писем по обсуждениям — шесть режимов, выбираемых параметрами (только чтение). Без параметров: выводит список последних писем в папке `folder` (по умолчанию `inbox`). С фильтрами `query`/`from`/`to`/`subject`/date: полноценный поиск (объединяется через OData filter). С `kqlQuery`: сырой язык ключевых запросов (Keyword Query Language) для расширенного поиска на стороне сервера. С `deltaMode: true`: возвращает текущее состояние плюс `deltaToken`; передайте токен обратно при следующем вызове, чтобы получить только инкрементальные изменения — идеально для мониторинга папки входящих. С `groupByConversation: true`: возвращает обсуждения (threads). С `conversationId`: возвращает все сообщения в одной ветке обсуждения. С `internetMessageId`: ищет письмо по его заголовку RFC Message-ID. Личные аккаунты Outlook.com имеют ограниченную поддержку `$search` — этот инструмент автоматически переключается на OData filters / boolean filters / последний список, но структурированные фильтры (`from`/`subject`/`receivedAfter`/`hasAttachments`/`unreadOnly`) дают более чистые результаты. По умолчанию возвращает постраничные сообщения с полями id/subject/from/receivedDateTime/preview; используйте `outputVerbosity` для расширенного вывода.

Поиск, список, дельта-синхронизация или группировка писем по обсуждениям — шесть режимов, выбираемых параметрами (только чтение). Без параметров: выводит список последних писем в папке `folder` (по умолчанию `inbox`). С фильтрами `query`/`from`/`to`/`subject`/date: полноценный поиск (объединяется через OData filter). С `kqlQuery`: сырой язык ключевых запросов (Keyword Query Language) для расширенного поиска на стороне сервера. С `deltaMode: true`: возвращает текущее состояние плюс `deltaToken`; передайте токен обратно при следующем вызове, чтобы получить только инкрементальные изменения — идеально для мониторинга папки входящих. С `groupByConversation: true`: возвращает обсуждения (threads). С `conversationId`: возвращает все сообщения в одной ветке обсуждения. С `internetMessageId`: ищет письмо по его заголовку RFC Message-ID. Личные аккаунты Outlook.com имеют ограниченную поддержку `$search` — этот инструмент автоматически переключается на OData filters / boolean filters / последний список, но структурированные фильтры (`from`/`subject`/`receivedAfter`/`hasAttachments`/`unreadOnly`) дают более чистые результаты. По умолчанию возвращает постраничные сообщения с полями id/subject/from/receivedDateTime/preview; используйте `outputVerbosity` для расширенного вывода.

Параметры

  • deltaModeboolean

    Enable delta sync mode. Returns only changes since last sync. Use deltaToken for subsequent calls.

  • internetMessageIdstring

    Look up email by Message-ID header (e.g. <abc123@example.com>). For threading/deduplication.

  • conversationIdstring

    Get all messages in a conversation thread by conversationId.

  • groupByConversationboolean

    List conversations (threads) grouped by conversationId instead of individual emails.

  • querystring

    Search query text. Omit for list mode.

  • kqlQuerystring

    Raw KQL (Keyword Query Language) query for advanced search. Bypasses other search params.

  • folderstring

    Email folder (default: 'inbox')

  • fromstring

    Filter by sender email/name

  • tostring

    Filter by recipient email/name

  • subjectstring

    Filter by subject

  • hasAttachmentsboolean

    Filter to emails with attachments

  • unreadOnlyboolean

    Filter to unread emails only

  • receivedAfterstring

    Filter emails received after date (ISO 8601)

  • receivedBeforestring

    Filter emails received before date (ISO 8601)

  • searchAllFoldersboolean

    Search across all mail folders

  • countnumber

    Number of results (list default: 25, search default: 10, max: 50)

  • outputVerbosityenum

    Output detail level (default: standard)

    minimalstandardfull
  • deltaTokenstring

    Token from previous delta call for incremental sync (deltaMode only)

  • maxResultsnumber

    Max results per page for delta sync (default: 100, max: 200)

  • includeHeadersboolean

    Include email headers for each message (conversationId only)

search-peopleтолько чтение

Поиск с сортировкой по релевантности в личных контактах, справочнике организации и недавних сообщениях через Microsoft Graph People API (только чтение). Возвращает объекты people с полями `displayName`, `emailAddresses`, `companyName`, `jobTitle` и метаданными релевантности: подходит для запросов вида "кто такой X?" или "кому написать о Y?". Используйте `manage-contact` с action=`search`, когда вам нужны записи только из вашего личного хранилища контактов.

Поиск с сортировкой по релевантности в личных контактах, справочнике организации и недавних сообщениях через Microsoft Graph People API (только чтение). Возвращает объекты people с полями `displayName`, `emailAddresses`, `companyName`, `jobTitle` и метаданными релевантности: подходит для запросов вида "кто такой X?" или "кому написать о Y?". Используйте `manage-contact` с action=`search`, когда вам нужны записи только из вашего личного хранилища контактов.

Параметры

  • querystringобязательный

    Search query (name, email, company)

  • countnumber

    Maximum results to return (default: 25, max: 50)

send-emailвнешний мир

Составляет и отправляет письмо немедленно (деструктивно: отправляет внешние коммуникации). Возвращает подтверждение с идентификатором сохранённого сообщения. Контроль безопасности: `dryRun: true` — возвращает готовое письмо для проверки без отправки; `checkRecipients: true` — сначала запускает `get-mail-tips`, чтобы отметить получателей с автоответом / переполненным ящиком / ограничением доставки / внешних получателей; комбинируйте оба флага для полной проверки перед отправкой. Подчиняется лимитам сессии (`OUTLOOK_MAX_EMAILS_PER_SESSION`) и белому списку получателей (`OUTLOOK_ALLOWED_RECIPIENTS`) — вызовы вне белого списка завершаются ошибкой до любых Graph-запросов. Для многошаговых сценариев составления/проверки используйте `draft` (действие `create` → `update` → `send`), так как черновики можно просмотреть в Outlook перед отправкой. Строки получателей через запятую или массивы — оба варианта допустимы.

Составляет и отправляет письмо немедленно (деструктивно: отправляет внешние коммуникации). Возвращает подтверждение с идентификатором сохранённого сообщения. Контроль безопасности: `dryRun: true` — возвращает готовое письмо для проверки без отправки; `checkRecipients: true` — сначала запускает `get-mail-tips`, чтобы отметить получателей с автоответом / переполненным ящиком / ограничением доставки / внешних получателей; комбинируйте оба флага для полной проверки перед отправкой. Подчиняется лимитам сессии (`OUTLOOK_MAX_EMAILS_PER_SESSION`) и белому списку получателей (`OUTLOOK_ALLOWED_RECIPIENTS`) — вызовы вне белого списка завершаются ошибкой до любых Graph-запросов. Для многошаговых сценариев составления/проверки используйте `draft` (действие `create` → `update` → `send`), так как черновики можно просмотреть в Outlook перед отправкой. Строки получателей через запятую или массивы — оба варианта допустимы.

Параметры

  • tostringобязательный

    Comma-separated recipient email addresses

  • ccstring

    Comma-separated CC email addresses

  • bccstring

    Comma-separated BCC email addresses

  • subjectstringобязательный

    Email subject

  • bodystringобязательный

    Email body (plain text or HTML)

  • importanceenum

    Email importance (default: normal)

    normalhighlow
  • saveToSentItemsboolean

    Save to sent items (default: true)

  • dryRunboolean

    Preview email without sending (default: false). Returns composed email for review.

  • checkRecipientsboolean

    Check recipients for out-of-office, mailbox full, delivery restrictions before sending (default: false). Combine with dryRun=true for pre-send review.

update-emailидемпотентный

Обновляет состояние сообщения без изменения содержимого (идемпотентно — безопасно для повторного вызова). `action=mark-read` / `mark-unread` переключает флаг `isRead` у одного сообщения по `id`. `action=flag` устанавливает флаг для последующего выполнения с опциональными `dueDateTime` / `startDateTime` (ISO 8601). `action=unflag` снимает флаг. `action=complete` отмечает флаг как выполненный. Flag / unflag / complete принимают либо `id` (одиночный), либо `ids` (массив для пакетной обработки) — пакетные операции используют Graph `$batch` для эффективности. Возвращает подтверждение статуса для каждого сообщения.

Обновляет состояние сообщения без изменения содержимого (идемпотентно — безопасно для повторного вызова). `action=mark-read` / `mark-unread` переключает флаг `isRead` у одного сообщения по `id`. `action=flag` устанавливает флаг для последующего выполнения с опциональными `dueDateTime` / `startDateTime` (ISO 8601). `action=unflag` снимает флаг. `action=complete` отмечает флаг как выполненный. Flag / unflag / complete принимают либо `id` (одиночный), либо `ids` (массив для пакетной обработки) — пакетные операции используют Graph `$batch` для эффективности. Возвращает подтверждение статуса для каждого сообщения.

Параметры

  • actionenumобязательный

    Action to perform (required)

    mark-readmark-unreadflagunflagcomplete
  • idstring

    Single message ID (required for mark-read/mark-unread, or use instead of ids for flag actions)

  • idsstring[]

    Array of message IDs for batch flag/unflag/complete operations

  • dueDateTimestring

    Due date/time for follow-up, ISO 8601 (action=flag)

  • startDateTimestring

    Start date/time for follow-up, ISO 8601 (action=flag)

Другие проверенные MCP-сервера

zenml-io/mcp-zenml

zenml-io/mcp-zenml

официальный

MCP-сервер для интеграции ZenML с AI-ассистентами. Позволяет просматривать и запускать ML-пайплайны, управлять стеками, компонентами и моделями. Полезен ML-инженерам для оперативного доступа к данн...

Python49
cjo4m06/mcp-shrimp-task-manager

cjo4m06/mcp-shrimp-task-manager

Shrimp Task Manager — это MCP-сервер для умного управления задачами в AI-разработке. Он разбивает сложные проекты на атомарные подзадачи, отслеживает зависимости и сохраняет контекст между сессиями. Отлично подходит разработчикам, работающим с ИИ-агентами.

JavaScript2135
Azure/azure-mcp

Azure/azure-mcp

официальный

MCP-сервер для Azure, упрощающий подключение ИИ-агентов к облачным ресурсам. Разработчики используют его для безопасного доступа к данным и автоматизации операций. Интеграция с Azure AI и службами через единый протокол.

C#1226
Google Ads MCP

Google Ads MCP

официальный

MCP сервер для Google Ads API: предоставляет инструменты поиска по аккаунту, метаданных кампаний и список клиентов, а также ресурсы с метриками и сегментами. Помогает LLM и AI агентам управлять рекламными данными напрямую.

Python752
last9/last9-mcp-server

last9/last9-mcp-server

официальный

Last9 MCP-сервер подключает AI-агентов (Claude, Cursor, Windsurf) к вашим производственным данным observability — логам, метрикам, трейсам, алертам. Без установки бинарников, через OAuth. Полезен S...

Go59
ios-simulator-mcp

ios-simulator-mcp

MCP-сервер для iOS-симуляторов: управление UI-элементами, скриншоты, запись видео и установка приложений. Помогает QA-инженерам и разработчикам автоматизировать тестирование интерфейсов с помощью И...

JavaScript2105
© Каталог MCP, 2026. Все права защищены.
Проект не аффилирован с Anthropic и любыми упомянутыми продуктами.
Все названия и торговые марки принадлежат их владельцам.
Контакты для связи: hi@mcp-katalog.ru

Лука Никитин