Token导航 LogoToken导航TokenDH.com
Macos Mail MCP logo
办公协作未说明官方级别未说明来源级核验

Macos Mail MCP

MCP Server

一个为macOS Mail.app提供的MCP服务器,通过AppleScript连接Claude到您的电子邮件,提供20种工具用于阅读、搜索、管理和撰写邮件。

工具数

20

提示词数

0

GitHub Stars

0

资源数

0
邮件管理TypeScriptClaudeClaude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

marius-cetanas

提供方

marius-cetanas

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

macos邮件mcp

](https://www.npmjs.com/package/macos-mail-mcp) ![License: MIT](https://opensource.org/licenses/MIT) ](https://nodejs.org/) ![macOS](https://www.apple.com/macos/)

用于Apple Mail(macOS Mail.app)的MCP服务器,通过AppleScript将Claude连接到您的电子邮件。提供20种阅读、搜索、管理和撰写电子邮件的工具。

支持的帐户

适用于 在macOS Mail.app中配置的任何电子邮件帐户 --iCloud、Gmail、Outlook/Exchange、雅虎、Fastmail、自定义IMAP/POP等。无需更改代码;只需在Mail.app中添加帐户,即可通过所有20个工具使用。

需求

  • 已配置Mail.app的macOS(至少有一个电子邮件帐户)
  • Node.js 18+
  • 克劳德代码或克劳德桌面应用程序

安装

快速安装(npm)

最简单的方法——不需要克隆或构建:

克劳德代码(CLI):

claude mcp add macos-mail-mcp -- npx macos-mail-mcp

克劳德桌面:

添加 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "macos-mail-mcp": {
      "command": "npx",
      "args": ["macos-mail-mcp"]
    }
  }
}

添加配置后重新启动Claude桌面应用程序。

从源代码安装

如果您更喜欢在本地构建或想要做出贡献:

git clone https://github.com/marius-cetanas/macos-mail-mcp.git
cd macos-mail-mcp
npm install
npm run build

然后用Claude Code注册:

claude mcp add --transport stdio --scope user macos-mail-mcp -- node /path/to/macos-mail-mcp/build/index.js

或添加到Claude Desktop配置(~/Library/Application Support/Claude/claude_desktop_config.json):

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

macOS权限

首次使用时,macOS将提示授予控制Mail.app的自动化权限。首选 系统设置>隐私和安全>自动化 为了管理这一点。

工具

账目(2)

工具说明
list_accounts列出所有邮件帐户(名称、类型、已启用、电子邮件)
get_account_detail获取完整的帐户详细信息(服务器、端口、SSL、邮箱计数)

邮箱(3)

工具说明
list_mailboxes列出一个帐户或所有帐户的邮箱
get_mailbox_info获取邮箱详细信息(邮件数、未读数)
create_mailbox创建新邮箱(顶级或嵌套在父级下)

留言(8)

工具说明
list_messages列出带有分页(限制/偏移)和可选日期过滤(之后/之前)的消息
get_message获取完整的邮件内容、标题、收件人和附件。邮箱名称是可选的--省略以搜索帐户中的所有邮箱。
search_messages按主题、发件人或内容搜索,可选择日期过滤(在/之前)。结果包括邮箱名称。
move_message将邮件移动到其他邮箱
move_messages在单个操作中将多封邮件批量移动到不同的邮箱
delete_message删除邮件(移至垃圾箱)
flag_message设置/清除带有可选颜色索引的标志(0-6)
mark_read将邮件标记为已读或未读

附件(4)

工具说明
list_attachments列出带有文件名、MIME类型、大小和下载状态的附件
save_attachment将特定附件保存到磁盘
save_all_attachments保存邮件中的所有附件
read_attachment内联读取基于文本的附件内容(.txt、.csv、.json、.html、.md、.xml、.log)

作曲(3)

工具说明
send_message发送一封新电子邮件,其中包含可选的抄送、密件抄送和附件
reply_to_message回复或全部回复一条消息
forward_message将邮件转发给新收件人

建筑

src/
  index.ts                          # MCP server entry point
  types.ts                          # TypeScript interfaces
  utils.ts                          # Shared utilities (sanitize, expandTilde, toolError)
  bridge/
    applescript-runner.ts            # AppleScript execution engine
    escape-for-json.applescript      # Shared JSON escaping handler (auto-prepended)
  domains/
    accounts/
      accounts.tools.ts             # Tool registration & handlers
      scripts/*.applescript          # AppleScript templates
    mailboxes/
      mailboxes.tools.ts
      scripts/*.applescript
    messages/
      messages.tools.ts
      scripts/*.applescript
    compose/
      compose.tools.ts
      scripts/*.applescript
tests/
  utils.test.ts                     # Shared utility tests
  bridge/applescript-runner.test.ts  # Bridge unit tests
  domains/*/                         # Domain handler tests

域驱动的分层架构:

  • 工具层 --使用Zod模式注册MCP工具,验证输入,调用网桥
  • 架桥车 --读取AppleScript模板,替换参数(使用注入安全转义),在共享模板前添加 escapeForJson 处理程序,通过执行 osascript,解析JSON输出
  • 脚本层 --AppleScript模板 {{param}} 占位符,返回JSON字符串。这 escapeForJson 处理程序在中定义一次 bridge/escape-for-json.applescript 并在运行时自动添加到每个脚本中。

已知限制

AppleScript基金会

此MCP通过AppleScript与Mail.app通信,AppleScript是一个稳定但传统的自动化层。Mail.app的脚本字典多年来基本没有变化,但未来的macOS更新可能需要调整脚本。这是这种方法固有的权衡——AppleScript是唯一官方支持的无需编写本机插件即可自动化Mail.app的方法。

演出

  • 大型邮箱搜索search_messages 使用Mail.app的 whose 子句,它执行线性扫描,并在应用限制之前将所有匹配的消息加载到内存中。搜索方式 content 非常大的IMAP邮箱(50K+封邮件)上的(邮件正文)可能会很慢或超时。更喜欢按以下方式搜索 subjectsender 在可能的情况下,缩小结果范围 accountNamemailboxName.
  • IMAP附件下载 --IMAP帐户上的附件可能无法在本地下载。这些工具检查下载状态,并在需要首先在Mail.app中打开附件时清楚地报告。

消息ID

Mail.app的内部消息ID是不稳定的——当应用程序重新索引时,或者在移动/删除操作后,它们可能会发生变化。这意味着多步骤的工作流程(例如,列表→ flag → move)应该重新获取突变之间的消息ID。对于单步操作,这不是问题。

提供商特定行为

  • 交易所账户 --服务器详细信息(主机名、端口、SSL)不会通过Exchange/EWS帐户的AppleScript公开。邮箱和邮件操作正常。
  • Gmail标签move_message 添加目标标签,但可能不会删除原始标签(Gmail使用标签,而不是文件夹)。

其他限制

  • 回复/转发附件 --AppleScript不支持在回复/转发邮件中添加新附件(Mail.app限制)。
  • MIME类型检测 --当Mail.app的原生MIME类型属性返回时,使用基于扩展的回退 missing value.
  • 邮箱管理 --支持创建邮箱,但无法通过AppleScript删除和重命名邮箱(Mail.app限制)。

路线图

  • get_thread --检索对话线程中的所有消息。Mail.app没有原生线程支持;实现需要解析RFC标头(Message-ID, In-Reply-To, References)这在大邮箱上很慢。计划用于v2。

发展

npm run dev          # Watch mode (TypeScript compiler)
npm test             # Run tests
npm run test:watch   # Watch mode tests
npm run build        # Build for production

许可证

麻省理工学院

目录标签

目录标签

邮件管理TypeScriptClaude本地部署AppleScriptmacOS自动化

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

20

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP