关于 Apple Mail
Apple Mail MCP 将 macOS Mail 中配置的账户连接到 Claude 和其他 MCP 客户端。它读取本地邮件数据以快速搜索,并默认保存草稿,发送前须经用户批准。
主要功能
- 01本地全文搜索邮件正文
- 02阅读会话并查找待回复邮件
- 03起草、整理、稍后处理和归档邮件
- 04提取发票及邮件信息
- 05预览批量更改并撤销
- 06逐封手动批准发送
适用场景
- 01整理未读和待回复邮件
- 02查找旧邮件中的信息
- 03保存发票附件并提取字段
- 04发送前检查草稿
MCP 相关
向 MCP 客户端提供 Apple Mail 工具、作为 MCP 提示词的技能,以及可通知订阅客户端邮件变化的收件箱资源。客户端可访问已配置账户;邮件默认保存为草稿,发送须经批准。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
Apple Mail MCP
让 Claude 读取、搜索、整理和回复你的 Apple Mail:快速、本地运行,并由你掌控发送的内容。
Apple Mail MCP 是一个适用于 Mac 上 Mail 应用的 MCP 服务,另附一个小巧的菜单栏应用。Claude(Claude Code、Claude 应用或任何 MCP 客户端)可以在毫秒内搜索多年的邮件、阅读邮件会话、查找待回复邮件、用你的语气起草回复、清理新闻邮件和归档附件;只有在你点击 发送 后,邮件才会发出。



任何电子邮件账户,均可用于 AI
Apple Mail MCP 可以将你能添加到 Apple Mail 的任何电子邮件账户转化为 Claude 和其他 MCP 客户端可使用的账户:iCloud、Gmail 和 Google Workspace、Microsoft 365、Outlook.com 和 Exchange、Yahoo、Fastmail、公司或托管服务商的 IMAP 服务,甚至是旧的 POP 邮箱。
你的服务提供商无需提供 API,无需开发者账户,也无需自行支持 MCP。像往常一样,在 Mail › 设置 › 账户中添加账户。Mail 同步完成后,该账户便会获得与其他账户相同的工具:搜索、邮件会话、待回复邮件、草稿、经你批准后发送、归档、延后处理、取消订阅、提取和真实性检查。你可以同时使用多个账户,也可以通过 account 将任一工具限制为只操作其中一个账户。
你的密码会保留在 Mail 和钥匙串中:此应用不会看到密码,也不会连接你的服务提供商。它只读取 Mail 已经下载的内容,并让 Mail 自行移动邮件、创建草稿或发送邮件。
为什么还需要另一个 Mail 服务?
大多数 Mail 服务在所有操作中都通过 AppleScript 驱动 Mail,包括读取邮件。Mail 随后会逐条遍历邮箱中的邮件,因此搜索大型收件箱需要几分钟,甚至会超时,而 Mail 在此期间也会卡住。
Apple Mail MCP 会直接读取 Mail 自己的数据库和邮件文件,也就是 Mail 向你显示的同一份数据;只有在需要更改内容时(移动、标记、保存草稿、发送)才会与 Mail 通信。无论邮箱大小,搜索都能保持快速,也不会影响 Mail。请参阅基准测试。
- 大型邮箱也很快:对 80,000 多封邮件进行搜索、查看邮件会话和统计,只需几毫秒,速度超过我们测试过的所有其他 Apple Mail MCP 服务(请参阅基准测试)。
- 全文搜索邮件正文,使用本地索引,约一分钟即可建成。
- 默认安全:回复和新邮件都会保存为草稿;启用“先询问我”后,未经你点击绝不发送;批量更改提供预览和限制;绝不会永久删除任何内容。
- 开箱即用的智能视图:需要你回复的邮件、仍在等待回复的邮件、常联系的发件人、每周统计。
- 八种 Claude 技能,将工具转化为工作流:邮件分流、收件箱清零、跟进、匹配你语气的回复撰写、新闻简报清理、研究、附件处理和每周报告。
- 无需密码,无需云端:适用于 Mail 中的所有账户(iCloud、Gmail、Exchange、IMAP),所有内容都保留在你的 Mac 上。
安装
Homebrew:
brew install --cask mp-consulting/tap/apple-mail-mcp
或者下载应用或 Claude 扩展,请前往最新版本:
| 文件 | 用途 |
|---|---|
AppleMailMCP-x.y.z.dmg | 内置服务的菜单栏应用:审批、活动、搜索索引、技能、一键设置。推荐使用。 |
AppleMailMCP-x.y.z.mcpb | 仅适用于 Claude 应用:双击即可将服务安装为 Claude 扩展,无需配置或重启。 |
两者均经过公证并使用 Developer ID 签名,可在 Apple 芯片和 Intel Mac 上运行(macOS 14+)。该服务也已在 MCP registry 中列出,名称为 io.github.mp-consulting/apple-mail-mcp。
然后:
- 打开 Apple Mail MCP:菜单栏中会出现一个信封图标。
- 点击信封,打开 Claude 标签页,然后点击 Claude Code 和/或 Claude 应用旁的 Connect。
- Claude Code 会获取服务和所有技能;新会话即可使用它们。
- Claude 应用只会在启动时读取服务:当标签页提供 Restart Claude 时,点击它。
要使用其中的技能,请将技能列表切换到 Claude app,点击 Export,然后将每个
.zip上传到 Claude › Settings › Capabilities › Skills。
- 授予 macOS 权限(仅需一次,见权限)。
在终端中,也可以进行同样的设置:
SERVER="/Applications/Apple Mail MCP.app/Contents/Helpers/Apple Mail MCP Server.app/Contents/MacOS/apple-mail-mcp"
"$SERVER" install # Claude Code and the Claude app
"$SERVER" skills install # skills for Claude Code
对于任何其他 MCP 客户端:将 /Applications/Apple Mail MCP.app/Contents/Helpers/Apple Mail MCP Server.app/Contents/MacOS/apple-mail-mcp 作为 stdio 服务运行(Homebrew 也会将其链接为
apple-mail-mcp)。在 0.6 之前,服务位于 Apple Mail MCP.app/Contents/MacOS/apple-mail-mcp;菜单栏应用会将 Claude Code 和 Claude 应用的设置迁移到新路径,其他客户端则需要手动更新路径。
权限
macOS 会要求授予两项权限,授予启动服务的应用(Claude、终端、VS Code……):
| 权限 | 用途 | 位置 |
|---|---|---|
| Full Disk Access | 读取 Mail 的数据库和邮件文件 | System Settings › Privacy & Security › Full Disk Access |
| Automation › Mail | 移动、标记、保存草稿和发送(首次操作时询问) | System Settings › Privacy & Security › Automation |
也请向 Apple Mail MCP 授予 Full Disk Access,以便面板显示计数并建立搜索索引。如果缺少权限,每个工具都会指出需要授权的具体应用,面板也会在 Needs attention 下显示相关提示。
运行 apple-mail-mcp doctor 可进行完整检查。
Claude 能做什么
| 工具 | 功能 |
|---|---|
inbox_overview | 一次调用即可查看未读数量、最新未读邮件、需要回复的邮件和已标记邮件 |
search_messages | 任意组合搜索文本(多个备选项)、主题、发件人、收件人、正文、邮箱、账户、日期、未读状态、标记、附件、Mail 的分类;排除项(主题、发件人、回复、自己),以及 direction(已接收或已发送);支持分页,也可按发件人、域名或月份使用 group_by 统计数量 |
export_search | 将搜索的所有匹配结果导出到一个 CSV、JSON 或 XLSX 文件,可选包含发票总额和编号;仅返回路径和行数 |
get_message、get_messages、get_thread | 获取一封邮件、一次最多 200 封邮件,或整个对话;可按需去除引用内容 |
extract_invoice_fields | 从发票和收据正文及附件 PDF 中提取供应商、发票编号、总额和货币 |
extract_fields | 提取追踪编号(含承运商)、验证码、预订和订单参考编号、航班信息、日历邀请 |
check_authenticity | 判断邮件是否确实来自其声称的发件人:SPF、DKIM、DMARC、相似域名、伪造的名称、具有误导性的链接 |
find_contact | 从通讯录和你联系过的人中查找地址,并按联系频率从高到低排列 |
wait_for_mail | 等待符合条件的邮件到达(例如登录验证码或预期的回复),并返回该邮件 |
mail_setup | 查看你的 Mail 规则、VIP、智能邮箱和签名 |
create_rule、update_rule、set_rule_enabled、delete_rule | 创建、修改、启用或停用及删除 Mail 规则(转发、回复和删除操作会先征求确认);每项操作都会与 Mail 中已保存的规则核对,且可通过 undo_change 撤销 |
apply_rules | 对邮箱中已有的邮件运行规则,类似于“邮件 › 应用规则”;试运行会显示每条规则将执行的操作 |
needs_response | 列出仍需你回复的个人邮件(排除列表邮件、促销邮件和自动回复地址) |
awaiting_reply | 列出你已发送但尚未收到回复的邮件 |
mail_statistics、top_senders | 查看邮件数量、最繁忙的日期和时段、分类,以及最常联系你的人 |
list_accounts、list_mailboxes | 列出账户、文件夹和数量 |
list_attachments、save_attachment、export_messages | 将附件保存到磁盘,或将邮件导出为 .eml 或 Markdown |
get_message_source | 查看原始标头,例如用于检查身份验证信息或退订链接 |
move_messages、update_messages、trash_messages、create_mailbox | 归档和整理邮件,设置已读/未读状态及标记,移至废纸篓;支持使用 dry_run 预览 |
undo_change | 列出最近的移动、移至废纸篓、标记和规则变更,并恢复其中一项 |
snooze_messages、list_scheduled、cancel_scheduled | 隐藏邮件直到指定日期,然后以未读状态移回收件箱;查看或取消稍后提醒和定时发送 |
compose_email、reply_to_message、forward_message | 撰写草稿(默认)、打开以供检查、发送或稍后发送(send_at);支持纯文本或格式化 HTML(回复和转发会保留原邮件格式并引用原文) |
list_drafts、send_draft | 列出未发送的草稿及收件人;按原样发送草稿 |
unsubscribe | 退订邮件列表:使用签名发件人的一键退订、发送退订邮件,或打开退订链接 |
open_in_mail、check_new_mail、body_index | 在 Mail 中显示邮件、获取新邮件、管理搜索索引 |
邮件 ID 是 Mail 自己的 ID;邮件移至其他位置后会获得新 ID,move_messages 会返回新 ID。
这些技能也以 MCP 提示词的形式提供(在 Claude Code 中为 /mcp__apple-mail__mail-triage 等),另有两个资源 mail://inbox/unread 和 mail://needs-response,会在邮件发生变化时通知已订阅的客户端。
稍后提醒和定时发送由菜单栏应用执行,因此该应用必须保持运行。
技能
在面板的 Claude 标签页中选择:每项技能都会说明其用途及是否已安装。
| 技能 | 或者直接询问…… |
|---|---|
/mail-triage | “今天我的邮件里有哪些需要处理?” |
/mail-inbox-zero | “帮我把收件箱清空。” |
/mail-follow-up | “这周谁还没回复我?” |
/mail-reply-writer | “回复 Anna 关于路线图的邮件。” |
/mail-newsletter-cleanup | “我收到的新闻邮件太多了,帮我清理一下。” |
/mail-research | “查找我的酒店预订确认码。” |
/mail-attachments | “把 2025 年的所有发票保存到 Documents/Invoices。” |
/mail-weekly-report | “我这周的邮件情况如何?” |
Claude 会根据你的请求选择合适的技能;在 Claude Code 中,你也可以用其斜杠命令启动技能。 在 Claude 应用中,上传技能后会自动使用。
它们遵循与服务相同的规则:发送前先保存草稿,批量更改前先预览,并尽可能少引用邮件内容。应用更新时,你安装的技能也会随之更新。
由你掌控

当 Claude 要发送邮件时,会弹出一个小窗口(面板的 Mail 标签页也会显示数量)。有多封邮件待处理时,你可以逐封审核;未经点击 Send,不会发送任何邮件。
- 发送策略(Settings):先询问我(默认选项)会显示每封待发邮件(收件人、主题、正文、附件),供你选择 Send 或 Don't Send;菜单栏应用未运行时会拒绝发送;也可选择 立即发送 或 永不发送(仅保存草稿)。
- 签名批准:你的回复和定时发送操作会使用 Keychain 中的密钥签名,因此其他程序无法通过写入文件来批准发送。
- 默认保存草稿:撰写、回复和转发的内容都会保存到 Drafts,除非 Claude 被要求发送。
- 批量限制:默认每次更改最多处理 50 条邮件;
dry_run会预览移动和移至废纸篓的操作。你也可以选择让超过指定数量的移动和移至废纸篓操作等待你在菜单栏应用中确认。 - 撤销:每次移动、移至废纸篓和标记更改都可以通过
undo_change还原(操作日志仅保留 Message-ID 和邮箱名称,且只有所有者可访问)。 - 取消订阅遵循发送策略:选择先询问我时,每次都需要你确认。一键请求只会发送给 DKIM 签名已通过其自身域名验证的发件人;对于其他发件人,你会获得链接。
- 不会永久删除:只会移至废纸篓,从不清空废纸篓。
- 文件:保存的附件不能放入启动、配置或系统文件夹;不能附加机密内容(
~/.ssh、.env、密钥链、浏览器配置文件、Mail 自身的数据)。Settings 中可选配允许列表。 - 只读模式:
apple-mail-mcp --read-only仅提供读取工具。 - 活动记录:Mail 标签页会列出每次工具调用(绝不会显示邮件内容)。
- 不含文本的搜索索引:Mail 的数据受“完全磁盘访问”保护;
~/Library/Application Support/apple-mail-mcp中的正文索引则不受保护,因此其中不存储任何词语,只存储带密钥的哈希值(不含顺序和位置)。密钥(“Apple Mail MCP search index key”)存放在 Keychain 中,且位于只有应用及其服务可以声明的访问组内(独立运行服务的 Claude 扩展会将密钥保存在登录 Keychain 中),因此其他应用无法使用该索引;即使拥有密钥,也只能测试猜测的词语。该文件仅所有者可访问,并且不会纳入 Time Machine 备份。如果密钥缺失或遭拒,正文搜索会改为扫描邮件。
基准测试
对 MCP 注册表中的每个 Apple Mail MCP 服务提出相同的问题,通过 MCP stdio 测试(即客户端所见的方式),使用一台 Apple M1(16 GB)和真实邮箱(账户中有 80,551 封邮件,收件箱中有 1,336 封),版本为 0.6.0。每个服务预热运行 25 次,取中位数。读取 Mail 文件的服务轮流调用,每轮各调用一次,因此机器负载变化对它们的影响相同。完整表格(含响应大小)见: Benchmarks/compare-mcp-servers.md。
| 问题 | Apple Mail MCP | mgcrea 1.28.0 | imdinu 0.5.0 | parasxos 1.8.0 |
|---|---|---|---|---|
| 列出账户 | 0.4 ms | 0.5 ms | 1.8 ms | – |
| 各邮箱的未读邮件数 | 2.1 ms | 7.05 s | 258 ms | 76 ms |
| 收件箱最新 20 封邮件 | 2.8 ms | 2.85 s | 20 ms | 104 ms |
| 按主题搜索收件箱 | 1.2 ms | 31 ms | 18 ms | 139 ms |
| 按主题搜索所有邮箱 | 3.4 ms | 6.8 s | 24 ms | 258 ms |
| 按发件人搜索收件箱 | 2.8 ms | 3.5 s | 23 ms | 78 ms |
| 搜索收件箱正文文本 | 2.1 ms | 1.17 s | 6.5 ms | 112 ms |
| 对话线程 | 3.3 ms | 29 ms | – | 13 ms |
| 近 30 天的主要发件人 | 1.9 ms | 3.1 ms | – | – |
| 统计 · 待回复 · 需要回应 · 概览 | 1.1–11 ms | – | – | – |
–:该服务没有对应问题的工具。
以同样方式测量的、通过 AppleScript 驱动 Mail 的服务(0.6.0,每个服务对每个问题调用一次,见 Benchmarks/compare-servers.md),耗时以秒计,而 Apple Mail MCP 只需毫秒;运行期间还会让 Mail 忙碌:ipsupport-llc 1.6.1 的响应时间为 0.17–11 s,Python 版 mcp-apple-mail 为 8–84 s;在此邮箱中,jakobfigur 0.6.2 和 jayvee6 0.1.0 运行失败,kiki830621 2.0.1 在 3 分钟后超时,而其他服务无法回答的问题则在 Mail 内超时或报错。Apple Mail MCP 对全部 13 个问题的响应时间为 0.8–17 ms。
如果没有正文索引,则会改为并行扫描近期邮件来搜索正文(此处为 27 ms)。为整个邮箱建立索引大约需要一分钟。
复现方法:Scripts/bench-servers.sh 会获取并准备其他服务(固定版本,并根据注册表中的 SHA-256 校验发布文件),然后运行 mail-bench compare;--fresh-index 会让我们的服务使用临时索引,避免钥匙串提示阻塞运行。mail-bench store 可测量你的邮件数据上的进程内耗时;mail-bench synthetic --messages 100000 则使用不涉及个人数据的生成邮箱。CI 会在每次推送时运行合成基准测试。
命令行
apple-mail-mcp [--read-only] [--write-dir DIR] [--attach-dir DIR] serve MCP over stdio
apple-mail-mcp doctor check permissions, data, index
apple-mail-mcp index [--rebuild] [--prune] build or update the body index
apple-mail-mcp install | uninstall [claude-code | claude-desktop] register with Claude
apple-mail-mcp skills [list | install | uninstall | export DIR] manage the Claude skills
apple-mail-mcp call <tool> '{"json": "arguments"}' run one tool
设置存放在 ~/Library/Application Support/apple-mail-mcp/settings.json 中,由应用和每个服务共享(更改立即生效)。
工作原理
Claude ──MCP (stdio)──▶ apple-mail-mcp ─┬─ reads ──▶ ~/Library/Mail/V10/MailData/Envelope Index (SQLite, read-only)
│ .emlx files · local hashed full-text index (FTS5)
└─ writes ─▶ Apple Events ─▶ Mail.app ─▶ your accounts
Apple Mail MCP.app (menu bar) ── settings · approvals · activity · index updates · Claude setup · updates
- MailStore 读取 Mail 的索引(账户、邮箱、Gmail 标签、标记、类别、线程),并解析邮件(MIME、字符集、HTML 转文本),无需运行 Mail。
- MailAutomation 根据 Mail 的脚本词典构建 Apple Events(不使用 AppleScript),通过 ID 指定邮件,并在进程间串行处理。
- MailMCPKit 定义工具、策略、审批和技能;MailMCPBar 是 SwiftUI 菜单栏应用(macOS 26 上采用 Liquid Glass)。
开发
git clone https://github.com/mp-consulting/apple-mail-mcp && cd apple-mail-mcp
swift test --scratch-path ~/Library/Caches/apple-mail-mcp-build # 120+ tests on synthetic mailboxes
Scripts/build-app.sh --install # build, sign, install, launch the app
应用需要 Xcode 26(Swift 6.2);服务可使用 Swift 6.1 构建。架构以及代码所依赖的 Mail 特性见 CLAUDE.md,发行记录见 CHANGELOG.md。
致谢
本项目受到 patrickfreyer/apple-mail-mcp 启发,其工具集和路径保护规则对本项目产生了影响。
许可证
MIT © 2026 Mickael Palma。与 Apple 无关联。Apple Mail 是 Apple Inc. 的商标。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。