Skip to main content

Cross-platform MCP server for local Microsoft Outlook automation (Windows COM + macOS AppleScript). 64 tools spanning email, calendar, contacts, tasks, notes, rules, free/busy, GAL, and Exchange-specific surface.

Project description

mega-outlook-mcp

PyPI Python License

The most-comprehensive cross-platform MCP server for local Microsoft Outlook automation. 64 tools across email, threading, calendar, contacts, tasks, notes, inbox rules, automatic replies, free/busy, the Global Address List, and Exchange-specific surface — all behind a single Python package that runs on both Windows and macOS.

The server is tooling only — scheduling and the agent loop live in your MCP client (LM Studio, Claude Desktop, or any MCP-compatible harness).

Why mega-outlook-mcp?

Two great community MCP servers already exist for Outlook:

mega-outlook-mcp is the union of both, plus more, in one Python package with a unified Backend Protocol. Highlights:

  • One install for both OSes. pip install mega-outlook-mcp works the same on Windows and macOS; the right backend is selected at startup.
  • Agent-friendly composite tools. outlook_summarize_inbox, outlook_extract_action_items, outlook_find_unanswered, outlook_meeting_prep, outlook_relationship_graph, and more — single calls instead of N round trips.
  • Exchange-specific surface neither reference repo covers. Out-of-office, signatures, inbox rules, free/busy lookup, room finder, GAL search, delegated mailboxes, public folders, mailbox quota.
  • Built-in compatibility self-test. outlook_diagnostics probes every Outlook field this server depends on and tells you exactly which tools break if Microsoft renames something.

Tool catalog (64 tools)

Email — extraction, threading, write, organize (24)

outlook_get_emails_in_time_range, outlook_get_conversation_thread, outlook_get_email_full_metadata, outlook_search_emails, outlook_save_attachment, outlook_get_thread_metadata, outlook_send_email, outlook_create_draft, outlook_reply, outlook_reply_all, outlook_forward, outlook_mark_email_read, outlook_set_email_flag, outlook_set_email_categories, outlook_move_email, outlook_archive_email, outlook_delete_email, outlook_junk_email, outlook_summarize_inbox, outlook_extract_action_items, outlook_find_unanswered, outlook_find_promised_actions, outlook_threadify, outlook_relationship_graph

Folders (6)

outlook_list_folders, outlook_create_folder, outlook_rename_folder, outlook_move_folder, outlook_delete_folder, outlook_empty_folder

Calendar (7)

outlook_list_calendar_events, outlook_get_calendar_event, outlook_create_calendar_event, outlook_update_calendar_event, outlook_delete_calendar_event, outlook_respond_to_event, outlook_meeting_prep

Contacts, tasks, notes (9)

outlook_list_contacts, outlook_search_contacts, outlook_get_contact, outlook_list_tasks, outlook_search_tasks, outlook_get_task, outlook_list_notes, outlook_search_notes, outlook_get_note

Mailbox & accounts (4)

outlook_get_mailbox_info, outlook_list_accounts, outlook_get_unread_count, outlook_get_mailbox_quota

Exchange-specific (Windows-COM-only; Mac returns ERROR-MAC-Support-Unavailable) (10)

outlook_get_out_of_office, outlook_set_out_of_office, outlook_get_signature, outlook_set_signature, outlook_list_rules, outlook_toggle_rule, outlook_calendar_freebusy, outlook_meeting_room_finder, outlook_gal_search, outlook_list_delegated_mailboxes, outlook_list_public_folders

Utility (4)

outlook_get_current_time, outlook_write_file, outlook_diagnostics

Install

pip install mega-outlook-mcp

Or with uv / pipx:

uv tool install mega-outlook-mcp
# or
pipx install mega-outlook-mcp

pywin32 is installed automatically on Windows via a platform marker; nothing extra is needed on macOS (osascript ships with the OS).

Wire up an MCP client

Add the server to your MCP client config. Examples:

Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json on macOS, %APPDATA%\Claude\claude_desktop_config.json on Windows):

{
  "mcpServers": {
    "outlook": {
      "command": "mega-outlook-mcp"
    }
  }
}

LM Studio: Settings → MCP → add a server with command mega-outlook-mcp.

If the GUI app can't find mega-outlook-mcp on PATH (common on macOS), use the absolute path:

{
  "mcpServers": {
    "outlook": {
      "command": "/Users/you/.local/bin/python3",
      "args": ["-m", "mega_outlook_mcp.server"]
    }
  }
}

Platform requirements

OS Outlook Notes
Windows 10/11 Outlook Desktop (classic) signed in pywin32 installs automatically
macOS 13+ Outlook for Mac classic (16.x) "New Outlook" not supported — Apple sandboxing blocks the AppleScript surface; use the classic UI toggle

First-call sanity check

Tell your agent:

Call outlook_diagnostics, then outlook_get_mailbox_info.

outlook_diagnostics should return status: HEALTHY. If it returns DEGRADED:<n>_fields or BROKEN, read affected_tools and notes for the cause. Most common: Outlook is closed, or the user is on "New Outlook" on macOS.

Future-proofing against Outlook updates

outlook_diagnostics probes every Outlook field this server depends on against a baseline manifest at src/mega_outlook_mcp/baseline/outlook_baseline.json. Run it on a schedule (launchd, Task Scheduler, cron) so you find out about regressions before an extraction job silently degrades. The recommended audit prompt for your agent harness is at docs/inspection-prompt.md.

What this server does NOT do

  • No Microsoft Graph / OAuth — strictly local desktop Outlook
  • No recall_message (destructive on recipients), no voting buttons (rare)
  • No two-phase prepare/confirm pattern — that belongs in the agent prompt
  • No "New Outlook" support on either platform until Microsoft restores APIs

Related projects

License

MIT — see LICENSE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mega_outlook_mcp-1.0.0.tar.gz (55.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mega_outlook_mcp-1.0.0-py3-none-any.whl (69.4 kB view details)

Uploaded Python 3

File details

Details for the file mega_outlook_mcp-1.0.0.tar.gz.

File metadata

  • Download URL: mega_outlook_mcp-1.0.0.tar.gz
  • Upload date:
  • Size: 55.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for mega_outlook_mcp-1.0.0.tar.gz
Algorithm Hash digest
SHA256 48b891038d0b162c55eda0ab7281c75271e9989e063f102b4f1aaf2f08b3d076
MD5 200d20ef8e4fa312381ce8a8ff300815
BLAKE2b-256 9b26546946e2f05935846733922800e92ea372f9536e91bdebee05fd2a703a96

See more details on using hashes here.

Provenance

The following attestation bundles were made for mega_outlook_mcp-1.0.0.tar.gz:

Publisher: publish-pypi.yml on grokeverything/mega-outlook-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mega_outlook_mcp-1.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mega_outlook_mcp-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 36351b8918b0929b6bc3a6eb2fb5f86712360fc1b45dec2cacf336daeceb6f40
MD5 cf240d2c6405b69ff8c6d5f5060c113a
BLAKE2b-256 1657975639a91a653cc60a9d928771b90bc9d0139ca6f4f160a68c18b2344d2f

See more details on using hashes here.

Provenance

The following attestation bundles were made for mega_outlook_mcp-1.0.0-py3-none-any.whl:

Publisher: publish-pypi.yml on grokeverything/mega-outlook-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page