はじめに
こんにちは!皆さん、Gmailの受信トレイ、死んでませんか?
「あとで読む」つもりのニュースレター、Amazonの発送通知、銀行の明細……気づけば未読が数千件。
手動でラベル分けするのも面倒だし、フィルタを作るのも正規表現ばりにダルいですよね。
そんな悩みを解決すべく、最新の Gemini 3.1 Pro と MCP (Model Context Protocol) をフル活用して、Gmailを全自動で「Inbox Zero」にするツール 『ZenMail Automator』 を作ってみたので紹介します!
フランクに解説していくので、気楽に読んでください☕️
🤖 何ができるの?
一言で言うと、「AIがあなたのメール履歴を読み取って、最強の整理ルールを勝手に作り、全メールをアーカイブしてくれる」 ツールです。
1. 爆速メール分析
Gemini 3.1 Pro が過去のメール(最大数千件)をスキャン。
「あ、この人は銀行系が多いな」「GitHubの通知が溜まってるな」と判断し、16個の最適化されたカテゴリ(金融、開発、SNS、配送など)と、それらを仕分けるための 複雑なGmail検索クエリ を自動生成します。
2. Inbox Zero の一撃実行
生成されたルールに基づいて、Gmail API経由で一気にラベル作成&フィルタ登録。
さらに --archive オプションを使えば、既存の受信トレイにあるメールをすべてラベル付きでアーカイブし、一瞬で受信トレイを空(ゼロ) にできます。快感です。
3. MCPサーバー対応(ここが旬!)
最近話題の MCP (Model Context Protocol) に対応させました。
Dockerでサクッと立ち上げれば、Claude Desktop などのAIアシスタントから、
「チャットで『Gmail整理して』って頼むだけで、裏側でPythonスクリプトが動いて整理が終わる」
という近未来体験ができます。
🛠 技術的なポイント
ちょっとだけ技術的なお話も。
Gemini 3.1 Pro / Flash の活用
単なるキーワードマッチングではなく、AIに「この送信者と件名の傾向から、最適な検索クエリを作って」と依頼しています。
例えば、rules.json に書き出されるクエリはこんな感じ。
{
"name": "📦 配送・トラッキング",
"query": "from:(shipment-tracking@amazon.co.jp OR kuronekoyamato.co.jp) OR subject:(\"配達中\" OR \"発送済み\")",
"description": "お荷物追跡・配達通知"
}
これを人間が書くのは苦行ですが、AIなら一瞬です。
ネットワークの安定化(地味に重要)
大量のメールを処理すると、Windows環境だとIPv6周りでAPI通信が不安定になることがあります。
そこで、内部的に IPv4を強制するパッチ や、ネットワークエラー時の 自動リトライ(指数バックオフ的なやつ) を仕込んでいます。
# 通信エラー時にリトライするデコレータ
def retry_on_network_error(max_retries=3):
# 通信が不安定でも、AIがめげずに作業を続けてくれる!
FastMCP でのサーバー実装
Pythonの fastmcp ライブラリを使用して、DockerベースのMCPサーバーを構築しています。これにより、ローカル環境のPythonバージョンに悩まされることなく、どこでも同じ環境で動かせます。
🚀 使い方(クイックスタート)
-
認証:
auth.pyでGoogleの認証を通す。 -
分析:
これで
python zenmail.py analyze --max 1000rules.jsonが生成されます。 -
適用:
ドーン! 受信トレイが空になり、全てのメールが美しくラベル分けされます。
python zenmail.py apply --archive --filter
おわりに
「AIにメールを見せるなんて怖い!」と思うかもしれませんが、このツールは 送り元と件名のみで判断 なので、APIキーさえ自分で管理すればある程度は安心です。ビジネス用アカウントには注意❗️が必要かも。
「メールの整理に人生の貴重な時間を使いたくない」という方は、ぜひAIに丸投げしちゃいましょう!
リポジトリや詳細が気になったら、ぜひコメントください。
それでは、快適な Inbox Zero ライフを!👋
ZenMail Automator - Less Clutter, More Focus.