Skip to content
Elaichi Elaichi

Email

Outlook Mail

Connect Outlook Mail once and hand every teammate a governed MCP endpoint with 37 tools ready to call from Claude, ChatGPT, Cursor, or any MCP client, inside the same permissions they already have, with every call checked and logged.

Outlook Mail

Automations & dashboards

From answering questions to doing the work

A person no longer has to ask. A trigger starts the work, inside the same permissions and the same audit log as everything else. Automations and live dashboards ship on the Black plan.

Automations

Put Outlook Mail work on a schedule.

A trigger starts a sequence of steps: call a Outlook Mail tool, transform the result, branch, wait, and ask a person when it matters.

Outlook Mail digest

Run 418 · started 2 minutes ago · on behalf of Emma Laurent

  1. Schedule

    Every weekday at 08:00

    0.2s
  2. Fetch messages

    Outlook Mail

    1.4s
  3. Group by owner

    Transform

    0.1s
  4. Draft the digest

    Agent step

    Ran with 4 tools, returned a structured summary

    6.2s
  5. Approve the digest

    Needs approval

    Assigned to Michael Brennan

    Approve
  6. Post the digest

    Outlook Mail

    Queued

Collections and dashboards

Report on Outlook Mail without asking.

Collections hold your own data, written by an automation and read by a dashboard that refreshes on a schedule.

Outlook Mail health

Refreshed 4 minutes ago · every 15 minutes · from the messages collection

Live

Messages

1,284 ↓ 12%

Subscriptions

96 ↓ 8%

Needs attention

3 ↑ 2

Updated this week

412 ↑ 9%

Messages created

Last 14 days

By workspace

Share of activity

Engineering 34%

Product 27%

Support 21%

Sales 18%

AI tools

Outlook Mail tools for your AI agents

37 tools are ready to call through Elaichi's MCP endpoint the moment you connect Outlook Mail, governed by the same roles, restrictions, and audit log as everything else in Elaichi.

list_all_outlook_me

Get the profile of the signed-in Outlook user. Returns: id, displayName, userPrincipalName, mail, jobTitle, businessPhones, givenName, surname, mobilePhone, officeLocation, and preferredLanguage. No required parameters.

list_all_outlook_messages

List Outlook messages for a specific user. Returns: @odata.etag, id, createdDateTime, lastModifiedDateTime, changeKey, categories, receivedDateTime, sentDateTime, hasAttachments, internetMessageId, subject, bodyPreview, importance, parentFolderId, conversationId, isDeliveryReceiptRequested, isReadReceiptRequested, isRead, isDraft, webLink, inferenceClassification, body, sender, from,…

get_single_outlook_message_by_id

Get a single Outlook message by id. Returns: @odata.context, @odata.etag, id, subject, bodyPreview, parentFolderId, body, uniqueBody. Required: user_id, id.

create_a_outlook_message

Create a new Outlook message draft for a specific user. Returns the created message including id, subject, body, toRecipients, isDraft, importance, sender, and receivedDateTime. Required: user_id.

update_a_outlook_message_by_id

Update properties of an Outlook message by id. Returns the updated message including id, subject, body, isRead, importance, inferenceClassification, and toRecipients. Required: user_id, id.

delete_a_outlook_message_by_id

Delete an Outlook message by id. Returns an empty 204 response on success. Required: user_id, id.

outlook_messages_send_draft

Send a previously created draft message in Outlook. The sent message is saved in the Sent Items folder. Returns an empty 202 response on success. Required: user_id, message_id.

outlook_messages_send_mail

Send a new email message in Outlook via the sendMail action, optionally saving it to Sent Items. The message body can be provided in JSON or MIME format. Returns an empty 202 response on success. Required: user_id, message.

outlook_messages_reply

Reply to the sender of an Outlook message, saving the reply in the Sent Items folder. Accepts a comment and optional writable message properties such as toRecipients to add or override recipients. Returns an empty 202 response on success. Required: user_id, message_id.

outlook_messages_reply_all

Reply to all recipients of an Outlook message on behalf of a specified user. The original sender and all recipients are included automatically. Returns an empty 202 Accepted response on success. Required: user_id, message_id.

outlook_messages_forward

Forward an Outlook message from the connected user mailbox to one or more recipients. Returns an empty 202 Accepted response on success. Required: message_id.

outlook_messages_forward_as_user

Forward an Outlook message from a specific user's mailbox to one or more recipients. Returns an empty 202 Accepted response on success. Required: user_id, message_id, toRecipients.

outlook_messages_move

Move an Outlook message to a different folder by specifying a destination folder id or well-known folder name. Returns the moved message object including id, subject, receivedDateTime, parentFolderId, body, and toRecipients. Required: user_id, message_id, destinationId.

list_all_outlook_search

Search for content across Outlook entities such as messages and events via the Microsoft Graph search API. Returns: hitId, rank, summary, resource. Required: requests with entityTypes and query. Max 25 results per page.

list_all_outlook_attachments

List attachments for an Outlook message. Returns: @odata.type, id, lastModifiedDateTime, name, contentType, size, isInline, contentId, contentLocation, contentBytes, item.type for each attachment. Required: message_id.

outlook_attachments_download

Download the raw binary contents of a file or item attachment from an Outlook message. Returns the raw binary content stream of the attachment (MIME format for item attachments). Required: message_id, attachment_id. Requesting the $value of a reference attachment returns HTTP 405.

get_single_outlook_attachment_by_id

Get a single attachment from a specific Outlook message, returning its metadata and content. Returns: @odata.context, @odata.type, id, lastModifiedDateTime, name, contentType, size, isInline, contentId, contentLocation, contentBytes, item.context, @odata.type, id, lastModifiedDateTime, name, contentType, size, isInline, contentId, contentLocation, contentBytes, item. Required: message_id, id.

outlook_attachments_download_as_user

Download the raw binary contents of a specific attachment from an Outlook user's message. Returns the raw attachment content as a binary stream — for file attachments the content type matches the original file; for item attachments (contact, event, message) the raw contents are returned in MIME format. Required: user_id, message_id, attachment_id.

list_all_outlook_mail_folders

List all mail folders in the specified user's Outlook mailbox, including any mail search folders. Returns: id, displayName, parentFolderId, childFolderCount, unreadItemCount, totalItemCount, isHidden, @odata.type, isSupported, filterQuery, includeNestedFolders, sourceFolderIds, sizeInBytes. Required: user_id.

get_single_outlook_mail_folder_by_id

Get a single mail folder in Outlook by id. Returns: id, displayName, parentFolderId, childFolderCount, unreadItemCount, totalItemCount, isHidden, sizeInBytes. Required: user_id, id.

create_a_outlook_mail_folder

Create a new mail folder in the root folder of the user's Outlook mailbox. Supports regular folders and search folders via @odata.type. Returns: id, displayName, parentFolderId, childFolderCount, unreadItemCount, totalItemCount, isHidden, @odata.type, filterQuery, includeNestedFolders, sourceFolderIds.type, filterQuery, includeNestedFolders, sourceFolderIds. Required: user_id, displayName.

update_a_outlook_mail_folder_by_id

Update the display name of a mail folder or the filter query of a search folder in Outlook. Returns: id, displayName, parentFolderId, childFolderCount, unreadItemCount, totalItemCount, @odata.type, filterQuery.type, filterQuery. Required: user_id, id.

delete_a_outlook_mail_folder_by_id

Delete a mail folder in Outlook by id. Returns an empty 204 response on success. Required: user_id, id.

list_all_outlook_child_folders

List child mail folders under a specified parent folder in Outlook. Returns: id, displayName, parentFolderId, childFolderCount, unreadItemCount, totalItemCount, isHidden, @odata.type, isSupported, includeNestedFolders, sourceFolderIds, filterQuery, sizeInBytes. Required: user_id, mail_folder_id.

create_a_outlook_child_folder

Create a new child mail folder under the specified parent folder in Outlook. Returns the created folder with id, displayName, parentFolderId, childFolderCount, unreadItemCount, totalItemCount, isHidden. Required: user_id, mail_folder_id, displayName.

get_single_outlook_child_folder_by_id

Get a single child mail folder by id in Outlook. Returns: id, displayName, parentFolderId, childFolderCount, unreadItemCount, totalItemCount, isHidden, @odata.type, isSupported, includeNestedFolders, sourceFolderIds, filterQuery, sizeInBytes. Required: user_id, mail_folder_id, id.

delete_a_outlook_child_folder_by_id

Delete a child mail folder by id in Outlook. Returns an empty 204 response on success. Required: user_id, mail_folder_id, id.

update_a_outlook_child_folder_by_id

Update a child mail folder's properties by id in Outlook. Returns the updated folder with id, displayName, parentFolderId, childFolderCount, unreadItemCount, totalItemCount, isHidden. Required: user_id, mail_folder_id, id.

list_all_outlook_folder_messages

List messages in a specific Outlook mail folder for a given user, with attachments expanded inline. Returns: @odata.etag, id, createdDateTime, lastModifiedDateTime, changeKey, categories, receivedDateTime, sentDateTime, hasAttachments, internetMessageId, subject, bodyPreview, importance, parentFolderId, conversationId, isDeliveryReceiptRequested, isReadReceiptRequested, isRead, isDraft, webLink,…

list_all_outlook_users

List users in Microsoft Graph. Returns a paged collection of user objects with id, displayName, mail, userPrincipalName, jobTitle, givenName, surname, and other directory profile fields for each user in the tenant. No required parameters.

get_single_outlook_user_by_id

Get a single Outlook (Microsoft Graph) user by id. Returns the user object including id, displayName, givenName, mail, userPrincipalName, and businessPhones. Required: id.

list_all_outlook_subscriptions

List Microsoft Graph webhook subscriptions. Returns: id, resource, applicationId, changeType, clientState, notificationUrl, lifecycleNotificationUrl, expirationDateTime, creatorId, latestSupportedTlsVersion, encryptionCertificate, encryptionCertificateId, includeResourceData, notificationContentType, notificationQueryOptions, notificationUrlAppId. This method does not support OData query…

get_single_outlook_subscription_by_id

Get a single Microsoft Graph webhook subscription by id. Returns: id, resource, applicationId, changeType, clientState, notificationUrl, lifecycleNotificationUrl, expirationDateTime, creatorId, latestSupportedTlsVersion, encryptionCertificate, encryptionCertificateId, includeResourceData, notificationContentType, notificationUrlAppId. Required: id.

create_a_outlook_subscription

Create a Microsoft Graph subscription to receive change notifications when subscribed resources change. Returns the created subscription including id, resource, changeType, notificationUrl, expirationDateTime, applicationId, creatorId, and latestSupportedTlsVersion. Required: changeType, notificationUrl, resource, expirationDateTime.

update_a_outlook_subscription_by_id

Update a Microsoft Graph subscription's expiration time for renewal and/or notification URL for delivery. Returns the updated subscription object including id, resource, changeType, notificationUrl, expirationDateTime, and creatorId. Required: id.

delete_a_outlook_subscription_by_id

Delete a Microsoft Graph subscription by id. Returns an empty 204 response on success. Required: id.

outlook_subscriptions_reauthorize

Reauthorize a Microsoft Graph subscription by triggering a reauthorization validation request to the notification URL. Returns an empty 204 response on success. Required: subscription_id.

How it works

From Outlook Mail account to governed MCP endpoint

Connect

Link a Outlook Mail account through Elaichi's hosted connect flow. Credentials are vaulted, so nobody, including the AI, ever sees them.

Compose

The connection becomes a toolbox instantly. Curate which Outlook Mail tools are exposed, rename them, or freeze arguments.

Authorize

Point Claude, ChatGPT, Cursor, or any MCP client at the one Elaichi endpoint and sign in with OAuth, governed by roles, restrictions, and audit logs.

Put your agents to work in the tools you already use

Start a 14-day Gold trial. Connect a product, curate a toolbox, and paste a governed MCP endpoint into Claude, ChatGPT, or Cursor in minutes.