Apple Mail, Calendar & Notes
io.github.ipsupport-llc由 GitHub 账号 ipsupport-llc 发布v1.6.1更新于 Oct 25, 2026
Apple Mail, Calendar and Notes on macOS for any MCP client. Local, no dependencies.
概览
一个本地 macOS MCP 服务器,让助手通过系统自带的邮件、日历和备忘录应用读取、搜索、分拣和发送 Apple Mail 邮件,管理日历事件并编辑备忘录。
- 可以做什么
- 邮件分拣与阅读:找出待回复和等待对方回复的邮件、查看完整会话、列出文件夹和未读数、按正文、发件人或日期搜索、读取单封邮件并列出附件,覆盖所有邮件账户。撰写邮件:发送带抄送、密送和附件的新邮件,回复、全部回复和转发,默认以草稿形式打开。整理邮件:创建文件夹、移动和删除邮件(支持预演)、设置旗标和已读状态,以及创建、启用或删除邮件规则。管理日历:按日期范围列出事件(含重复事件),创建和删除事件。处理备忘录:浏览文件夹、列出和搜索备忘录,读取、新建、追加、重写和删除备忘录。
- 适用场景
- 当你的邮件、日历和备忘录存放在 macOS 自带的邮件、日历和备忘录应用中(包括自建 IMAP、iCloud 或 Exchange 账户),并希望本地助手分拣邮件、起草回复、安排日程或记录笔记而不依赖云端连接器时适用。
- 运行要求
- 需要 macOS 14 或更高版本(更早版本未测试)以及能启动本地 stdio 服务器的 MCP 客户端。依赖 Mac 自带的 osascript 运行,无需 Node、Python 或其他依赖。客户端需在系统设置中获得控制邮件、日历和备忘录的自动化权限。可选环境变量:APPLE_MAIL_DEFAULT_ACCOUNT、APPLE_MAIL_READ_ONLY、APPLE_MAIL_SAVE_DIR。
安装
在 SourceWeft 中
- 打开 控制台中的 Apple Mail, Calendar & Notes,将其添加到工作区。
- 为需要使用其工具的对话启用该服务。
Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。
其他 MCP 客户端
参照 仓库 中的启动说明。
README
Apple Mail, Calendar & Notes MCP
Let your AI assistant read, search, triage and send your mail, manage your calendar and keep notes —
using the Mail, Calendar and Notes apps already on your Mac. Works with any MCP client.
Download the latest release · Install · What it can do · FAQ
Why this exists
Most AI mail connectors live in the cloud and only work with Gmail or Outlook. If your mail lives in Apple Mail — a self-hosted IMAP server, iCloud, a company account — there was no clean way to give an assistant access.
This MCP server talks to the apps on your Mac directly. That means:
- Any MCP client. Desktop chat apps, local-model apps, coding agents — anything that can start an MCP server over stdio.
- Any account Apple Mail can open works. Self-hosted, iCloud, Exchange, Gmail-via-IMAP — if it's in Mail.app, your assistant can see it.
- Nothing to install. No Node, no Python, no Homebrew. It runs on JavaScript for Automation, which ships with every Mac.
- Your mail stays on your Mac. The server has no network code. The assistant only sees what it asks for; where that goes next depends on your model (a local model keeps everything on the Mac).
- Two permission prompts, not thirty. Everything is grouped into a
readtool and awritetool. Approvereadonce and forget about it. - Works with small local models too. Arguments are forgiving (
"true","3 days ago",folderinstead ofmailbox), and every mistake comes back with a plain "how to fix" line instead of a dead end.
What it can do
Ask in plain words — "what's waiting for my reply?", "forward the printer invoice to accounting", "put a call with Sam on Tuesday at 1pm", "save the PDFs from the contract email". Under the hood:
📥 Triage — "what needs my attention?"
🔎 Read & search
✉️ Write
🗂 Organize
📅 Calendar
📝 Notes
Install
You need macOS 14 or later (older versions will likely work but aren't tested) and an MCP client.
Any MCP client
Get the code — git clone https://github.com/ipsupport-llc/apple-mail-mcp, or unzip the .mcpb from the latest release — and add the server to your client's config. It runs on the Mac's own osascript:
./install.sh --print prints this block with the right path. The server is also listed in the MCP Registry as io.github.ipsupport-llc/apple-mail-mcp.
The first time the assistant touches Mail, Calendar or Notes, macOS asks whether your client may control them — click Allow.
Claude Desktop (one click)
- Download
apple-mail-mcp.mcpbfrom the latest release. - Double-click it and click Install.
Updates, settings and removal live in Settings → Extensions.
Settings
As environment variables in the server's env (Claude Desktop: Settings → Extensions → Apple Mail, Calendar & Notes → Configure):
Tool permissions
Most clients ask before using a tool. We recommend allowing read once and approving write each time, so you always see what gets sent, moved or deleted.
Safety
- Mail and notes are never deleted for good. Mail goes to the account's Trash, notes go to Recently Deleted. Where that isn't possible — an account without a Trash folder, a Notes account without Recently Deleted (e.g. Exchange), something already in the trash, a locked note — the extension refuses and says why. Mail rules that delete are only allowed when every account keeps deleted mail in its Trash.
- Calendar events and rules have no trash in macOS. Deleting one returns a full copy of it, so it can be recreated on request.
- Replies and forwards are drafts by default. You see the real thing in Mail and press Send yourself.
dry_run: trueshows exactly what would go out — recipients (Reply-To and reply-all included), subject and the full text — and a reply is not sent if Mail would address it differently. Results of a send list what Mail actually sent. - Nothing hangs. Mail, Calendar and Notes are driven from a separate worker process: a call that takes longer than the timeout is stopped with a clear error,
pingandtools/listalways answer, and a cancelled call really stops. A write that timed out is not repeated blindly. Each call is logged to stderr with its app and duration. - Permissions explained. A missing Automation permission, an app that is not running or a lost connection comes back as a plain "how to fix" instead of an error code.
- No accidental repeats. The same send, reply, delete or create call twice within 15 minutes is refused — a stuck model can't send an email five times.
- Repeating events are deleted only on purpose. Deleting one removes the whole series, so the extension asks for
whole_series: true. - Dry runs. Bulk moves and deletes can be previewed before they happen.
- Attachments stay in one place. They are saved only inside the attachments folder from the settings and are never overwritten — an existing file gets
(1),(2)… appended. Files attached to outgoing mail also come only from that folder, so "attach ~/.ssh/id_rsa" is refused; files from other tools (say, a Seafile download) go there first. - Attachments are checked. If Mail does not take every file, the message is not sent: it opens as a draft instead.
- Watch out for instructions hidden in emails. Anything the assistant reads becomes part of its context, and a malicious email could try to tell it to do something. Keep
writeon manual approval, or turn on read-only mode, if that worries you. - One readable file. The whole server is
server/apple-mail-mcp.js, with no dependencies and no network calls.
FAQ
Do Mail rules run when my Mac is asleep? No. Apple Mail rules only run while Mail is open, and only on new mail. To sort old mail, ask the assistant to move it. If your mail server supports Sieve, server-side filters are more reliable across devices.
The assistant can't read a note. It's probably locked. Unlock it in Notes first; locked notes stay private.
Search is slow. Apple Mail's scripting is slow on very large folders, and searching message text is the slowest. Narrow it to an account, a folder or a date range.
The tools don't show up.
Check that the server is enabled in your client, then restart the client. ./test.sh talks to the server directly, without any client. (Claude Desktop: Settings → Extensions; logs in ~/Library/Logs/Claude/.)
"Not authorized to send Apple events". Open System Settings → Privacy & Security → Automation and allow your MCP client (the app that starts the server) to control Mail, Calendar and Notes.
Tool reference (for the curious)
Two tools, each taking { "action": "...", "args": { ... } }. The full list of arguments is in each tool's description.
read — never changes anything
write — changes things (hidden in read-only mode)
Message ids come from list and search results; pass account and mailbox from the same row. If the folder is wrong, the message is found by its id anyway.
Small models get help: argument names are matched loosely (folder → mailbox, messageId → id), values are converted ("false", "1,2,3", "tomorrow"), short action names work (reply, search), and every result explains in notes how the call was read. Anything that sends, deletes or creates is never guessed: there, unclear input is an error with a hint.
Manual install & development
Run the server straight from a checkout instead of the .mcpb:
install.sh takes the same settings as the extension: --read-only / --no-read-only, --account Work, --save-dir ~/Documents/Attachments. Running it again keeps earlier settings unless you change them (--reset forgets them).
Restart Claude Desktop after install.sh. Don't use the manual install and the .mcpb at the same time.
Tests never touch your mail: unit tests run the server against fake Mail, Calendar and Notes apps, protocol tests only speak JSON-RPC. CI runs both on macOS for every pull request.
Releasing: push a tag and GitHub Actions runs the tests, builds the .mcpb, attaches it to a release and lists it in the MCP Registry.
License
MIT © IPSupport LLC. Some feature ideas were inspired by patrickfreyer/apple-mail-mcp (MIT).
来源:README.md,提交 44185fe
工具
0版本历史
3- v1.6.1最新Oct 17, 2026
- v1.5.1Oct 16, 2026
- v1.4.0Oct 16, 2026
评分
已满足适用检查项的 50%
该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。
- 近 30 天内可连通25 分
请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。
- 已声明认证方式10 分
请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。
- 已列出工具15 分
请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。
- 描述必需15 分
- 图标10 分
- 文档15 分
- 许可证10 分