Why Outlook

In the vast majority of the companies we work with, Microsoft 365 is the central working environment - and Outlook is the tool where a typical employee spends most of the day. Anyone who wants a productive agent has to be able to see that inbox, make sense of it and, where appropriate, act in it. Anything else is a demo, not daily operation.

Microsoft Graph provides a comprehensive API for this. What was missing was a clean MCP bridge that makes the API directly usable from any MCP client - including the OAuth flow and a proper folder hierarchy. That is exactly what our server does.

What the server covers

  • Email - search, read, reply, forward and handle attachments across the mailbox.
  • Calendar - view, create and change appointments, check availability.
  • Folders - the complete hierarchy, including deeply nested structures such as Projects/_Archive/....
  • Rules - read and manage inbox rules.

Auth & setup

Authentication runs through the Microsoft OAuth flow against an app registration in your own tenant. That means the same permissions apply that are already set for the user in Microsoft 365 - no shadow account, no shared API keys, no detour via a third party.

The exact steps for app registration and tenant configuration are in the README. For many setups, read and send permissions on your own mailbox are enough; broader operations can be enabled per permission scope.

What we use it for internally

Two recurring tasks have changed the most for us:

  • Morning inbox triage. The agent summarises the mail that came in overnight, suggests replies and leaves draft responses in the Drafts folder. We decide what goes out.
  • Meeting preparation. For upcoming meetings, the agent gathers the relevant email threads, documents and recent notes - before we walk into the room.

Source code

github.com/codestra/outlook-mcp →