Microsoft 365

Read an Outlook message

m365_mail_read · Reads only · Markdown

One message in full, with its body as text and its attachments' names.

Free*

*Free up to 1,000,000 reads a month for the whole account, then $0.50 per 10,000 reads.

An example

Read Lukas's email about the combi steamer delivery.

Your agent callsm365_mail_readFree*

The example business is Hansen & Voss, a restaurant-equipment wholesaler in Hamburg with 60 staff. The reply is the one the tool really gives.

With these arguments
{
  "mailbox": "support@hansenvoss.example",
  "message_id": "AAMkAGI2THVSAAA="
}
What comes back
{
  "mailbox": "support@hansenvoss.example",
  "message": {
    "id": "AAMkAGI2THVSAAA=",
    "subject": "Where is our combi steamer?",
    "from": "lukas.meyer@hotel-elbblick.example",
    "from_name": "Lukas Meyer",
    "to": [
      "support@hansenvoss.example"
    ],
    "received_at": "2026-10-14T07:41:09Z",
    "read": false,
    "attachments": true,
    "thread_id": "AAQkAGI2Tv1",
    "cc": [],
    "body": "Hi,\n\nwe ordered a combi steamer three weeks ago. When does it ship?\n\nLukas",
    "attachment_list": [
      {
        "name": "invoice-INV-0042.pdf",
        "type": "application/pdf",
        "size": 48211
      }
    ]
  }
}

Use it when

A search found the message and the agent needs all of it before answering.

What it does

One message in full: sender, recipients, the body as text and its attachments' names. Free.

What comes back

mailbox; message: id, subject, from, to, cc, received_at, body, thread_id, and attachment_list when there are any. Every reply also carries cost_usd and balance_usd.

Inputs

NameTypeWhat it is
mailboxstringOne of the mailboxes the agent may act as; optional when only one is connected. Up to 254 characters.
message_idRequiredstring1 to 400 characters.

The call

Over MCP, call m365_mail_read on https://api.conecto.chat/mcp/microsoft365. Over REST:

Terminal
curl -X POST https://api.conecto.chat/v1/tools/m365_mail_read \
  -H "Authorization: Bearer $CONECTO_KEY" \
  -H "Content-Type: application/json" \
  -d '{"mailbox":"support@hansenvoss.example","message_id":"AAMkAGI2THVSAAA="}'

When it refuses

A refused call costs nothing and says what to do next.

CodeWhenWhat to do
not_connected409Microsoft 365 isn't connected yet.Connect it with m365_connect.
not_allowed403The mailbox is not one the agent may act as.Use a connected mailbox; the owner adds one by connecting again.
not_found404Microsoft 365 has no such message, event or file.Search first and use its id.

Give this to your agent.

Set up Conecto from https://conecto.chat/SKILL.md