通过模型上下文协议(MCP)连接 macOS Mail 和 AI
Mail MCP Bridge 让 AI 助手(如 Claude、ChatGPT)能够直接访问和分析你的 macOS Mail 邮件。只需在 Mail 中复制 Message-ID 并粘贴给 AI——无需手动导出邮件。
演示: 实际使用效果 (点击观看)
内容: 从 Mail 复制 Message-ID → AI 分析邮件内容
问题: 现实中的大量沟通通过邮件进行——项目协作、客户沟通、商务谈判、技术支持。手动导出邮件让 AI 分析非常繁琐低效。
解决方案: Mail MCP Bridge 通过简单的工作流让 AI 直接读取邮件:
- 在 Mail 中复制 Message-ID (一个键盘快捷键)
- 粘贴给 AI
- AI 瞬间分析邮件内容
使用场景:
- 📋 通过邮件线程跟踪项目进展
- 💼 从商务沟通中提取关键信息
- 🔍 总结长邮件对话
- 📊 提取结构化数据(需求、反馈、承诺)
- 🤝 回顾对话历史
- 📎 分析邮件附件(PDF、Word、Excel 等文档)
专注: 提取纯文本内容和附件元数据——完美适配 AI 分析。
- 📧 直接访问 - AI 通过 MCP 协议读取邮件
- 🧵 线索支持 - 一个 Message-ID 获取完整对话
- 📎 附件提取 - 提取邮件中的 PDF、文档等附件供 AI 分析
- 🎨 Claude Code 插件 - 预置的命令和技能,实现智能邮件分析
- ⚡ 极速 - 毫秒级查询响应
- 🎯 纯文本 - 干净的文本提取,为 AI 优化
- 🔒 隐私优先 - 本地运行,邮件永不离开你的 Mac
- macOS 12.0+ (带 Mail 应用)
- Python 3.9+
- MCP 兼容的 AI 助手 (如 Claude Desktop)
# 克隆仓库
git clone https://github.com/fatbobman/mail-mcp-bridge.git
cd mail-mcp-bridge
# 安装 MCP 依赖
pip3 install mcp-
找到配置文件位置:
~/Library/Application Support/Claude/claude_desktop_config.json -
编辑配置 (如果不存在则创建):
基础配置:
{ "mcpServers": { "mail": { "command": "python3", "args": [ "/path/to/mail-mcp-bridge/src/mail_mcp_server.py" ] } } }高级配置(含环境变量):
{ "mcpServers": { "mail": { "command": "python3", "args": [ "/path/to/mail-mcp-bridge/src/mail_mcp_server.py" ], "env": { "MAIL_SINGLE_MAX_BODY_LENGTH": "10000", "MAIL_THREAD_MAX_BODY_LENGTH": "1200", "MAIL_KEEP_QUOTE_LINES": "10", "MAIL_ATTACHMENT_PATH": "/tmp" } } } }环境变量说明:
MAIL_SINGLE_MAX_BODY_LENGTH: 单封邮件最大正文长度(字符数),默认 10000,0 表示不限制MAIL_THREAD_MAX_BODY_LENGTH: 线索邮件最大正文长度(字符数),默认 1200,0 表示不限制MAIL_KEEP_QUOTE_LINES: 每个引用块保留的行数(保留上下文),默认 10MAIL_ATTACHMENT_PATH: 附件提取目录,默认/tmp
智能去引用:
read_thread自动启用智能引用检测,保留新内容和引用头部,删除冗余的大段引用,可节省 80% 的 token重要: 将
/path/to/mail-mcp-bridge替换为实际的项目路径。 -
重启 Claude Desktop (完全退出后重新打开)
Mail MCP 包含开箱即用的 Claude Code 插件,提供智能邮件分析能力:
你将获得:
- 🎯 智能附件分析 - 自动识别重要附件(发票、合同、税务文件)
- 🧵 线索追踪 - 跨邮件对话追踪文档演进
- 🚀 三种分析模式 - 快速/交互/自动模式,优化 Token 使用
- 📋 行动项提取 - 自动发现邮件中的截止日期和任务
安装方法:
# 1. 添加 Mail MCP 插件市场
/plugin marketplace add /path/to/mail-mcp-bridge/plugins
# 2. 安装附件分析插件
/plugin install mail-attachment-analyzer@mail-mcp
# 3. 重启 Claude Code将 /path/to/mail-mcp-bridge 替换为你的实际安装路径。
使用方式:
安装后,插件会自动工作。有三种使用方式:
你: 分析这封邮件 <message-id@example.com>
AI: [自动检测并智能分析]在 CLI 中使用 / 命令快速调用:
# 分析单封邮件(快速查看)
你: /analyze-email
AI: Please provide the email Message-ID
💡 Quick method (recommended):
In Mail.app: Select email → Press shortcut (⌘⇧C) → Message-ID copied
你: <message-id@example.com>
AI: [快速显示邮件内容摘要和附件列表]特点:
- ✅ 每次都是全新开始,不会使用之前的 message-id
- ✅ 适合分析不同的邮件
⚠️ 需要每次提供 message-id
在 Claude Code Extension 中直接点击 Skills:
analyze-emailanalyze-threadanalyze-attachments
特点:
- ✅ AI 会记住对话历史中的 message-id
- ✅ 如果之前分析过,可能直接使用之前的 ID
- ✅ 适合对同一邮件进行深入分析
⚠️ 如果想分析新邮件,明确说明:"分析新的邮件"
使用建议:
| 场景 | 推荐方式 | 原因 |
|---|---|---|
| 首次分析邮件 | Slash Commands | 确保提供正确的 message-id |
| 深入分析同一邮件 | Extension Skills | 利用对话上下文,减少重复输入 |
| 分析多个不同邮件 | Slash Commands | 每次都会询问,避免混淆 |
| 快速查看邮件内容 | 自然语言 | 最直接,无需切换模式 |
命令对比:
| 命令 | 用途 | MCP 调用 | 适用场景 |
|---|---|---|---|
/analyze-email |
快速查看单封邮件 | read_email | 了解邮件内容 |
/analyze-thread |
分析完整对话线索 | read_thread | 梳理多方沟通 |
/analyze-attachments |
深度分析附件 | read_email + extract | 处理文档合同 |
💡 提示:
- 自然语言方式更直接(推荐日常使用)
- Slash Commands 更快速(适合频繁使用)
- 选择命令 = 明确表达意图,减少交互步骤
📖 → 插件文档
在 Mail 应用中添加"复制 Message-ID"按钮:
详细步骤:
-
打开 Automator (
⌘ + 空格,输入 "Automator") -
创建新的 Quick Action:
- File → New (
⌘ + N) - 选择 "Quick Action"
- Workflow receives current: no input
- in: Mail.app
- File → New (
-
添加 Run Shell Script 动作:
- 在左侧面板搜索 "Run Shell Script"
- 拖拽到工作流区域
- Shell: `/bin/bash**
-
复制脚本内容:
cat automator_script.sh
将完整输出粘贴到 Automator 脚本区域
-
保存为 "Copy Message-ID"
-
(可选) 分配键盘快捷键:
- 系统设置 → 键盘 → 键盘快捷键
- 服务 → Mail → "Copy Message-ID"
- 添加快捷键 (如
⌘ + ⇧ + C)
Automator 设置示例:
测试:
- 打开 Mail 应用
- 选择任意邮件
- 按下快捷键 (如果已配置)
- 应该听到提示音,确认 Message-ID 已复制
1. 在 Mail 中选择邮件
2. 按下快捷键 (如 ⌘⇧C)
3. 粘贴 Message-ID 给 AI当需要分析邮件线索中的某封特定邮件时:
方法 1:展开对话视图
- 在 Mail 应用中选择邮件
- 菜单栏:显示 → 展开所有对话 (Show → Expand All Conversations)
- 左侧会显示完整的对话树形结构
- 点击选择你想要分析的那封邮件
- 按下快捷键复制其 Message-ID
- 使用
/analyze-email分析这特定邮件
方法 2:使用线索命令 如果不确定要分析哪一封邮件,可以先:
- 使用
/analyze-thread分析整个线索 - 查看对话时间线和摘要
- 根据摘要,选择需要深入分析的特定邮件
- 在 VSCode Extension 中点击 Skill(会使用之前的 message-id)
使用场景示例:
# 场景:只想看线索中某封重要邮件的详细内容
你: /analyze-thread
AI: [显示线索概览,发现第 5 封邮件有重要决策]
你: 我想深入看一下第 5 封邮件
AI: [从线索摘要中获取第 5 封的 message-id]
AI: [使用 /analyze-email 分析该邮件]小贴士:
/analyze-thread给全局视图,了解整体脉络/analyze-email深入分析单封邮件的详细内容- 结合使用可以获得最佳效果
你: 请分析这封邮件: <message-id@example.com>
AI: 我来读取这封邮件...
[AI 读取并分析邮件内容]你: <message-id@example.com> 的完整对话是什么?
AI: 我来检索整个线索...
[AI 显示对话中的所有邮件]你: 帮我看看这个邮件线索: <example-thread@example.com>
AI: 我来分析这个邮件线索...
📧 邮件线索分析
- 邮件数量: 15封
- 时间跨度: 2025-01-10 至 2025-01-15
- 参与者: 项目组成员 (3人)
💬 主要议题
- 讨论项目需求和技术方案
- 确定开发时间表
- 分配任务责任
📋 附件清单
- requirements.pdf (需求文档)
- design_mockup.fig (设计稿)
- 多张技术方案截图
✅ 达成共识
- 采用 SwiftUI 重构 UI
- 使用 SwiftData 进行数据管理
- 预计 2 月中旬完成 MVP
⚠️ 待处理问题
- 性能优化方案需要进一步讨论
- 需要安排下周技术评审会议你: 请总结我们与商业伙伴的所有沟通,
包括他们的需求、承诺的时间表和行动项。
AI: 我来阅读相关的邮件线索并提取关键信息...
[AI 分析邮件内容,整理项目进展、承诺和行动项]你: 这封邮件有附件吗?
AI: 这封邮件有 2 个附件:
1. contract_draft.pdf (2.3 MB)
2. appendix.xlsx (156 KB)
你: 帮我提取合同 PDF 并分析内容
AI: [提取附件到临时目录]
[AI 读取并分析 PDF 内容]你: /analyze-attachments
AI: Please provide the email Message-ID
你: <example-email@company.com>
AI: 正在分析邮件及附件...
📧 基本信息
- 发件人: 产品团队 <product@company.com>
- 主题: Q1 产品需求文档评审
- 日期: 2025年1月15日
- 线索: 是 (8封邮件)
📎 附件清单 (共5个文件)
🚨 高重要性:
- PRD_Q1_2025.pdf
产品需求文档,需要评审确认
⚠️ 中重要性:
- roadmap.xlsx
产品路线图规划
- design_system.fig
设计规范文件
💡 低重要性:
- screenshot_01.png 等2张截图
参考效果图
💡 关键发现
- Q1 重点功能: 用户系统重构 + 性能优化
- 预计 3 月底完成全部功能开发
- 需要在本周五前完成需求评审
⚠️ 需要行动
- [ ] 周五前完成 PRD 评审
- [ ] 确认技术可行性
- [ ] 安排开发排期会议
✅ 分析完成,临时文件已删除以下表述都会自动触发邮件分析:
# 中文示例
"分析这封邮件 <message-id>"
"看看这个邮件有什么附件"
"帮我整理一下这个线索的内容"
"这封邮件重要吗"
"提取邮件中的附件"
# 英文示例
"Analyze this email <message-id>"
"What attachments are in this email"
"Help me understand this thread"
"Is this email important"
"Extract email attachments"你: 我有几封邮件需要分析:
1. <msg1@example.com> - 税务通知
2. <msg2@example.com> - 合同草案
3. <msg3@example.com> - 项目讨论
AI: 我来依次分析这些邮件...
[处理邮件 1/3]
📧 税务通知 - HMRC
🚨 高重要性: tax_notice_2025.pdf
⚠️ 行动: 1月31日前提交申报
[处理邮件 2/3]
📧 合同草案
⚠️ 中重要性: service_agreement.docx
💡 待审核条款和付款条件
[处理邮件 3/3]
📧 项目讨论线索
🧵 15封邮件,2个附件
💡 主要讨论: Q1 发布计划| 工具 | 描述 |
|---|---|
get_email_path |
获取单封邮件的文件路径 |
get_thread_paths |
获取邮件线索中的所有路径 |
read_email |
读取单封邮件内容(含附件列表) |
read_thread |
读取整个邮件线索 |
extract_attachments |
提取邮件附件到临时目录 |
cleanup_attachments |
清理临时附件目录 |
┌─────────────┐
│ Mail App │ 选择邮件 → 复制 Message-ID (⌘⇧C)
└──────┬──────┘
│
↓ Message-ID
┌─────────────┐
│MCP Server │ 1. 查询 Mail SQLite 数据库
│ │ 2. 通过 ROWID 定位 .emlx 文件
│ │ 3. 解析邮件内容
│ │ 4. 提取纯文本
└──────┬──────┘
│
↓ 结构化数据
┌─────────────┐
│ AI Assistant│ 分析邮件内容
└─────────────┘
🔧 → 技术架构
解决方案:
# 验证 claude_desktop_config.json 中的路径
cat ~/Library/Application\ Support/Claude/claude_desktop_config.json
# 重启 Claude Desktop (完全退出后重新打开)可能原因:
- Message-ID 格式不正确 (必须包含
< >) - 邮件已从 Mail 中删除
- 邮件在不同账户的数据库中
解决方案:
# 使脚本可执行
chmod +x *.py *.sh- ✅ 本地处理: 所有操作在你的 Mac 上本地运行
- ✅ 无外部服务器: 不向外部服务器发送数据
- ✅ 无遥测: 无分析或跟踪
- ✅ 只读: 只读取邮件数据,从不修改
- TOOLS.md - 完整的 MCP 工具 API 参考
- ARCHITECTURE.md - 技术架构和数据库结构
- README.md - English Documentation
MIT License - 详见 LICENSE 文件。
欢迎贡献!请随时提交 Pull Request。
- 为 MCP (模型上下文协议) 生态系统构建
- 灵感来源于连接邮件和 AI 的需求
- 在 macOS 26 (Tahoe) 的 Claude Desktop 上测试
- 问题反馈: https://github.com/fatbobman/mail-mcp-bridge/issues
- 作者: Fatbobman
如果你觉得这个项目有帮助,欢迎请我喝杯咖啡!
用 ❤️ 为 AI 社区打造

