mcpField
A
Apple Mail, Calendar & Notes

Apple Mail, Calendar & Notes

本地服务
github.com生产力02 周前更新

关于 Apple Mail, Calendar & Notes

面向 macOS 用户的本地 MCP 服务,让 MCP 客户端通过 Mac 上已有的 Mail、Calendar 和 Notes 读取、搜索并管理邮件、日历与笔记。它使用系统自带的 JavaScript for Automation,无依赖和网络调用,并以读取与写入工具分组及可选只读模式控制操作。

主要功能

  1. 01邮件分类、搜索与会话查看
  2. 02发送、回复及整理邮件
  3. 03创建和管理日历事件
  4. 04浏览、搜索和编辑笔记
  5. 05只读模式、预览及重复操作防护

适用场景

  1. 01汇总待回复邮件并跟进未获回复的消息
  2. 02搜索邮件并保存其附件
  3. 03在 Calendar 中安排或删除事件
  4. 04搜索 Notes 并创建或更新笔记

MCP 相关

作为 MCP 服务,通过 stdio 向 MCP 客户端提供 Mail、Calendar 和 Notes 的读取与写入工具。首次访问时需要 macOS 授权;可配置为只读。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库
安装包
mcpbapple-mail-mcp.mcpb

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

README 配图

Apple Mail、Calendar 和 Notes MCP

让你的 AI 助手读取、搜索、整理和发送邮件,管理日历并记录笔记——
使用 Mac 上现有的 Mail、Calendar 和 Notes 应用。适用于任何 MCP 客户端。

下载最新版本 · 安装 · 功能介绍 · 常见问题


为什么要开发它

大多数 AI 邮件连接器都在云端运行,且只支持 Gmail 或 Outlook。如果你的邮件使用 Apple Mail——自托管的 IMAP 服务、iCloud 或公司账户——就没有简便的方法让助手访问邮件。

这个 MCP 服务会直接与 Mac 上的应用通信。这意味着:

  • 适用于任何 MCP 客户端。 桌面聊天应用、本地模型应用、编码 Agent——任何能通过 stdio 启动 MCP 服务的应用都可以。
  • Apple Mail 能打开的任何账户都可以使用。 自托管、iCloud、Exchange、通过 IMAP 使用的 Gmail——只要账户在 Mail.app 中,你的助手就能查看。
  • 无需安装任何东西。 无需 Node、Python 或 Homebrew。它使用 JavaScript for Automation 运行,这是每台 Mac 都自带的。
  • 邮件会留在 Mac 上。 服务不包含网络代码。助手只能看到它请求的内容;这些内容之后会去往何处取决于你使用的模型(本地模型会将所有内容保留在 Mac 上)。
  • 只需两次权限提示,而非三十次。 所有操作都归入 read 工具和 write 工具。批准一次 read,之后就不用再管。
  • 也适用于较小的本地模型。 参数要求宽松("true"、"3 days ago",可用 folder 代替 mailbox),每次出错都会返回一条直白的“如何修复”说明,而不是让你束手无策。

功能介绍

用日常语言提问——“有哪些邮件在等我回复?”、“把打印机发票转发给财务部”、“周二下午 1 点安排和 Sam 通话”、“保存合同邮件里的 PDF”。它在后台可以:

📥 整理邮件 — “哪些邮件需要我处理?”
需要回复尚未回复的真人邮件。忽略自动回复地址和通知邮件。
等待回复你发送但尚未收到任何收件人回复的邮件。非常适合跟进。
对话视图按顺序查看完整邮件会话——包括对方的邮件和你的回复——涵盖所有文件夹,包括“已发送”。只有主题和参与者都匹配时,邮件才会被视为同一对话。
已回复 / 已转发 / 已标记列表中的每封邮件都会显示你是否已回复,避免助手重复提醒。
🔎 阅读和搜索
收件箱和文件夹查看任何文件夹中的最新邮件、未读数量以及所有账户。
搜索按主题、发件人或邮件正文搜索;按日期范围搜索;筛选未读、已标记或带附件的邮件;可在一个文件夹或所有位置搜索。
读取邮件查看邮件头、收件人、纯文本正文(较长的邮件会分页显示)和附件列表。
附件查看附件名称、大小和类型,并将其保存到附件文件夹。
✉️ 写邮件
发送撰写新邮件,设置收件人、抄送和密送,可使用你的任一地址发送并附加文件。
回复 / 回复所有人在下方引用原邮件。邮件会作为草稿打开,供你检查并发送。
转发可转发附件,并在顶部添加可选备注。邮件也会作为草稿打开。
草稿模式回复和转发默认在 Mail 中打开,因为 Mail 会自行选择收件人并引用原邮件。新邮件也可以作为草稿打开。
🗂 整理
文件夹创建文件夹,包括嵌套文件夹(Alerts/Kubernetes)。
移动和删除在文件夹之间移动邮件,或将邮件移至账户的废纸篓——还可先进行试运行,查看将要发生的更改。
标记和已读状态使用任意颜色标记邮件,或将邮件标记为已读或未读——可操作单封邮件,也可批量操作。
规则创建、查看、启用、停用和删除邮件规则,让新邮件自动归类。
📅 日历
日程查看任意日期范围内所有日历的日程,包括重复事件;创建和删除事件。只填写日期会创建全天事件。
📝 备忘录
浏览和搜索浏览文件夹和最近的备忘录,按标题或文本搜索。除非你主动查看,否则“最近删除”中的内容会保持隐藏。
撰写创建备忘录、追加内容或重写备忘录;删除的备忘录会移至“最近删除”。

安装

你需要 macOS 14 或更高版本(较旧版本可能也能使用,但未经测试)以及一个 MCP 客户端。

适用于任意 MCP 客户端

获取代码——运行 git clone https://github.com/ipsupport-llc/apple-mail-mcp,或解压从最新版本下载的 .mcpb 文件——然后将服务添加到客户端的配置中。它会在 Mac 自带的 osascript 上运行:

{
  "mcpServers": {
    "apple-mail": {
      "command": "/usr/bin/osascript",
      "args": ["-l", "JavaScript", "/path/to/apple-mail-mcp/server/apple-mail-mcp.js"]
    }
  }
}

运行 ./install.sh --print 会输出包含正确路径的此配置块。该服务也已在 MCP Registry 中列出,名称为 io.github.ipsupport-llc/apple-mail-mcp。

助手首次访问 Mail、Calendar 或 Notes 时,macOS 会询问是否允许客户端控制这些应用——点击 允许。

Claude Desktop(一键安装)
  1. 从最新版本下载 apple-mail-mcp.mcpb。
  2. 双击该文件并点击 安装。

更新、设置和卸载选项位于 设置 → 扩展。

设置

在服务的 env 中设置环境变量(Claude Desktop:设置 → 扩展 → Apple Mail, Calendar & Notes → 配置):

变量作用
APPLE_MAIL_READ_ONLY=true完全移除 write 工具。助手仍可读取和搜索,但无法发送、移动、删除或创建任何内容。适合共享设备或工作设备的安全默认设置。
APPLE_MAIL_DEFAULT_ACCOUNT助手未指定账户时使用的默认账户,例如 Work。
APPLE_MAIL_SAVE_DIR保存附件的位置。默认为 ~/Downloads;~ 和 ${HOME} 会展开为对应路径。
APPLE_MAIL_TIMEOUT单次调用超时前允许等待的秒数(默认值为 25)。
工具权限

大多数客户端会在使用工具前征求许可。我们建议允许一次 read,并在每次使用时批准 write,这样你始终能看到哪些内容将被发送、移动或删除。

安全性

  • 邮件和备忘录绝不会被永久删除。 邮件会移至账户的废纸篓,备忘录会移至“最近删除”。如果无法这样处理——例如账户没有废纸篓、备忘录账户没有“最近删除”(如 Exchange)、内容已在废纸篓中,或备忘录已锁定——扩展程序会拒绝操作并说明原因。只有在每个账户都会将已删除邮件保留在废纸篓中时,才允许使用会删除邮件的邮件规则。
  • macOS 中的日历事件和规则没有废纸篓。 删除时会返回其完整副本,因此之后可以按需重新创建。
  • 回复和转发默认保存为草稿。 你可以在 Mail 中查看内容,然后自行按下 Send。dry_run: true 会准确显示将要发送的内容——收件人(包括 Reply-To 和回复所有人)、主题和全文——如果 Mail 实际要使用的收件人与之不同,则不会发送回复。发送结果会列出 Mail 实际发送的内容。
  • 不会卡住。 Mail、Calendar 和 Notes 由独立的工作进程驱动:超时前未完成的调用会被停止并返回明确错误,ping 和 tools/list 始终会响应,已取消的调用也确实会停止。超时的写入操作不会盲目重试。每次调用都会将应用名称和耗时记录到 stderr。
  • 说明权限问题。 如果缺少自动化权限、应用未运行或连接中断,系统会提供通俗易懂的“如何修复”说明,而不是错误代码。
  • 避免意外重复操作。 15 分钟内重复执行相同的发送、回复、删除或创建调用会被拒绝——这样卡住的模型就不会把同一封邮件发五次。
  • 仅在明确要求时删除重复事件。 删除重复事件会移除整个系列,因此扩展程序会要求提供 whole_series: true。
  • 试运行。 批量移动和删除可以先预览,再执行。
  • 附件集中存放。 附件只会保存到设置中的附件文件夹内,且绝不会覆盖现有文件——如果文件已存在,会在文件名后追加 (1)、(2)……。要附加到外发邮件的文件也只能来自该文件夹,因此会拒绝“附加 ~/.ssh/id_rsa”这类请求;来自其他工具的文件(例如从 Seafile 下载的文件)需先放入该文件夹。
  • 会检查附件。 如果 Mail 未接收所有文件,则不会发送邮件,而是将其作为草稿打开。
  • 警惕邮件中隐藏的指令。 助手读取的所有内容都会成为其上下文的一部分,恶意邮件可能会试图指示助手执行某些操作。如果你对此有所顾虑,请将 write 设为需要手动批准,或开启只读模式。
  • 单个易读文件。 整个服务端代码都在 server/apple-mail-mcp.js 中,没有依赖项,也不会发起网络调用。

常见问题

Mac 处于睡眠状态时,Mail 规则会运行吗? 不会。Apple Mail 规则只会在 Mail 打开时运行,而且只处理新邮件。要整理旧邮件,请让助手移动它们。如果你的邮件服务器支持 Sieve,服务器端过滤器在不同设备上的表现会更可靠。

助手无法读取某条备忘录。 它很可能已被锁定。请先在 Notes 中解锁;锁定的备忘录会保持私密。

搜索速度很慢。 Apple Mail 的脚本处理大型文件夹时速度较慢,而搜索邮件正文最慢。请将搜索范围缩小到特定账户、文件夹或日期范围。

看不到这些工具。 请检查客户端中是否已启用该服务端,然后重启客户端。./test.sh 会直接与服务端通信,不需要任何客户端。(Claude Desktop:Settings → Extensions;日志位于 ~/Library/Logs/Claude/。)

“Not authorized to send Apple events”。 打开 System Settings → Privacy & Security → Automation,允许你的 MCP 客户端(启动该服务端的应用)控制 Mail、Calendar 和 Notes。


工具参考(供感兴趣者阅读)

两个工具,均接受 { "action": "...", "args": { ... } }。完整参数列表请见各工具的说明。

read — 不会更改任何内容

操作用途
needs_response等待你回复的他人邮件
awaiting_reply你已发送但尚未收到回复的邮件
get_thread完整对话,按时间从早到晚排列
list_messages文件夹中的最新邮件,包含已回复 / 已转发 / 已标记状态
search_messages搜索文本(主题、发件人、正文)、日期、未读、已标记、附件以及所有文件夹
read_message一封完整邮件
list_attachments邮件的附件
list_accounts邮件账户和地址
list_mailboxes文件夹及未读数量
list_rules包含条件和操作的邮件规则
list_calendars日历
list_events日期范围内的事件,展开重复事件
list_note_folders备忘录账户和文件夹
list_notes最近的备忘录
search_notes搜索备忘录
read_note一篇完整备忘录

write — 执行更改(只读模式下隐藏)

操作用途
send_email新邮件;attachments 从附件文件夹获取(改为 draft: true 则会打开草稿)
reply_message回复 / 回复所有人——默认在 Mail 中打开为草稿,draft: false 则发送
forward_message转发并附带附件——默认保存为草稿,draft: false 则发送
set_read将一封或多封邮件标记为已读 / 未读
set_flag使用颜色标记 / 取消标记
move_messages移动到其他文件夹(可使用 dry_run)
delete_messages移动到账户的废纸篓(可使用 dry_run)
save_attachments将附件保存到附件文件夹
create_mailbox新建文件夹
create_rule · set_rule_enabled · delete_rule邮件规则(已删除的规则会作为副本恢复)
create_event · delete_event日历事件(使用 whole_series: true 删除重复事件;已删除的事件会作为副本恢复)
create_note · update_note · delete_note备忘录

邮件 ID 来自列表和搜索结果;请传入同一行中的 account 和 mailbox。即使文件夹有误,也仍会根据邮件 ID 找到邮件。

小型模型也能轻松使用:参数名称会进行宽松匹配(folder → mailbox,messageId → id),值会自动转换("false"、"1,2,3"、"tomorrow"),也支持简短的操作名称(reply、search),并且每条结果都会在 notes 中说明对调用的解析方式。任何发送、删除或创建操作都绝不会靠猜测执行:输入不明确时会报错并给出提示。

手动安装与开发

直接从检出目录运行服务,而不是使用 .mcpb:

git clone https://github.com/ipsupport-llc/apple-mail-mcp.git ~/code/apple-mail-mcp
cd ~/code/apple-mail-mcp
./install.sh --print   # any client: prints the config block to paste
./install.sh     # Claude Desktop: adds an "apple-mail" entry to claude_desktop_config.json (backs it up first)
./test.sh        # talks to the server directly and prints your accounts and calendars
./uninstall.sh   # removes the entry

install.sh 接受与扩展程序相同的设置:--read-only / --no-read-only、--account Work、--save-dir ~/Documents/Attachments。再次运行时会保留之前的设置,除非你修改它们(--reset 会清除这些设置)。

运行 install.sh 后重启 Claude Desktop。不要同时使用手动安装和 .mcpb。

测试绝不会触碰你的邮件:单元测试使用虚拟 Mail、Calendar 和 Notes 应用来运行服务;协议测试只通过 JSON-RPC 通信。CI 会在每个拉取请求中于 macOS 上运行这两种测试。

/usr/bin/osascript -l JavaScript tests/unit.js server/apple-mail-mcp.js
python3 tests/protocol.py

**发布:**推送一个标签,GitHub Actions 就会运行测试、构建 .mcpb、将其附加到一个版本并将其列入 MCP Registry。

git tag v1.4.0 && git push origin v1.4.0

许可证

MIT © IPSupport LLC。部分功能创意受到 patrickfreyer/apple-mail-mcp(MIT)的启发。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。