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 с путём к папке, ограниченной этим ящиком.

Параметры
  • countnumber

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

  • emailstring

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

  • folderstring

    Folder to read from (default: inbox)

  • outputVerbosityenum

    Output detail level (default: standard)

  • sharedMailboxstring

    Email address of the shared mailbox (required)

apply-category

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

Параметры
  • actionenum

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

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

    Category display names to apply/remove (required)

  • messageIdstring

    Single message ID to categorise

  • messageIdsstring[]

    Array of message IDs to categorise (batch operation)

attachmentsвнешний мир

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

Параметры
  • actionenum

    Action to perform (default: list)

  • attachmentIdstring

    Attachment ID (action=view/download, required)

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

    Email message ID (required)

  • outputDirstring

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

  • savePathstring

    DEPRECATED alias for outputDir. Will be removed in a future release.

auth

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

Параметры
  • actionenum

    Action to perform (default: status)

  • forceboolean

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

  • methodenum

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

create-event

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

Параметры
  • attendeesstring[]

    List of attendee email addresses

  • bodystring

    Optional body content for the event

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

    The end time of the event in ISO 8601 format

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

    The start time of the event in ISO 8601 format

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

    The subject of 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.

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

    Action to perform (required)

  • bccstring

    Comma-separated BCC email addresses

  • bodystring

    Email body (plain text or HTML)

  • ccstring

    Comma-separated CC email addresses

  • checkRecipientsboolean

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

  • commentstring

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

  • dryRunboolean

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

  • idstring

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

  • importanceenum

    Email importance (default: normal)

  • subjectstring

    Email subject

  • tostring

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

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 для пакетного. Поддерживаемые форматы зависят от цели — смотрите перечисление параметров.

Параметры
  • base64boolean

    Return base64 encoded (target=mime)

  • conversationIdstring

    Conversation ID (target=conversation, required)

  • emailIdsstring[]

    Email IDs to export (target=messages)

  • 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).

  • headersOnlyboolean

    MIME headers only, no body (target=mime)

  • idstring

    Email ID (target=message/mime, required)

  • includeAttachmentsboolean

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

  • maxSizenumber

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

  • orderenum

    Message order (target=conversation, default: chronological)

  • outputDirstring

    Output directory (target=messages/conversation, required)

  • querystring

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

  • savePathstring

    File path or directory (target=message)

  • searchQueryobject

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

  • targetenum

    Export target (default: message)

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

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

Параметры
  • buildingstring

    Filter by building name

  • capacitynumber

    Minimum capacity required

  • floornumber

    Filter by floor number

  • outputVerbosityenum

    Output detail level (default: standard)

  • querystring

    Search query (room name, email)

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 безвозвратно удаляет папку и её содержимое — корзины нет.

Параметры
  • actionenum

    Action to perform (default: list)

  • emailIdsstring

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

  • folderstring

    Folder name or path (inbox, sent, "Triage/Delete", etc.). Default: inbox (action=stats)

  • folderIdstring

    Folder ID (action=stats/delete)

  • folderNamestring

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

  • includeChildrenboolean

    Include child folders in hierarchy (action=list)

  • includeItemCountsboolean

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

  • namestring

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

  • outputVerbosityenum

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

  • parentFolderstring

    Parent folder name or path (e.g. "Clients/Acme"); default is root (action=create)

  • parentFolderIdstring

    Parent folder ID — alternative to parentFolder for unambiguous targeting (action=create)

  • sourceFolderstring

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

  • targetFolderstring

    Destination folder name or path, e.g. "Triage/Delete" (action=move; or use targetFolderId)

  • targetFolderIdstring

    Destination folder ID — alternative to targetFolder for unambiguous/nested targeting (action=move)

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

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

Параметры
  • recipientsstring[] | stringобязательный

    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).

Параметры
  • 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-действиях возвращает обновлённый объект настроек.

Параметры
  • actionenum

    Action to perform (default: get)

  • daysOfWeekenum[]

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

  • enabledboolean

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

  • endDateTimestring

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

  • endTimestring

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

  • externalAudienceenum

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

  • externalReplyMessagestring

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

  • internalReplyMessagestring

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

  • sectionenum

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

  • startDateTimestring

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

  • startTimestring

    Work start time in HH:MM format, e.g. '09:00' (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 для маркировки/снятия меток с конкретных сообщений.

Параметры
  • actionenum

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

  • categoryIdstring

    DEPRECATED: alias for id. Will be removed in a future release.

  • colorenum

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

  • displayNamestring

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

  • idstring

    Category ID (action=update/delete, required)

  • outputVerbosityenum

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

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.

Параметры
  • actionenum

    Action to perform (default: list)

  • companyNamestring

    Company name (action=create/update)

  • countnumber

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

  • displayNamestring

    Full name (action=create/update)

  • emailstring

    Primary email address (action=create/update)

  • emailsstring[]

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

  • firstNamestring

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

  • folderstring

    Contact folder ID (action=list)

  • idstring

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

  • jobTitlestring

    Job title (action=create/update)

  • lastNamestring

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

  • mobilePhonestring

    Mobile phone number (action=create/update)

  • notesstring

    Personal notes (action=create/update)

  • outputVerbosityenum

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

  • querystring

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

  • skipinteger

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

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 ненадёжен для событий).

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

    Action to perform (required)

  • attendeesstring[]

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

  • bodystring

    New body content (action=update only)

  • categoriesstring[]

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

  • commentstring

    Optional comment for declining or cancelling the event

  • dryRunboolean

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

  • endstring | object

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

  • eventIdstring

    The ID of the event

  • idstring

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

  • importanceenum

    Event importance flag (action=update only)

  • isOnlineMeetingboolean

    Toggle online meeting flag (action=update only)

  • locationstring

    New location display name (action=update only)

  • reminderMinutesBeforeStartnumber

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

  • sensitivityenum

    Event sensitivity classification (action=update only)

  • showAsenum

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

  • startstring | object

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

  • subjectstring

    New subject (action=update only)

manage-focused-inbox

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

Параметры
  • actionenum

    Action to perform (default: list)

  • classifyAsenum

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

  • emailAddressstring

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

  • namestring

    Sender display name (action=set)

  • outputVerbosityenum

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

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).

Параметры
  • actionenum

    Action to perform (default: list)

  • assignCategoriesstring

    Comma-separated Outlook categories to assign (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)

  • containsSubjectstring

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

  • copyToFolderstring

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

  • deleteMessageboolean

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

  • displayNamestring

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

  • dryRunboolean

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

  • exceptBodyContainsstring

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

  • exceptFromAddressesstring

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

  • exceptHasAttachmentsboolean

    Exclude emails with attachments (action=create/update)

  • exceptSenderContainsstring

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

  • exceptSubjectContainsstring

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

  • forwardTostring

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

  • fromAddressesstring

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

  • hasAttachmentsboolean

    Match emails with attachments (action=create/update)

  • importanceenum

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

  • includeDetailsboolean

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

  • isAutomaticReplyboolean

    Match automatic reply emails (action=create/update)

  • isEnabledboolean

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

  • markAsReadboolean

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

  • markImportanceenum

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

  • moveToFolderstring

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

  • namestring

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

  • recipientContainsstring

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

  • redirectTostring

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

  • ruleIdstring

    ID of existing rule (action=update/delete)

  • ruleNamestring

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

  • senderContainsstring

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

  • sensitivityenum

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

  • sentCcMeboolean

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

  • sentOnlyToMeboolean

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

  • sentToAddressesstring

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

  • sentToMeboolean

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

  • sequencenumber

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

  • stopProcessingRulesboolean

    Stop evaluating subsequent rules (action=create/update)

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) для управления детализацией вывода.

Параметры
  • groupByTypeboolean

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

  • headersModeboolean

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

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

    ID of the email to read

  • importantOnlyboolean

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

  • includeHeadersboolean

    Include basic headers alongside email content (default: false)

  • outputVerbosityenum

    Output detail level (default: standard)

  • 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 для расширенного вывода.

Параметры
  • conversationIdstring

    Get all messages in a conversation thread by conversationId.

  • countnumber

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

  • deltaModeboolean

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

  • deltaTokenstring

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

  • folderstring

    Email folder (default: 'inbox')

  • fromstring

    Filter by sender email/name

  • groupByConversationboolean

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

  • hasAttachmentsboolean

    Filter to emails with attachments

  • includeHeadersboolean

    Include email headers for each message (conversationId only)

  • internetMessageIdstring

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

  • kqlQuerystring

    DEPRECATED alias for searchExpression (this was never full KQL — it is a Graph $search expression). Prefer searchExpression.

  • maxResultsnumber

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

  • outputVerbosityenum

    Output detail level (default: standard)

  • querystring

    Search query text. Omit for list mode.

  • receivedAfterstring

    Filter emails received after date (ISO 8601)

  • receivedBeforestring

    Filter emails received before date (ISO 8601)

  • searchAllFoldersboolean

    Search across all mail folders

  • searchExpressionstring

    Raw 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).

  • subjectstring

    Filter by subject

  • tostring

    Filter by recipient email/name

  • unreadOnlyboolean

    Filter to unread emails only

search-peopleтолько чтениевнешний мир

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

Параметры
  • countnumber

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

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

    Search query (name, email, company)

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

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

Параметры
  • bccstring

    Comma-separated BCC email addresses

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

    Email body (plain text or HTML)

  • ccstring

    Comma-separated CC email addresses

  • checkRecipientsboolean

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

  • dryRunboolean

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

  • importanceenum

    Email importance (default: normal)

  • saveToSentItemsboolean

    Save to sent items (default: true)

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

    Email subject

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

    Comma-separated recipient email addresses

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 для эффективности.Возвращает подтверждение статуса для каждого сообщения.

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

    Action to perform (required)

  • dueDateTimestring

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

  • 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

  • startDateTimestring

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

Похожие MCP-сервера

MarkusPfundstein/mcp-gsuite

MarkusPfundstein/mcp-gsuite

MCP сервер для работы с Gmail и Google Календарем: чтение, поиск и создание писем, управление черновиками, получение и создание событий. Поддерживает несколько аккаунтов. Полезен для автоматизации задач.

Python490
softeria/ms-365-mcp-server

softeria/ms-365-mcp-server

MCP сервер для работы с Microsoft 365 через Graph API. Предоставляет 200+ инструментов для управления почтой, календарём и OneDrive, включая Teams и SharePoint. Автоматизируйте офисные задачи с ИИ-ассистентами.

TypeScript965
marlinjai/email-mcp

marlinjai/email-mcp

Работайте с почтой через Gmail, Outlook и iCloud, а также любые IMAP-серверы, с помощью одного MCP сервера. 25 встроенных инструментов для поиска, отправки и массовых операций. OAuth2 и шифрование встроены. Установка через npm или npx.

TypeScript19
wyattjoh/jmap-mcp

wyattjoh/jmap-mcp

MCP-сервер для работы с JMAP-почтой: поиск, чтение, отправка, перемещение и удаление писем, управление папками и синхронизация. Полезен разработчикам, автоматизирующим почту через FastMail, Cyrus и...

TypeScript176
ap311036/ews-meeting-mcp

ap311036/ews-meeting-mcp

EWS Meeting MCP — сервер для безопасного планирования встреч Outlook в on-prem Exchange EWS. Помогает агентам читать доступность, предлагать слоты и создавать встречи только после явного подтвержде...

Python3
vakharwalad23/google-mcp

vakharwalad23/google-mcp

MCP сервер для интеграции Google-сервисов (почта, календарь, диски, задачи) с AI-клиентами. Позволяет отправлять письма с вложениями, управлять событиями, файлами и задачами. Упрощает автоматизацию рабочих процессов.

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

Лука Никитин