内容
# mac-mail-mcp
一款直接从本地 SQLite 数据库读取 Apple Mail.app 数据的 MCP 服务器。不需要 OAuth,也不需要 API 密钥 — 只需本地文件访问。
支持 Mail.app 中配置的任何电子邮件账户(Gmail、Outlook/Exchange、iCloud、IMAP)。
## 工具列表
| 工具 | 描述 |
|------|-------------|
| `list_accounts` | 列出 Mail.app 中配置的所有电子邮件账户 |
| `list_folders` | 列出邮箱文件夹及其消息数量 |
| `search` | 按主题、发件人、日期范围、文件夹搜索 |
| `get_email` | 获取带有正文的完整电子邮件(从 .emlx 文件中) |
| `get_thread` | 获取对话中的所有消息 |
| `unread_count` | 按文件夹/账户统计未读消息数量 |
## 设置
```bash
cd /path/to/mac-mail-mcp
npm install
npm run build
```
### 全局(所有 Claude Code 会话)
添加到 `~/.claude.json`:
```json
{
"mcpServers": {
"mac-mail": {
"command": "node",
"args": ["/path/to/mac-mail-mcp/dist/index.js"]
}
}
}
```
### 仅限项目
在项目根目录中添加 `.mcp.json`:
```json
{
"mcpServers": {
"mac-mail": {
"command": "node",
"args": ["/path/to/mac-mail-mcp/dist/index.js"]
}
}
}
```
## 工作原理
Mail.app 将所有电子邮件元数据存储在 `~/Library/Mail/V*/MailData/Envelope Index` 的 SQLite 数据库中,并将消息正文存储为 `.emlx` 文件。该服务器读取两者,以便您完全访问您的电子邮件。
## 要求
- 配置了 Mail.app 的 macOS
- Node.js 18+
- 读取数据库的进程可能需要完全磁盘访问权限
## 限制
- 只读 — 无法发送、移动或删除电子邮件
- 消息正文仅适用于 Mail.app 已本地下载的电子邮件
- Mail.app 必须配置您要访问的账户