OWA Exchange MCP Server

io.github.nhype由 GitHub 帳號 nhype 發布v1.0.1更新於 Oct 24, 2026

MCP server for Microsoft Exchange / OWA — email, calendar, directory, availability

發布方自己的服務:Exchange.news — Crypto offers, campaigns and news

已驗證STDIO僅桌面效率與工作流溝通與協作

概覽

AI 產生的概覽

連接 Microsoft Exchange / OWA 帳號的 MCP 伺服器,讓助理處理郵件、行事曆、通訊錄搜尋、空閒時間與會議統計。

可以做什麼
  • 讀取、寄送、回覆、轉寄、移動、刪除郵件並標記已讀,下載附件或擷取內文連結
  • 檢視、建立、更新、取消會議並回覆邀請,下載行程附件
  • 列出、建立、重新命名、移動、清空與刪除郵件資料夾,檢查工作階段狀態
  • 在 Active Directory 中搜尋人員,查詢自己或多人共同的空閒時間
  • 取得會議數量統計與「最常會面對象」關係矩陣
  • 使用已儲存的憑證與雙重驗證登入 OWA
適用情境
適合讓助理在企業 Exchange 或 Outlook Web Access 信箱中工作:整理與回覆郵件、安排或調整會議、查看同事空閒時間,或在通訊錄中查找人員。
執行需求
以本機 Python 套件形式執行(uvx exchange-mcp-server),供桌面用戶端使用。需設定 EXCHANGE_OWA_URL 指向你的 OWA 位址,可選用 EXCHANGE_COOKIE_FILE 指定工作階段 Cookie 檔案。登入需要 OWA 使用者名稱、密碼與主密碼,並在約 90 秒內完成雙重驗證;登入過程會啟動無頭瀏覽器。
安裝前請注意
助理可以寄送、轉寄、刪除、移動郵件與清空資料夾,也能建立、修改或取消會通知與會者的會議。登入需提供 OWA 使用者名稱、密碼與主密碼,憑證加密儲存在 Cookie 檔案中,主密碼會傳給登入工具。登入流程只針對一種雙重驗證方式(手機推播),其他環境可能需要修改程式碼。工作階段 Cookie 只會傳送給你的 OWA 伺服器。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 OWA Exchange MCP Server,將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。

其他 MCP 客戶端

參照 儲存庫 中的啟動說明。

README

OWA Exchange MCP Server

MCP (Model Context Protocol) server for any Microsoft Exchange / OWA (Outlook Web Access) deployment. Gives LLM agents access to email, calendar, directory search, folders, availability, and meeting analytics via 30 tools.

Works with any on-premise or hosted Exchange server that exposes OWA.

Quick Start

bash
# Copy and edit the MCP config with your OWA URLcp .mcp.json.example .mcp.json
# One-time: set up encrypted credentialspython3 login.py --setup
# Login (opens headless browser, 2FA approval required)python3 login.py
# Install the MCP serverpip install -e .

Install

Add to your MCP client config. Replace https://owa.example.com with your OWA URL.

Claude Desktop (~/Library/Application Support/Claude/claude_desktop_config.json):

json
{  "mcpServers": {    "exchange": {      "command": "uvx",      "args": ["exchange-mcp-server"],      "env": {        "EXCHANGE_OWA_URL": "https://owa.example.com"      }    }  }}

Cursor (.cursor/mcp.json):

json
{  "mcpServers": {    "exchange": {      "command": "uvx",      "args": ["exchange-mcp-server"],      "env": {        "EXCHANGE_OWA_URL": "https://owa.example.com"      }    }  }}

Claude Code (.mcp.json):

json
{  "mcpServers": {    "exchange": {      "command": "uvx",      "args": ["exchange-mcp-server"],      "env": {        "EXCHANGE_OWA_URL": "https://owa.example.com"      }    }  }}

Configuration

VariableRequiredDescription
EXCHANGE_OWA_URLYesBase URL of your OWA instance
EXCHANGE_COOKIE_FILENoPath to session cookies file (default: session-cookies.txt)

Login

Option A: Via MCP tool (recommended)

The login tool handles credential setup and authentication within the MCP session — no separate terminal needed.

First time (setup + login):

login(master_password="...", username="[email protected]", password="...")

Subsequent logins (decrypts stored credentials):

login(master_password="...")

Option B: Via CLI

bash
python3 login.py --setup   # First time: save encrypted credentialspython3 login.py            # Login with 2FA

Both methods:

  1. Open a headless browser to your OWA URL
  2. Submit credentials
  3. Wait for 2FA approval (up to 90 seconds)
  4. Save encrypted session cookies to session-cookies.txt

Credentials and session cookies are encrypted at rest with AES-256 (PBKDF2 key derivation, 480k iterations).

Tools (30)

Email (10)

ToolDescription
get_emailsList emails from a folder with filtering
get_emailGet full email content by ID
send_emailSend a new email
reply_emailReply to an email
forward_emailForward an email
delete_emailDelete an email
move_emailMove email to another folder
mark_email_readMark email as read/unread
download_attachmentsDownload file attachments from an email
get_email_linksExtract hyperlinks from an email body

Calendar (7)

ToolDescription
get_calendar_eventsGet events in a date range (supports recurring expansion)
create_meetingCreate a meeting with attendees
update_meetingUpdate an existing meeting
cancel_meetingCancel a meeting and notify attendees
respond_to_meetingAccept, decline, or tentatively accept
download_event_attachmentsDownload file attachments from a calendar event
get_event_linksExtract hyperlinks from an event description

Directory (1)

ToolDescription
find_personSearch people in Active Directory

Folders (7)

ToolDescription
get_foldersList mail folders with unread counts
create_folderCreate a new mail folder
rename_folderRename an existing folder
empty_folderEmpty all items from a folder
delete_folderDelete a mail folder
move_folderMove a folder to a different parent
check_sessionCheck if the OWA session is authenticated

Availability (2)

ToolDescription
find_free_timeFind free slots in your calendar
find_meeting_timeFind common free slots for multiple people

Analytics (2)

ToolDescription
get_meeting_statsMeeting count statistics for multiple people
get_meeting_contactsConnection matrix — who you meet with most

Auth (1)

ToolDescription
loginAuthenticate to OWA (credential setup + 2FA login)

Files

login.py                  # Browser-based 2FA login (standalone CLI)exchange_mcp/  server.py               # FastMCP server entry point  owa_client.py           # OWA HTTP client  auth.py                 # Async login logic (shared by MCP tool)  tools/    email.py              # Email tools    calendar.py           # Calendar tools    people.py             # Directory search    folders.py            # Folder management & session check    availability.py       # Free time / meeting time    analytics.py          # Meeting stats & contacts    auth.py               # Login toolpyproject.toml            # Package config

Warning

Every Exchange / OWA deployment has its own authentication setup — some require 2FA (push notifications, TOTP, SMS), others use single-factor login or SSO. The login logic in this project (login.py and exchange_mcp/auth.py) is written for a specific 2FA flow (mobile push approval). If your OWA server uses a different 2FA method or no 2FA at all, you will need to modify or remove the login logic to match your environment.

Security

  • Credentials and session cookies encrypted with AES-256-Fernet
  • Master password never stored
  • PBKDF2 with 480,000 iterations for key derivation
  • Credential and cookie files have 0600 permissions
  • Cookies decrypted into memory only — never written to disk as plaintext (via MCP tool)
  • Session cookies never transmitted except to your OWA server

來源:README.md,提交 413c31a

工具

0
SourceWeft 尚未在沙箱中啟動過該軟體包,因此其工具未知。

版本歷史

1
  1. v1.0.1最新Sep 16, 2026

評分

已滿足適用檢查項的 50%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通25 分

    請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。

  • 已宣告認證方式10 分

    請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。

  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Exchange 整合