Mail.app について
MCPホスト経由でmacOSのMail.appに設定されたメールアカウントを使う人向けのローカルMCPサーバーです。索引検索とMail.appの操作を組み合わせてメールを管理します。
主な機能
- 01条件を指定したメール検索
- 02メール本文の全文読み取り
- 03メールの送信と返信
- 04メールのフラグ設定、移動、削除
- 05アカウント、メールボックス、配信停止リンクの管理
活用シーン
- 01設定済みアカウントを横断したメール検索
- 02特定のメールの確認と返信
- 03フラグやメールボックスによるメール整理
MCP 対応
stdio経由でMCPホストにMail.appの検索、読み取り、管理ツールを提供します。ローカルで動作し、Mail.appに設定されたアカウントにアクセスします。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
24掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| from | string | いいえ | 送信者のアドレスまたは表示名に対する部分文字列一致 |
| limit | integer | いいえ | |
| query | string | いいえ | 件名、送信者、本文の要約を対象にフリーテキスト検索します。省略すると、他のフィルターのみで一覧表示します。 |
| since | string | いいえ | ISO 日付 — この日付以降のメッセージのみ |
| account | string | いいえ | メールボックスの完全な URL(ホストとパス)に対する部分文字列一致。アカウントを指定するにはアカウントのホスト名(例:'icloud')を、特定のフォルダーを指定するにはメールボックスのパスの一部(例:'INBOX'、'Amtrak')を使用します。 |
| subject | string | いいえ | 件名に対する部分文字列一致 |
| include_deleted | boolean | いいえ |
詳細
mail-mcp
macOS の Mail.app に完全にアクセスできる MCP サーバーです。Claude(およびその他の MCP ホスト)から、Mail.app で設定されているすべてのアカウント(iCloud、Exchange、IMAP など)を対象に、検索、閲覧、送信、返信、フラグ設定、移動などを行えます。
前提条件
- macOS(Mail.app が必要です)
- Node.js 20+
- MCP ホスト:Claude Desktop、Amazon Quick、または任意の stdio MCP クライアント
インストール
Claude Desktop — ワンクリックインストール(推奨)
- 最新リリースから
mail-mcp.mcpbをダウンロードします .mcpbファイルをダブルクリックすると、Claude Desktop が自動的にインストールします- 必要な macOS 権限を付与します(下記を参照)
手動 / Amazon Quick / その他のホスト
npx @p-l-ta/mail-mcp
または、グローバルにインストールします。
npm install -g @p-l-ta/mail-mcp
mail-mcp
MCP ホストからmail-mcpバイナリを指定します(stdio トランスポート)。設定例:
{
"mcpServers": {
"mail-app": {
"command": "npx",
"args": ["@p-l-ta/mail-mcp"]
}
}
}
必要な macOS 権限
MCP ホスト(Claude Desktop、Amazon Quick など)を実行するアプリケーションに、以下の権限を付与します。
| 権限 | 設定場所 |
|---|---|
| フルディスクアクセス | システム設定 → プライバシーとセキュリティ → フルディスクアクセス |
| オートメーション → Mail | システム設定 → プライバシーとセキュリティ → オートメーション |
MCP サーバーのプロセスは、起動元のホストアプリケーションから権限を引き継ぎます。
ツール
| ツール | 説明 |
|---|---|
search_emails | 豊富なフィルターを使用して、Envelope Index データベースからメッセージを検索します |
read_email | RFC message-id を指定して、メッセージの本文全体を読み取ります |
list_accounts_and_mailboxes | 未読数とともに、設定済みのすべてのアカウントとメールボックスを一覧表示します |
list_recent | 指定したメールボックス内の最近のメッセージを一覧表示します |
list_senders | 送信者ごとにグループ化した、メッセージ数と未読数の概要を表示します |
send_email | 設定済みのアカウントのいずれかから新しいメールを送信します |
reply_to_email | RFC message-id を指定して、既存のメッセージに返信します |
set_message_flags | メッセージの既読状態やフラグ状態を設定します |
move_email | メッセージを別のメールボックスに移動します |
trash_email | メッセージを「削除済みメッセージ」に移動します |
create_mailbox | アカウントに新しいメールボックス/フォルダーを作成します |
bulk_mark_read | メールボックス内のすべてのメッセージ、または指定した送信者からのメッセージを既読にします |
get_unsubscribe_link | メッセージのヘッダーと本文から配信停止 URL を抽出します |
empty_mailbox | メールボックス内のすべてのメッセージ(迷惑メール、ゴミ箱など)を一度に削除します |
仕組み
- 検索と閲覧 — Mail 独自の Envelope Index SQLite データベースを直接検索し、すべてのアカウントから高速で構造化された結果を取得します
- 操作(送信、返信、フラグ設定、移動、ゴミ箱への移動)— Mail.app に対する AppleScript オートメーションを使用するため、メッセージがローカルファイルとして保存されていないアカウントでも動作します
開発
npm install
npm run dev # tsx watch — live reload
npm test # vitest unit tests
npm run build # compile TypeScript → dist/
npm run mcpb # build Claude Desktop extension → build/mail-mcp.mcpb
対話形式での MCP テスト:
npm run build
npx @modelcontextprotocol/inspector node dist/server.js
プライバシーポリシー
mail-mcp は、Mac 上で完全に動作するローカル MCP サーバーです。バックエンドもテレメトリーもなく、独自にネットワークリクエストを行うこともありません。
アクセスするもの:
- Mail.app の Envelope Index データベース(
~/Library/Mail/)— 読み取り専用で、検索クエリに使用します - AppleScript 経由の Mail.app — メッセージ本文の読み取り、メールの送信、メッセージへのフラグ設定、移動、ゴミ箱への移動に使用します
行わないこと:
- Mac の外部にデータを収集、保存、送信すること
- 外部サーバーや API に接続すること
- メッセージの内容をどこかに記録すること
メールデータはすべてデバイス上に保持され、通常のツール応答の一部として MCP ホスト(Claude Desktop またはその他のクライアント)に渡されるだけです。Claude が呼び出せるツールは、すべてユーザーが管理できます。
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。