Labsco
MCP SERVER

Outlook MCP Server

by marlonluo2018

Search, write and file Outlook mail through the desktop client — everything stays on your machine.

Email: Mailboxes & Delivery
Summary
Mail work through the Outlook already on your desk.

Nothing leaves the machine and no tokens are issued — it uses the session Outlook already holds, which is what makes it usable against a corporate mailbox where cloud API access is not yours to grant.

What it is

An Outlook connector that talks to the desktop application over win32COM rather than to a cloud API. Mail is loaded into a local cache, numbered, and then acted on by number: read one in full, reply to it, move it, or forward a message to a list of recipients from a CSV file.

What you get
  • Loading and searching — `list_recent_emails_tool` for a day range up to 30 days, `search_email_by_subject_tool`, `search_email_by_sender_name_tool`, and `search_email_by_body_tool` for content, which is slower
  • Reading and replying — `view_email_cache_tool` pages the loaded mail 5 at a time, `get_email_by_number_tool` returns one in full, `reply_to_email_by_number_tool` answers it, `compose_email_tool` writes a new one
  • Folders — `get_folder_list_tool` first, then `create_folder_tool`, `move_email_tool` and `move_folder_tool`
  • Batch forwarding from a CSV of addresses: the list is split automatically at 500 per batch and sent by BCC, with your own note added above the original message
Requirements

Windows 10+ with Microsoft Outlook 2016 or newer installed and running — the server drives the open application, so start Outlook first. Python 3.8+; install with `uvx --with "pywin32>=226"` or clone and `pip install -r requirements.txt`, then point the client at `python -m outlook_mcp_server`. Because operations address mail by its cache number, load a batch before acting on it, and call the folder list before moving anything. The repository ships an agent prompt template that sets the confirm-before-sending behaviour; without it, that safeguard is only as good as your own instructions.

Setup effort

One command — uvx --with "pywin32>=226" --with-editable "." outlook-mcp-server