MailFathom について
MailFathomは、個人やチームがAIエージェントからMCP経由でメールを検索・管理するためのセルフホスト型アーカイブです。IMAPメールをPostgreSQLに索引化し、読み取りをローカルで行い、閲覧・下書き・送信の権限を分けます。
主な機能
- 01IMAPメールのPostgreSQL同期
- 02語句検索とベクトル類似検索
- 03メールを引用した回答
- 04メール操作ごとの個別権限
- 05下書き・送信・連絡先管理
活用シーン
- 01メールサーバー停止中のアーカイブ検索
- 02質問への回答と引用元メールの確認
- 03明示的な許可に基づく下書きや送信
MCP 対応
MailFathomはMCP経由で、AIエージェントにメール検索・閲覧・フラグ設定・下書き・送信・連絡先管理のツールを提供します。MCPエンドポイントは既定で無効で、認証や利用可能なツールの制限を設定できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://{mailfathom_host}/mcpclaude mcp add --transport http fathomise-mailfathom https://{mailfathom_host}/mcp{"mcpServers":{"fathomise-mailfathom":{"type":"http","url":"https://{mailfathom_host}/mcp"}}}Cursor で開く{"servers":{"fathomise-mailfathom":{"type":"http","url":"https://{mailfathom_host}/mcp"}}}VS Code で開く{"mcpServers":{"fathomise-mailfathom":{"type":"http","url":"https://{mailfathom_host}/mcp"}}}{"mcpServers":{"fathomise-mailfathom":{"serverUrl":"https://{mailfathom_host}/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
MailFathom
あなたのメールの頭脳 — セルフホスト可能で、AIネイティブ、そしてあなただけのものです。
警告
**MailFathomは現在活発に開発中であり、バージョン1.0.0までは、リリース間の互換性は一切保証されません。**それ以前のリリースでは、MCPツール、設定、データベーススキーマ、デプロイ方法が互換性を損なう形で変更される場合があり、以前の設定やデータでは実行できなくなることもあります。アップグレードの前には必ず変更履歴を確認し、復元できるバックアップを保管してください。
MailFathomはIMAPアカウントを、お使いのPostgreSQLデータベースに同期してそのコピーにインデックスを作成し、Model Context Protocolを介してツールとしてAIエージェントに提供します。メールサーバーではなくローカルコピーから回答を読み取るため、サーバー上のメールが既読になることはありません。書き込み操作(既読への変更、下書きの作成、送信)は別個の操作であり、アカウントと認証情報ごとに許可を与える必要があります。これらの操作は、明示的に有効にするまで、すべて無効になっています。

一般的なチャットクライアントで、ローカルコピーからの回答を得る質問を一つするだけです。これらのスクリーンショットにある***は、公開リポジトリにファイルを追加する前に手作業で黒く塗りつぶしたものです。SensitiveContentを有効にしない限り、MailFathomはクライアントに渡す際に何も伏せません。
インストール
初回のインストールには Docker Compose をおすすめします。 PostgreSQL を自動で用意する唯一の構成で、デフォルトでは両方のポートをループバックにバインドするため、別のマシンからアクセスできるようにするかどうかは、あとから自分で決められます。
git clone https://github.com/fathomise/MailFathom.git
cd MailFathom
scripts/quick-start-compose.sh
3 行目は、実行環境として使うためではなく、手早く 試す ためのものです。スクリプトは、メールボックスの場所を尋ね、設定を書き込み、スタックを起動し、スキーマの適用を提案して、あなたとメールボックスを登録し、チャットクライアントの接続に使うキーを渡します。ただし、準備される環境は、そのマシン 1 台に対して平文 HTTP でサービスを提供し、認証情報をチェックアウト配下のファイルに保存し、バックアップは一切行いません。スクリプトは終了時にその内容を表示します。
MailFathom のインストールが正式な手順です。すべての構成で必要なものと、Compose、Podman Quadlet、Kubernetes、またはネイティブの systemd プロセスを使うためのガイドが記載されています。続いて利用開始ガイドでは、インストール済みのインスタンスから、最初のツール呼び出しに成功するまでを説明します。チェックアウトから評価する場合は、ローカルの Aspire オーケストレーションが PostgreSQL を用意し、スキーマも自動で適用します。その手順についてはローカル開発をご覧ください。
まずはこちら
| 対象 | 参照先 |
|---|---|
| MailFathom が自分に合っているか検討している方 | 下記の得意なこと、続いてユーザーガイド |
| インストールまたは運用する方 | MailFathom のインストール、続いて利用開始ガイド |
| 実行中のインスタンスにエージェントを接続する方 | ツールの使用 |
| AI アシスタントと一緒に読む方 | 下記のドキュメントを渡す |
| コントリビューションする方 | CONTRIBUTING.md |
エージェントにドキュメントを渡す
AI アシスタントが MailFathom のインストール、設定、または使用を支援する場合は、サイト内検索をさせるのではなく、ドキュメントを渡してください。必要なのはこの 1 行だけです。
Read https://fathomise.github.io/MailFathom/docs/llms.txt and follow it to the pages that answer my question.
このアドレスは、現在のリリースのマップです。公開されているすべてのページ、そのページでわかること、ソースへのリンクがまとめられているため、エージェントは複数ページの断片ではなく、質問に対応するページを取得できます。MailFathom は Context7 でも /fathomise/mailfathom として利用できます。こちらはリリースではなく、デフォルトブランチを反映しています。
エージェントが利用できる機能
21 個のツールがあり、利用できる機能はこれですべてです。
| メールを読む | list_accounts、list_emails、search_emails — モデルを設定すると、語彙的な順位付けに加えて埋め込みの類似度でも順位付けします — 最大 10 件のメッセージ全文を取得する get_email_content と、メールから質問に回答し、根拠として参照した各メッセージを示す ask_mail |
| メールに印を付ける | set_mail_flags は、メッセージを既読または未読にし、スターを付け、クライアントがタグとして表示するキーワードを書き込みます |
| 送信する | send_email はメッセージを 1 件送信します。reply_to_email と forward_email は、保存済みのコピーから宛先、件名、スレッド情報、引用、添付ファイルを取得して、すでに受信したメッセージに返信または転送します。get_outgoing_email と cancel_outgoing_email は送信の結果を報告し、まだ送信されていないメッセージを停止します |
| 下書きを作成する | save_draft、update_draft、delete_draft は、メッセージを自分の「下書き」フォルダーに保存または更新、削除しますが、送信は一切行いません。送信するには send_draft を使います |
| 連絡先 | MailFathom 独自の人物情報(メールアドレスではありません)を扱う 6 つのツールです。この情報はメールプロバイダーではなく、データベースに保存されます |
すべての機能に共通する性質が 2 つあり、設計の多くはそれに基づいています。
- 読み取りはローカルで行われます。 読み取りは手元のコピーから回答し、メールサーバーに接続しないため、高速で、サーバーの停止中も動作し、リモート側には何も変更を加えません。すべての結果に、ローカルコピーの鮮度が示されます。
- 依頼がない限り、何も書き込みません。 メールの取得によってリモートの
\Seenフラグが設定されることはありません。メールボックスを変更できるのは、設定したメールルールや迷惑メール対策、または明示的に認証情報を付与したツールだけです。送信にはさらに厳しい制限があります。すべてのアカウントで無効になっており、デプロイが読み取り専用の場合は拒否され、設定した宛先ポリシーと期間ごとの上限が適用されます。
呼び出し元を待たせたまま送信することはありません。送信内容は記録され、レコード ID を返したうえで、クラッシュ後も継続する配信処理によって送信が試みられます。つまり、MailFathom がキューに登録したと伝えたメッセージは実際に送信が試みられ、取り消せるのは送信されるまでの数秒間だけです。クライアントが送信する内容によって、メッセージの送信元が決まることはありません。


ツールが返す内容に加えて、MailFathom は各メッセージについて確認できる情報を記録します。送信者が誰によって認証されたか、またその作成者を認識しているか、テキストがどの程度機械によって書かれたように見えるか、そしてどの会話に属するかです。各ツールが回答する内容、拒否する内容、決して返さない内容が、その仕様です。
プロジェクトの状況
0.8.0 は現在のリリースです。このバージョンでは、デプロイが設定ファイルに記述された一人分のメールボックスではなくなりました。サービスを利用する人々、その人々のメールアカウントと認証情報、各自が実行できる操作を定めるロールは、デプロイの稼働中に mfctl で管理するデータベースのレコードです。そのため、一つのデプロイで複数の人にサービスを提供し、メールボックスを共有し、複数のレプリカとして稼働できます。
0.7.0 からのアップグレードは、既存環境への直接アップグレードではなく、バックアップを使った新規インストールです。 スキーマを適用すると保存済みのメールは削除され、同期によって再取得されます。また、0.7.0 の設定で宣言されていたメールボックスや認証情報をインポートする処理はありません。それぞれ mfctl で登録し直します。変更履歴では、変更の影響を受ける箇所と、その対処方法を変更ごとに説明しています。
ナイトリーイメージは main からビルドされ、リリースと並んで公開されます。ナイトリーはリリースではありません。スキーマが公開済みのどのマイグレーションよりも先行する場合があり、どちらの方向にもアップグレードパスがなく、より新しいイメージが蓄積すると削除されます。ナイトリービルドに伴うリスクで、そのすべてを説明しています。
成果物の公開場所
| 成果物 | 公開場所 |
|---|---|
| コンテナーイメージ | ghcr.io/fathomise/mailfathom と docker.io/fathomise/mailfathom |
| Helm チャート | oci://ghcr.io/fathomise/charts/mailfathom |
| データベーススキーマスクリプト | 各リリースに添付 |
管理コマンド mfctl | 各リリースに添付。プラットフォームごとの自己完結型バイナリで、隣接するチェックサムファイルで検証できます。また、Linux では一つのコマンドでインストールと検証を行えます |
両方のレジストリには、同じダイジェストのマニフェストリストが登録されているため、環境からすでにアクセスできる方を取得してください。サービス本体のバイナリ成果物はありません。ネイティブインストールはチェックアウトから始めます。
強み
MailFathom は、機能範囲がまだ小さい段階でも、最初からエンタープライズグレードのシステムとして構築されています。以下のすべての説明は、現在のコードとデプロイ用アセットが備える特性です。
- すべての操作には個別の許可が必要で、ある許可が別の許可を含むことはありません。 メールの閲覧、フラグの変更、下書きの作成、送信はそれぞれ別の権限であり、ツールの一覧表示時と呼び出し時に確認されます。管理用ルートも同様に確認されます。また、エンドポイントは特定の種類のツールのみを公開できます。そのため、デプロイでは、すべての認証情報で送信を許可せず、閲覧と下書き作成のみを提供できます。→ 権限
- デフォルトで安全にし、セキュリティを緩める場合はすべて明示します。 MCP エンドポイントは有効にするまで無効で、有効化する際には認証情報を必須にするかどうかを指定します。認証なしの設定も可能ですが、起動時に警告され、デフォルトにはなりません。クライアント証明書とクライアントごとのレート制限は、プロキシではなくエンドポイントで設定します。IMAP は接続時に TLS を使用し、明示的に指定しない限り、通信を弱める設定では起動に失敗します。→ MCP エンドポイント
- 認証情報を設定ファイルに保存することはありません。 秘密情報を含む設定には、ファイルパス、systemd の認証情報、環境変数などの 参照 を設定します。これにより設定ファイルを安全にレビュー、差分確認、バックアップできます。漏えいするのはパスであり、パスワードではありません。MailFathom が読み取るファイルに書き戻すことはありません。管理者が実行中に変更した内容は、それぞれ専用の権限で保護されたデータベースに保存されます。→ 秘密情報のプロビジョニング、設定ソース
- メールを扱うコードは、メールを個人データとして扱います。 コンテンツ、メタデータ、抽出テキスト、検索用の抜粋をログに記録したり、エラーメッセージに含めたりすることはありません。すべての呼び出しには上限が設けられているため、1回の呼び出しでどれだけのメールを取得できるかはデプロイ時に決定できます。デプロイが GDPR に準拠するかどうかは、引き続き運用方法に左右されます。MailFathom が提供するのは、データ主体に関するワークフローのための明確な拡張点を備え、こうした選択肢を保てるアーキテクチャです。→ ツールの使用
- 問題があればすぐに停止し、理由を示します。 起動時に、すべての秘密情報の参照先を解決し、データベーススキーマを検証してからサービスを開始します。起動を拒否する場合は、その原因となったキーまたは保留中のマイグレーションを示します。どの環境でも、起動中にマイグレーションが適用されることはありません。→ ヘルスエンドポイント、テレメトリ
- デプロイ用アセットは、説明用ではなくセキュリティを強化したものです。 イメージは不要なものを削ぎ落としたもので、シェル、パッケージマネージャー、HTTP クライアントを含みません。権限を制限して読み取り専用のルートファイルシステム上で実行され、すべてのケイパビリティが削除されており、マイグレーションを適用できるツールも含みません。Compose、Quadlet ユニット、Helm チャートはいずれも、この設定をデフォルトで適用し、チャートは Restricted Pod Security Standard に準拠しています。→ コンテナーイメージ、Kubernetes
- サプライチェーンを検証できます。 複数アーキテクチャ向けのイメージは、パッチバージョンを厳密に固定したベースイメージから作成され、公開前にスキャンされます。署名付きのビルド来歴により、ダイジェストと、そのイメージを生成したコミットおよびワークフローを照合できます。パッケージのバージョンは一元的に固定され、コミット済みのロックファイルで管理されます。また、すべてのサードパーティコンポーネントを、プロジェクトの商用再配布を可能にするライセンスポリシーに照らしてレビューします。→ 検証、THIRD_PARTY_LICENSES.md
- 保守しやすさを重視して構築しています。 強制された境界を持つ .NET 10 のクリーンアーキテクチャによるモジュラーモノリスで、コンパイラーとアナライザーの診断をエラーとして扱います。動作を変更するたびにテストを追加し、設計上の決定は記憶に頼らず ADR として記録しています。→ ソリューション構成、設計上の決定
ドキュメント
ここにあるドキュメントへのリンクはすべて、読みやすい形式の**ドキュメントサイト**につながっています。同じページに検索機能、ソースから生成された API リファレンス、バージョンセレクターが追加されています。現在のリリースが表示されます。また、ここにあるリンクにはバージョンが指定されていないため、リリースをまたいでもリンクを使い続けられます。リポジトリ内で同じページを読む場合は、docs/が目次になります。
| ユーザーガイド | MailFathom のインストール、設定、実行、使用方法 |
| 設定リファレンス | ユーザーが設定できるすべてのオプション、そのデフォルト値、変更に再起動が必要かどうか |
| 権限 | 認証情報で実行できる操作と、拒否された場合に表示される内容 |
| MCP ツール | ツールの仕様、引数と結果、安定したエラーコード |
| メールの送信 | メールが送信される前に通る処理と、その制限 |
| アーキテクチャ | 境界、プロジェクト、それらをそのように分けた理由 |
docs/にあるドキュメントでは、実際に存在する動作について説明しています。計画中の機能は、動作するかのように記述するのではなく、課題として管理しています。
開発の背景
メールボックスは、多くの人にとって最大のアーカイブでありながら、最も利用しにくいものです。契約書、決定事項、請求書、結論が出ないまま終わったスレッド、二度と見つけられない添付ファイル。すべてがそこにあるのに、スクロールする以外にアクセスする方法はありません。メールクライアントは、メッセージを一度に1通ずつ表示し、最新のメールを見せるために作られています。20年分も蓄積されると、まったく適した形ではありません。
MailFathom は、ソフトウェアにとってのメールのあり方を変えるために開発されています。ローカルコピーを最新の状態に保ち、インデックスを作成して最新の一部だけでなく全体にアクセスできるようにし、エージェントにツールとして提供します。エージェントが MailFathom にアクセスする方法が MCP です。MailFathom そのものが MCP なのではありません。第三者のサービスには一切依存しません。コピーも、データベースも、デプロイもあなたのものです。また、AI 機能は製品に組み込まれているのではなく、選んで接続するプロバイダーとして提供されます。
今後の展望
ツールは基盤であり、製品そのものではありません。送信は、このメールボックスのユーザー以外の誰かに初めて影響を及ぼす機能でした。エージェントがメールボックスに対してまだ実行できないのは、移動、振り分け、削除です。その後に追加される機能も、これらと同じ道筋をたどります。名前の付いた権限、記録される変更、そしてメールサーバーを管理する独自のパスです。
MailFathom 独自のクライアントを開発中で、現在はアルファ版です。 ウェブクライアントはイメージ内に含まれており、デプロイで提供されるまでは無効になっています。同じクライアントは各リリースに Linux および Windows 用のデスクトップアプリケーションとして同梱されます。これは試用を目的としたもので、頼りにするためのものではありません。未完成であり、リリースごとに変更されます。メールへのアクセスには、引き続き上記のツールがサポート対象となります。→ クライアントエンドポイント、デスクトップクライアント
アイデアであり、まだ対象範囲ではありません — それぞれ、作業ではなく決定を待つ未解決の問いとして記録されています。ディスカッションで議論しており、Ideas カテゴリーでは、皆さんからの提案も受け付けています。暗号化メールと署名付きメール、保存された添付ファイルのウイルススキャン、送信 IMAP および SMTP 用の OAuth、そしてスキルベースのジョブです。その本文は、決定論的なルールではなく、エージェントがメールの一部に対して実行する指示です。
コントリビューション
コントリビューションを歓迎します。最初の窓口は CONTRIBUTING.md です。リポジトリのクローンから検証に合格するまでの手順と、プルリクエストが満たすべきいくつかのルールを説明しています。変更はすべてイシューから始まります。コードを書く前にイシューを作成するか、既存のイシューにコメントし、誤字の修正を超える変更については返信を待ってください。
MailFathom は AI ファースト、かつほぼゼロタッチで開発されています。 ここにあるほぼすべての行は、イシューと AGENTS.md のルールに基づいて自律型コーディングエージェントが作成し、マージ前にレビューされています。同じ方法で作業することを、単に許容するのではなく推奨しています。手書きのパッチも同じ基準で評価されます。どちらの方法でも変わらないのは、提出前に差分を確認すること、そして同じチェックとライセンス上の義務が適用されることです。
リポジトリをフォークし、フォークをクローンして、このリポジトリを指すように設定してください。すべての検証チェックでは、実際にマージされる先のベースに対してブランチが評価されます。
git clone https://github.com/<you>/MailFathom.git
cd MailFathom
git remote add upstream https://github.com/fathomise/MailFathom.git
git fetch upstream main
コーディングエージェントを使う場合は、残りの作業を get-started-contributors に任せてください。これは初めて参加する人向けに書かれたワークフロースキルです。Claude Code では /get-started-contributors として利用でき、ほかのエージェントにはファイルを指定できます。手動でセットアップする場合も、クローンから検証合格までに同じ手順が記載されています。開発環境は Linux であり、それ以外の環境では検証されていません。
質問はディスカッションの Q&A で、提案は Ideas で受け付けています。不具合や対象範囲に関する項目はイシューで報告してください。ただし、脆弱性については下記の非公開窓口をご利用ください。参加者全員に CODE_OF_CONDUCT.md が適用されます。
セキュリティ
MailFathomは、メールボックスの認証情報、OAuthトークン、証明書の情報、メールのローカルコピーを保持します。脆弱性を報告する場合は、公開のIssueではなく、SECURITY.mdを通じて非公開でお知らせください。
プライバシーポリシー。 MailFathomは、ユーザー、またはインストールもしくは運用する担当者が明示的に要求しない限り、他のネットワーク接続システムに情報を転送しません。接続先は、メールサーバー、データベース、デプロイ時に設定されたモデルプロバイダーのみで、それ以外には接続しません。テレメトリーを収集せず、ホームにも接続せず、OpenTelemetryデータをエクスポートするのは、運用担当者が設定したエンドポイントに限られます。メールの保存先、アクセスできるユーザー、結果を受け取るモデルは、デプロイ時の判断事項です。
ダウンロードしたファイルの検証。 どのプラットフォームでも、mfctlバイナリにコード署名は付いていないため、Windowsでは発行元が不明であるという警告が表示されます。真正なダウンロードか改ざんされたものかを判別するには、バイナリと同じ場所に添付されたチェックサムファイルを使用します。
sha256sum --check --ignore-missing 'mfctl-<version>.sha256'
コンテナイメージとHelmチャートには、それぞれ署名付きのビルド来歴ステートメントが付いているため、gh attestation verifyを使えば、レジストリを信頼しなくても、それぞれの入手元を確認できます。コンテナイメージには、検証方法が記載されています。
ライセンス
MailFathom は、SPDX 識別子が AGPL-3.0-only のGNU Affero General Public License, Version 3の下でライセンスされています。ソースファイルには同じ許諾内容がヘッダーに繰り返し記載されており、ビルド時にその遵守が確認されます。また、公開される成果物には、バイナリとともに LICENSE と NOTICE が含まれます。この識別子は -only の形を取っています。このリリースはライセンスのバージョン 3 の下で提供され、Free Software Foundation が今後作成する後続バージョンの下では提供されません。
MailFathom は、当初 Krzysztof Kasprowicz によって作成されました。ルートの NOTICE には、その帰属が記録されています。ライセンスの第 7 条 (b) は、配布にあたってこの帰属表示を保持するよう求めることを認めています。この告知は使用制限を追加するものではなく、他の著作権者が書いた貢献について何かを主張するものでもありません。貢献者はコントリビューターライセンス契約を一度受け入れます。その契約によって、貢献がこのライセンスの下に置かれます。AGPL 自体には、Apache-2.0 の第 5 条のようにそれを行う条項はありません。これは権利の譲渡ではなくライセンスです。つまり、貢献者は自分が書いたものの著作権を保持します。さらに、これに伴って次の 2 つのことが可能になります。過去の貢献者一人ひとりを確認することなく、将来 MailFathom を別の条件で公開できること、そして貢献者自身がそのコードを提供する権利を有していたと表明することです。Apache-2.0 から AGPL-3.0-only への移行は、この自由を得たうえで行われました。この変更は、このリリースがあなたに許諾する内容には何も影響しません。
MailFathom が使用するサードパーティーコンポーネントは、THIRD_PARTY_LICENSES.md で個別に確認できます。この一覧には MailFathom が依存するものと、それぞれに適用される条件が記録されています。MailFathom 自体に関する権利を許諾するものではありません。MailFathom 自体に関する権利を許諾するのは LICENSE のみです。assets/ にあるアプリケーションアイコンは MailFathom 独自のアセットであり、同じ許諾が適用されます。
MailFathom を実行する場合にライセンスが求めること。 公開済みリリースを変更せずに、自分または自分の組織のために実行する場合、このリポジトリで既に公開されている内容を超えて求められることはありません。ソースコードはここで公開されており、成果物からも参照できます。AGPL を GPL と異なるものにしているのは第 13 条であり、MailFathom を変更して、ネットワーク経由で他の人に変更後のバージョンを使用させる場合に適用されます。これは、MCP インターフェイス、クライアントエンドポイント、その他のリスナーを通じて使用させる場合を含みます。その場合、ユーザーには、実際に利用しているバージョンに対応するソースコードを提供する必要があります。通常は、フォークを公開し、ユーザーがサービスにアクセスする場所からそのフォークを参照できるようにします。変更したものを自分だけで実行する場合は何も発生せず、変更していないものを何人が利用しても同様です。
ライセンスが許諾する内容には、ソフトウェアが動作するという保証はありません。第 15 条と第 16 条では、MailFathom は現状有姿で提供され、いかなる種類の保証や条件も伴わないことが定められています。また、著作権者は、使用または使用不能に起因する損害について責任を負わないことも定められています。たとえば、同期の遅延、存在していたものを見逃す検索、あるいはアクセス可能であるべきでないときにアクセス可能だったデプロイによるメールの漏えいなどです。この要約ではなくライセンス本文が適用されます。重要なメールボックスを MailFathom に接続する前に、第 13 条、第 15 条、第 16 条をお読みください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。