Apple Mail MCP

io.github.imdinu由 GitHub 账号 imdinu 发布v0.5.0更新于 Oct 24, 2026

Apple Mail MCP server with full-coverage FTS5 body search, reliable on large mailboxes.

已验证STDIO仅桌面文件与存储沟通与协作

概览

AI 生成的概览

本地 MCP 服务器,让助手在 Mac 上读取、搜索并提取 Apple Mail 邮件内容,并通过 FTS5 索引实现全邮箱正文搜索。

可以做什么
  • 列出邮件账户与邮箱
  • 按筛选条件(全部、未读、已标记、今天、最近 7 天)或消息 ID 获取邮件,含完整内容与附件
  • 在全部、主题、发件人、正文或附件范围内搜索,支持日期范围与高亮
  • 从指定邮件中提取链接与附件内容
适用场景
适合希望助手直接处理 Mac 上 Apple Mail 的场景:在大邮箱中查找邮件、阅读某封邮件,或提取其中的链接与附件。面向邮件量大、基于 AppleScript 的服务器容易超时的用户。
运行要求
在 macOS 上本地运行,为 PyPI 包 apple-mail-mcp,可通过 uvx、pipx 或 Claude 插件/安装包启动。需已配置 Apple Mail,且启动它的应用需获得完全磁盘访问权限,以便建立并更新搜索索引。可选通过配置文件或 APPLE_MAIL_* 环境变量进行设置。
安装前请注意
需要为启动它的应用授予完全磁盘访问权限,这会让该应用获得较广的本地数据访问权。服务器会读取整个本地邮件库,包括正文与附件,并将这些内容交给助手及其模型。--watch 模式会在后台持续维护索引。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Apple Mail MCP,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

README

Apple Mail MCP

[Apple Mail MCP — Full-coverage FTS5 body search]

[Python 3.11+] [License: GPL v3] [macOS] [MCP] [Code style: ruff] [CI]

The only Apple Mail MCP server with full-coverage body search — reliable on large mailboxes where AppleScript-based servers timeout. 8 tools for reading, searching, and extracting email content.

Read the docs for the full guide.

Quick Start

Claude Code (plugin)

bash
claude plugin marketplace add imdinu/apple-mail-mcpclaude plugin install apple-mail@imdinu

Claude Desktop (one-click bundle)

Download apple-mail-mcp-<version>.mcpb from the latest release and double-click it.

Both the plugin and the bundle run the released PyPI package via a thin launcher (uvx → pipx → private venv, whichever is available) — no vendored code, identical behavior to a manual install. They start the server with --watch; grant Full Disk Access to the launching app (Claude Code / Claude Desktop) so the index stays fresh.

Any MCP client

bash
pipx install apple-mail-mcp

Add to your MCP client:

json
{  "mcpServers": {    "mail": {      "command": "apple-mail-mcp"    }  }}

Build the Search Index (Recommended)

bash
# Requires Full Disk Access for Terminal# System Settings → Privacy & Security → Full Disk Access → Add Terminal
apple-mail-mcp index --verbose

Configure (Optional)

bash
apple-mail-mcp init   # writes ~/.apple-mail-mcp/config.toml

Writes a commented config file you can edit to set defaults like your primary account or mailbox. Every key has a matching APPLE_MAIL_* env var if you prefer environment-based config. See Configuration for the full schema and precedence rules.

Tools

ToolPurpose
list_accounts()List email accounts
list_mailboxes(account?)List mailboxes
get_emails(filter?, limit?)Get emails — all, unread, flagged, today, last_7_days
get_email(message_id)Get single email with full content + attachments
search(query, scope?, before?, after?, highlight?)Search — all, subject, sender, body, attachments
get_email_links(message_id)Extract links from an email
get_email_attachment(message_id, filename)Extract attachment content
get_attachment(message_id, filename)Deprecated — use get_email_attachment()

Performance

Tested against 6 other Apple Mail MCP servers on a real ~73K-message mailbox:

  • Only server with full-coverage body search. Most competitors don't support body search at all; the one that does (BastianZim) live-scans only the 5000 most recent messages — silent miss on anything older. Our FTS5 index covers the entire mailbox.
  • ~3ms single email fetch via disk-first .emlx reading (no JXA round-trip).
  • ~1ms list_accounts and ~5ms 50-email listing via direct Envelope-Index SQLite reads (0.4+) — same path BastianZim/rusty/pl-lyfx use, with JXA as the correctness fallback.
  • ~7ms subject search via FTS5 — competitive with native Rust on the same operation.
  • Reliable across all 6 benchmarked operations on a 73K mailbox; AppleScript-based servers timeout, throw syntax errors, or skip operations they don't support.

[Capability Matrix]

Configuration

Apple Mail MCP works out of the box. To customize defaults, run apple-mail-mcp init to generate a config.toml template — or use the matching APPLE_MAIL_* environment variables. See the Configuration docs for the full schema and the CLI > env > file > default precedence.

Per-client env overrides via the MCP client's launch config also work:

json
{  "mcpServers": {    "mail": {      "command": "apple-mail-mcp",      "args": ["--watch"],      "env": {        "APPLE_MAIL_DEFAULT_ACCOUNT": "Work"      }    }  }}

CLI Usage

All tools are also available as standalone CLI commands (no MCP server needed):

bash
apple-mail-mcp search "quarterly report" --scope subjectapple-mail-mcp search "invoice" --after 2026-01-01 --limit 10apple-mail-mcp read 12345apple-mail-mcp emails --filter unread --limit 10apple-mail-mcp accountsapple-mail-mcp mailboxes --account Workapple-mail-mcp extract 12345 invoice.pdf

All commands output JSON. Generate a Claude Code skill for CLI-based access:

bash
apple-mail-mcp integrate claude > ~/.claude/skills/apple-mail.md

Development

bash
git clone https://github.com/imdinu/apple-mail-mcpcd apple-mail-mcpuv syncuv run ruff check src/uv run pytest

License

GPL-3.0-or-later

来源:README.md,提交 0398b86

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

1
  1. v0.5.0最新Sep 16, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分