mcpField
A
Apple Mail MCP

Apple Mail MCP

本地服务
github.com/jakobfigur通信协作13 周前更新

关于 Apple Mail MCP

Apple Mail MCP 是用于在 macOS 上操作 Apple Mail 的本地 MCP 服务,支持邮件上下文、草稿、审批队列和跟进;发送邮件及更改消息均须用户批准。

主要功能

  1. 01搜索并读取邮件
  2. 02创建可见的邮件草稿
  3. 03发送和修改须经批准
  4. 04将待发邮件加入审核队列
  5. 05保存本地联系人上下文
  6. 06生成简报和跟进列表

适用场景

  1. 01查看收件箱并准备回复
  2. 02将草稿加入队列以供人工批准
  3. 03跟踪联系人承诺和后续事项
  4. 04准备每日邮件行动简报

MCP 相关

通过本地 stdio 向 MCP 客户端提供 Apple Mail 工具,包括读取、草稿、审批流程和受控的消息修改。

配置

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

mcp.json · 通用配置
{
"mcpServers": {
"jakobfigur-apple-mail": {
"command": "npx",
"args": [
"-y",
"@jakobf1/apple-mail-mcp"
]
}
}
}
启动命令npx -y @jakobf1/apple-mail-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@jakobf1/apple-mail-mcp0.6.2

工具

26

收录的工具列表 · 更新于 2 周前

此工具无需参数。

详细介绍

Apple Mail MCP

适用于 macOS 上 Apple Mail 的本地 stdio Model Context Protocol 服务。

它只与用户 Mac 上已配置的 Apple Mail 应用交互。无需 IMAP/SMTP 密码,也不会开放网络端口。

安全模型

  • 邮箱和邮件工具默认仅供读取。
  • create_draft 会在 Apple Mail 中打开一封未发送且可见的草稿。
  • send_email 要求 user_approved: true。MCP 客户端应仅在用户批准确切邮件内容后调用它。
  • 标记、加旗标和移动等邮件更改也要求 user_approved: true。
  • 动态内容作为参数传递给 osascript,而不是插入 AppleScript 源代码。
  • 每项写入操作都会在本地生成一条仅含元数据的 JSONL 审计记录。邮件正文和凭据绝不会写入该日志。
  • 批准收件箱和关系上下文仅存储在下文所述的本地 JSON 数据存储中。

MCP 服务本身在本地运行。不过,MCP 客户端可能会将工具结果发送给 AI 模型或其他服务。仅将邮件内容交给你信任的客户端和模型。

要求

  • 已配置 Apple Mail 的 macOS
  • Node.js 20+
  • 授予宿主应用(例如 Codex 或 Terminal)在 系统设置 → 隐私与安全性 → 自动化 中控制 Mail 的权限

安装

npm(推荐)
npm install -g @jakobf1/apple-mail-mcp

然后使用已安装的命令配置 MCP 客户端:

{
  "mcpServers": {
    "apple-mail": {
      "command": "apple-mail-mcp"
    }
  }
}
从源代码安装
git clone https://github.com/YOUR_ACCOUNT/apple-mail-mcp.git
cd apple-mail-mcp
npm install
npm run build

添加到 MCP 客户端

如果你是从源代码安装而非通过 npm 安装,请通过 stdio 使用编译后的服务:

{
  "mcpServers": {
    "apple-mail": {
      "command": "node",
      "args": ["/absolute/path/to/apple-mail-mcp/dist/index.js"]
    }
  }
}

保存配置后,重启 MCP 客户端。首次调用时会触发 macOS 常规的自动化权限提示。

可选发件人策略

若要仅允许从特定的已配置 Apple Mail 地址发送邮件,请在启动服务时配置以逗号分隔的允许列表:

{
  "env": {
    "APPLE_MAIL_MCP_ALLOWED_SENDERS": "[email protected]"
  }
}

默认情况下,写入操作的审计元数据会存储在本地 ~/.apple-mail-mcp/audit.jsonl。设置 APPLE_MAIL_MCP_AUDIT_LOG 可改用其他本地路径。

面向 AI 的本地工作区

默认情况下,批准收件箱和关系上下文共用 ~/.apple-mail-mcp/data.json 这一份本地 JSON 数据存储。其中包含排队中的草稿正文以及你主动保存的联系人备注,因此应将其视为私密邮件数据。设置 APPLE_MAIL_MCP_DATA_STORE 可改用其他本地路径。

APPLE_MAIL_MCP_DRY_RUN=true 会验证邮件,但阻止实际发送。你还可以通过 APPLE_MAIL_MCP_ALLOWED_RECIPIENTS、APPLE_MAIL_MCP_ALLOWED_RECIPIENT_DOMAINS 和本地时间窗口(例如 APPLE_MAIL_MCP_SENDING_WINDOW=09:00-18:00)限制收件人。

工具

工具功能
list_accounts列出已配置的 Apple Mail 账户和发件人地址。
list_mailboxes列出账户中的顶层邮箱。
list_messages返回收件箱或邮箱摘要,不包含邮件正文。
search_messages按发件人或主题搜索近期邮件。
get_message根据 ID 读取一封邮件的正文,并可配置长度上限。
create_draft打开一封可见但尚未发送的外发邮件。
send_email将已批准的邮件交由 Apple Mail 发送。
create_reply_draft打开一封可见的回复草稿,并保留 Apple Mail 对回复收件人和主题的处理方式。
set_message_read_status将一封已批准的邮件标记为已读或未读。
set_message_flag_status为一封已批准的邮件添加或移除标记。
move_message将一封已批准的邮件移至其他邮箱。
get_audit_log读取仅包含元数据的本地审计记录。
get_send_policy / preview_send检查或验证当前发送保护措施,不会实际发送。
queue_email_for_approval / list_approval_queue在本地保存拟发送邮件,供人工审核。
approve_queued_email / discard_queued_email执行明确批准的队列决策。
save_contact_context / get_contact_context维护私密的关系备注、语气、承诺和跟进日期。
get_contact_brief将已保存的联系人资料与近期收件箱摘要合并。
list_follow_up_radar显示需要进行经人工批准的跟进的已保存联系人。
get_work_mode / set_work_mode在收件箱清零、销售跟进、支持和深度工作等专注策略之间切换。
save_thread_summary使用源邮件 ID 保存经用户批准的本地邮件线程摘要。
get_daily_briefing将未读邮件、待处理审批和到期跟进合并为安全的每日行动简报。

范围与非目标

本项目仅在本地运行。它不是 SMTP 服务,不管理凭据,也不会绕过 macOS 隐私提示。它有意不包含删除、附件导出、后台计划任务和自动发送功能。

发布与注册表元数据

此软件包以 @jakobf1/apple-mail-mcp 发布。其 MCP Registry 标识为 io.github.jakobfigur/apple-mail-mcp;便携式安装元数据请参见 server.json。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

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

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