
Microsoft 365 Mail
io.github.mindstone由 GitHub 帳號 mindstone 發布v0.4.1更新於 Nov 7, 2026
通過 Graph 使用 Microsoft 365 Outlook 郵件:讀取、搜尋、傳送、回覆、轉發、草擬、移動、刪除。
AI 翻譯由 AI 模型根據下方的原文描述翻譯,可能有誤。
原文描述
Microsoft 365 Outlook mail via Graph: read, search, send, reply, forward, draft, move, delete.
發布方自己的服務:Microsoft Learn MCP
概覽
Microsoft 365 Mail 的本機 MCP 服務;無需登入;STDIO。
暫無 AI 概覽:以下資訊來自註冊中心條目和服務本身。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Microsoft 365 Mail,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
@mindstone/mcp-server-microsoft-mail
[npm version] [License: FSL-1.1-MIT]
Microsoft 365 Outlook Mail MCP server — list, search, read, send, reply, forward, draft, move, and delete email, download attachments, read threads, triage (read/flag), and manage out-of-office replies via the Microsoft Graph API.
Cohort-style Microsoft 365 mail MCP. Host owns the OAuth flow, this server reads per-account tokens off disk, and each tool fails closed with a structured auth_required envelope so the host can drive reauth.
Status
- Version: 0.4.1 · npm
- Auth: OAuth (host-orchestrated) (
MS_CLIENT_ID) - Tools: 22 (messages, folders, drafts, attachments, threads, settings)
- Surface: cloud-api
- Machine-readable:
STATUS.json - Shared library:
@mindstone/mcp-server-microsoft-shared
Why this exists
When we ported this in May 2026, Microsoft's own Graph MCP lineup did not yet ship a stand-alone Outlook Mail server, and the community options at the time each ran their own browser-callback server during OAuth — which our host application already does, with credentials it has already negotiated for the rest of the cohort. We pulled the bundled connector out of MindstoneRebel as a 1:1 port so the same five-connector Microsoft 365 cohort (mail, calendar, files, teams, SharePoint) shares a single OAuth surface, a single shared-library package for token persistence, request timeouts, and the structured auth_required envelope the host already knows how to recover from. This connector owns the cohort's authentication tool (authenticate_microsoft_account); the other four connectors reuse the credentials it negotiates.
Example interaction
"List my five most recent unread emails from Alice and reply to the latest one with 'thanks, will read tonight'."
Tools the host calls:
search_emails—from:[email protected] isRead:false, top 5.reply_to_email— sends a reply on the top-result message ID with the supplied body.
Response (trimmed):
Requirements
- Node.js 20+
- npm
- A host application that performs the Microsoft OAuth flow and writes per-account token files into
${MS_CONFIG_DIR}/credentials/${sanitised-email}.token.jsonand an${MS_CONFIG_DIR}/accounts.jsonindex. This server reads those files; it does not initiate OAuth itself.
One-click install
[Add to Cursor] [Add to VS Code] [Add to VS Code Insiders]
After clicking the button, your host will prompt you to fill: MS_CLIENT_ID, MS_CONFIG_DIR, MS_MCP_PACKAGE_ID, MICROSOFT_REQUEST_TIMEOUT_MS.
Manual config for Claude Desktop / Claude Code / Goose / Continue.dev (Microsoft 365 Mail)
Quick Start
Install & build
npx (once published)
Local
Configuration
This server runs alongside a host application that owns the Microsoft 365 OAuth flow. The host writes credentials to disk; this server reads them.
Required environment variables
Optional environment variables
Host configuration examples
Claude Desktop / Cursor
Until the host has written ${MS_CONFIG_DIR}/credentials/<account>.token.json and ${MS_CONFIG_DIR}/accounts.json, every tool call returns the structured auth_required response (the host's MCP service recognises this shape and dispatches to its registered Microsoft 365 OAuth orchestrator).
Local development (no npm publish needed)
Tools (22)
Compose send status
In hosts that remember send status, sending an email closes its other compose copies. Reloaded cards show "Email sent" with the send time and hide Reopen because they do not have the sent contents. The copy used to send keeps its posted contents in a read-only sent view, including when confirmation follows a lost reply. After an error or block reply, a later sent status from another copy shows only the sent bar, without this copy's contents. While a send is in progress, other copies show “Sending…” with Send, Retry, Cancel and Save draft (where available) disabled. Replies to this copy’s own requests keep those controls locked until the other send ends. If the send ends without a confirmed outcome, those copies return to editing and keep any earlier uncertainty. A copy waiting for its own Send reply keeps its sending view. Sent views stay read-only, and uncertainty remains until a send is confirmed. After an error or missing confirmation, check whether the email was sent before using Retry; the notice stays visible while editing and returns on Reopen. Collapsing the card does not resolve that uncertainty. Policy-block explanations stay visible while editing with Send disabled. Cancel says "Nothing sent" only when no send may have gone through, including a not-dispatched failure before the request left the device.
When sending is blocked by your settings, your organization or security policy, the card hides Retry and keeps Cancel. If the server is stopped, Retry remains available.
Send requests declare _meta: { 'mcp-app/cardOutcome': 'sent' } to supporting hosts. Draft saves do not declare a send outcome; Cancel after a draft-save timeout says "Nothing sent" unless an earlier send remains uncertain.
Graph permissions
Mail tools run on the Mail.ReadWrite + Mail.Send delegated grants. The automatic-replies tools additionally need MailboxSettings.Read / MailboxSettings.ReadWrite; in many organizations an administrator must approve that permission, and the tools return a guidance envelope (rather than a raw Graph 403) when the connected account lacks it.
Ordering and validation notes
- Filtered listing is page-local. Microsoft Graph rejects
$filtercombined with$orderby, so whenlist_emailsis called with afilter(and always forget_conversation) the connector sorts only the returned page client-side: Graph applies$topfirst, so the result is the sorted view of whichever page Graph returned, not a globally ordered scan of the mailbox. Unfilteredlist_emailsstill sorts server-side. - Recipients are validated.
to/cc/bccentries must be email addresses (trimmed, max 254 chars, max 500 recipients per field); invalid entries are rejected before any Graph call. - Scheduled out-of-office windows require ISO 8601 date-times; explicit offsets are converted to UTC (zone-less values are treated as UTC) and the start must be earlier than the end.
Security notes
- Token files are written by the host with mode
0600; this server reads them via the cohort-shared library, which fails closed on malformed files. MICROSOFT_DISABLE_REFRESH=1is the default on cloud surfaces so the desktop session remains the sole refresh-token authority and avoids racing for single-use refresh tokens.- Successful tool responses drop the OSS-only
ok:truewrapper to match the bundledsuccessResultshape; manual validation/business errors returnisError:truewith a{ ok:false, error, action_required, next_step }payload so the host's recovery layer can act on them. - Per-tool Graph calls run under a composed caller + cohort timeout signal via
.options({signal})plus aPromise.racewrapper for defence-in-depth. download_attachmentwrites only insideMCP_WORKSPACE_PATH(or the OS temp directory when unset), rejects anything but a plain filename, and caps downloads at 25 MB. Attachment bytes are streamed from the$valueendpoint with a hard byte cap (never fully materialized past the limit), metadata is streamed with a hard 1 MB cap for the same reason, and the workspace root is canonicalised (symlinks resolved) before anything is written. Each download is saved into a fresh, private staging directory created atomically (fs.mkdtemp, mode0700) directly under the canonical workspace root, carrying over only the attachment file name; the reportedsavedTopoints inside that staging directory. Because the connector invents the directory name, there is no validated user-visible pathname to pre-plant, rename, or symlink-swap between validation and the write syscall, so the parent-directory check-then-use race is removed by construction — on every platform, with no descriptor-relative APIs. The file itself is created with an exclusive open (O_CREAT|O_EXCL, mode0600), so overwrite is impossible and a pre-existing same-named file or symlink is never touched; a failed write removes its whole staging directory, leaving no residue. Attacker-controlled attachment fields (name, type, content type) are wrapped in untrusted-content envelopes wherever they surface as text, including error paths.savedTonecessarily reports the real file path (the host needs it to open the file), but the human-facingmessagenames only the connector-invented staging directory, so the attacker-authored file name is never echoed as trusted prose.- Error guidance for non-authentication failures never recommends re-authentication: Graph 403 permission denials are answered with connector-local guidance explaining that re-authenticating the same account will not help, and upstream Graph error text is enveloped as untrusted content before it reaches the model.
Licence
FSL-1.1-MIT — Functional Source License, Version 1.1, with MIT future licence. Free for non-competing use; relicenses to MIT on the converter date in LICENSE.
來源:connectors/microsoft-mail/README.md,提交 3ae4aa1
工具
0版本歷史
3- v0.4.1最新Nov 7, 2026
- v0.4.0Nov 4, 2026
- v0.3.0Sep 16, 2026
評分
已滿足適用檢查項的 40%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
請在儲存庫或註冊中心條目中宣告授權條款。
其他 Microsoft 整合

Microsoft Learn MCP
com.microsoft官方發布者
一個免費的遠端 MCP 伺服器,讓 AI 助理搜尋微軟官方 Learn 文件、尋找程式碼範例,並把文件頁面抓取為 markdown。

Playwright Cloud Browsers
com.microsoft官方發布者
遠端 MCP 伺服器,為 AI 代理提供受管理的 Playwright 雲端瀏覽器,可建立工作階段、瀏覽並檢視頁面、與頁面元素互動。

Microsoft Sentinel Data Exploration
com.microsoft官方發布者
遠端 Microsoft Sentinel MCP 伺服器,讓助理以自然語言尋找相關資料表,並從 Sentinel 資料湖擷取安全性資料。
Visio
com.microsoft
讓助理透過桌面自動化,在使用者的 Windows 電腦上建立、更新與讀取 Microsoft Visio 圖表。

Microsoft Clarity MCP
由 GitHub 帳號 surendranb 發布
本機 MCP 伺服器,把 Microsoft Clarity 的行為 UX 資料(暴怒點擊、無效點擊、快速返回、JS 錯誤)提供給 AI 助理分析。