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 分