Gmailの重要メールを先に見つける【第1話】アルルマンAI秘書

「受信箱を上から順に開いていたら、午前中が終わっていた。」
今日返すべきメールだけを、先に知りたい。
そんなお悩み、みんなのAI秘書「アルルマン」が解決します!
その仕組みを、CodexとGmailをつないで作ります。
今回作るAI秘書の名前は「今日見るメール係」。
重要そうなメールを勝手に処理するのではありません。今日見る候補と、その理由をそろえて人に渡すAI秘書です。
判断ルールの決め方から、SkillとAgentの分け方、MCPでのGmail連携と権限、サンプルでの動作確認まで、MISSIONを追いながら順番に解説します。
受信箱の中で大事なメールが迷子になっていませんか
午前中は打ち合わせ。戻ったら電話。午後は見積もりと資料作成。その間にも問い合わせや日程調整のメールが届き、未読だけが増えていきます。届いた順に全部開いていると、今日返したい1通にたどり着くまでが長くなります。
そのとき、いつものようにアルル星のアルルマンの赤い蝶ネクタイがピカッと光りました🐻
🤖 「メールの仕分けで困っている人がいる!早速ワープしよう」
担当者は「今日返したいメールだけ、先に分かれば助かるんだけど」と話します。
🤖 「では、AI秘書に“今日見る理由”まで添えてもらいましょう」
ここで作るのは、メールを勝手に処理する仕組みではありません。新着から候補を集め、会社のルールで並べ、「なぜ先に見るのか」を人へ渡すAI秘書「今日見るメール係」です。
⭐MISSION 1|AI秘書「今日見るメール係」の仕事を決める
「重要」を会社の言葉に置き換える
最初に決めるのは、AIのモデルではありません。仕事で使う判断条件です。「重要なメールを探して」だけでは、人によって重要の意味が変わってしまいます。まずは、今日の対応につながりやすい条件を小さく決めます。
| 拾いたい合図 | メールに出てくる言葉 | なぜ今日なのか |
|---|---|---|
| 期限が書かれている | 本日中/今日まで/〆切 | その日のうちに動く必要がある |
| 相手が行動を待っている | ご返信/ご確認/お願いします | こちらが止めている状態になる |
| 日常業務に直結している | 見積/問い合わせ/日程 | 放置すると仕事が先に進まない |
AI秘書は重要かどうかを決め切らない。先に見る候補と理由をそろえるだけにする。
候補を集める人と決める人を分ける
件名だけ見れば急ぎでも、すでに電話で対応済みかもしれません。逆に、穏やかな件名の本文に期限が隠れていることもあります。そこで三段構えにします。Skillが候補を集め、Agentが理由を短く整理し、最後に人が元メールを開いて決めます。
出力の形を先に固める
一覧に出す項目は、件名・差出人・受信日時・スコア・判断理由に絞ります。メール本文を丸ごと別ファイルへ写すことはしません。確認に必要な最小限だけを扱います。候補がない日は「条件に合う候補なし」と出します。「すべて確認済み」とは言いません。
{
"subject": "お見積のご確認を本日中にお願いします",
"from": "sample1@example.com",
"score": 9,
"reasons": ["本日中の表現", "確認依頼", "Gmailの重要ラベル"]
}
⭐\MISSION CLEAR!/⭐
🤖 「答えを決める係ではなく、見る順番を整える係にすると使いやすいですね」
⭐MISSION 2|CodexでAI秘書プロジェクトの役割を分ける
フォルダを「指示・ルール・処理」に分ける
Codexのリポジトリ用Skillは `.agents/skills/` に置きます。Skillごとに `SKILL.md` と補助ファイルをまとめる形です。次の構成にしておくと、仕事の手順と会社の判断ルールを別々に直せます。メールを取りに行く部分はMCPサーバーに任せるので、自前のプログラムは置きません。
ai-secretary-note/
├─ AGENTS.md
└─ .agents/
└─ skills/
└─ important-email-check/
├─ SKILL.md
├─ config/
│ └─ priority-rules.json
├─ references/
│ └─ priority-rules.md
└─ examples/
└─ sample-messages.json
| ファイル | 役割 | 直すとき |
|---|---|---|
| AGENTS.md | プロジェクト全体の約束 | 安全の決まりを変えるとき |
| SKILL.md | 仕事の進め方と出力の形 | 手順を変えるとき |
| config/ | 点数など変わりやすい値 | 運用しながら何度でも |
| references/ | その値の意味の説明 | 担当者に引き継ぐとき |
| examples/ | 架空のサンプル入力 | 試すとき |
AGENTS.mdへプロジェクト全体の約束を書く
`AGENTS.md` には、このプロジェクトでCodexが作業するときの共通ルールを書きます。個別のメールの判定語ではありません。「外部送信をしない」「秘密情報を記録しない」のような、すべての機能に効かせたい約束です。
# AI秘書プロジェクトの約束
- メールの送信、削除、既読化を自動で行わない。
- 認証情報とメール本文をログへ保存しない。
- 判断理由と元データの確認方法を利用者へ示す。
- 外部への操作は、利用者が内容と宛先を確認してから行う。
Skillと外部連携の役割を混ぜない
Skillが伝えるのは、仕事の進め方・判断ルール・出力の形です。Gmail APIやMCPは、実データを取ってくる接続部分にあたります。接続先を変えてもSkillの仕事が変わらないように分けておくと、将来Outlookへ広げるときも整理しやすくなります。
Skillは「どう仕事をするか」、APIやMCPは「実データをどこから取るか」。
⭐\MISSION CLEAR!/⭐
⭐MISSION 3|重要メールを見つけるCodex Skillを作る
SKILL.mdに使う場面と使わない場面を書く
`SKILL.md` のfront matterには、Skill名と説明を書きます。説明には「重要メールの確認で使う」だけでなく、「返信送信や削除には使わない」まで入れます。Codexは説明を見て、依頼に合うSkillかどうかを判断するためです。メールの取得は、次のMISSIONでつなぐGmailのMCPサーバーに任せる前提で書きます。
---
name: important-email-check
description: Gmailまたはサンプル入力から、今日確認する候補メールを読み取り専用で抽出し、理由付き一覧にする。返信送信、削除、既読化には使用しない。
---
1. config/priority-rules.json と references/priority-rules.md を読む。
2. GmailのMCPサーバーから、当日ぶんの新着を取得する。
3. 件名、差出人、受信日時、理由、スコアを一覧にする。
4. 人が元メールを確認する項目を添える。
会社独自の判断をreferencesとconfigへ分ける
「見積は2点」「本日中は4点」のような、あとから変えたくなる値はJSONに置きます。その値の意味はMarkdownで説明します。担当者は説明を読みながら数字を直せますし、プログラムは同じ形のJSONを安定して読めます。取引先の名前や実在のメールアドレスをサンプルへ直接入れないことも大切です。
{
"minimumScore": 2,
"signals": [
{ "term": "本日中", "score": 4, "reason": "本日中の表現" },
{ "term": "ご返信", "score": 3, "reason": "返信依頼" },
{ "term": "見積", "score": 2, "reason": "見積に関する連絡" }
]
}
サンプル入力を同じSkillに置く
実メールへつなぐ前に結果を確かめられるよう、架空の差出人と件名で `examples/sample-messages.json` を用意します。実データなしで点数や並び順を直せるので、会社のルールを相談するときの材料にもなります。
⭐\MISSION CLEAR!/⭐
🤖 「仕事の流れと会社のルールを分けておくと、あとから直しやすいですよ」
⭐MISSION 4|GmailをMCPでCodexにつなぐ
MCPはAIと外部サービスをつなぐ共通の口
以前は、Gmailを読むだけでも、自分でOAuthの画面を作り、トークンを保存し、APIを叩くコードを書く必要がありました。MCP(Model Context Protocol)は、その部分を「つなぎ口」として共通化した決まりです。対応しているサービスなら、AI側に登録するだけで、検索や取得の道具として使えます。
Gmailには、Googleが用意したリモートのMCPサーバーがあります。アドレスは次の1行です。
https://gmailmcp.googleapis.com/mcp/v1
このサーバーが道具として提供するのは、メールの検索、スレッドの取得、ラベルの一覧、下書きの作成、ラベル付けです。権限はログインした人のものをそのまま引き継ぎます。その人に見えないメールが、AIから見えることはありません。
自分でAPIを書く前に、公式のMCPサーバーがあるかを先に調べる。
Codexへサーバーを登録する
Codexは、設定ファイル `~/.codex/config.toml` にMCPサーバーを書けます。リモートのサーバーなら `url` と認証方式を指定します。
[mcp_servers.gmail]
url = "https://gmailmcp.googleapis.com/mcp/v1"
auth = "oauth"
手元で動かすタイプのサーバーは、コマンドで登録する書き方もあります。
codex mcp add gmail -- npx -y <サーバーのパッケージ名>
登録したら、つながっているかを確かめます。
codex mcp list
読み取りの権限だけで始める
GoogleのGmail MCPサーバーはOAuth 2.0で認証します。Google Cloudコンソールで作ったクライアントIDとシークレットを使います。権限(スコープ)は、読むだけなら1つで足ります。
| スコープ | できること | 今回 |
|---|---|---|
| gmail.readonly | 検索と読み取り | 使う |
| gmail.compose | 下書きを作る | 下書きまで作るなら追加 |
| gmail.send | 送信する | 付けない |
| gmail.modify | 既読化・ラベル変更 | 付けない |
| mail.google.com | 全操作 | 付けない |
権限を渡していなければ、間違ってもメールは送られません。ここが読み取り専用で始める理由です。
使えないときは自分で書く道も残る
GoogleのGmail MCPサーバーは、2026年9月の時点で Google Workspace の Developer Preview Program への参加が条件です。会社の環境でまだ使えないときは、Gmail APIへ自分でつなぐ方法に切り替えます。その場合も、読み取りの権限だけで始めるところは変わりません。
⭐\MISSION CLEAR!/⭐
🤖 「つなぎ口が用意されているなら、そこに乗るほうが早くて安全です」
⭐MISSION 5|MCPの道具でメールの候補を集める
Skillには「どの道具をどう使うか」を書く
MCPでつないだあと、Skillに書くのは手順だけです。自分でHTTPを組み立てる説明は要らなくなり、「どの道具に、どんな条件で聞くか」に変わります。
---
name: important-email-check
description: GmailのMCPサーバーから今日確認する候補メールを読み取り、理由付きの一覧にする。返信送信、削除、既読化には使用しない。
---
1. config/priority-rules.json を読む。
2. GmailのMCPで、検索条件 `newer_than:1d -category:promotions -category:social` の新着を取得する。
3. 件名と本文の冒頭に判断語が含まれるかを調べ、点数を付ける。
4. 点数順に、件名・差出人・受信日時・理由を一覧にする。
5. 人が元メールを開いて確かめる項目を添える。
取得する範囲をせまく決める
一度に全部読ませません。期間と種類で絞ります。読む量が減るほど、結果は速く安定します。
| 絞るもの | 指定 | ねらい |
|---|---|---|
| 期間 | `newer_than:1d` | 当日ぶんだけ見る |
| 種類 | `-category:promotions -category:social` | 広告とSNSの通知を外す |
| 項目 | 件名・差出人・受信日時・本文の冒頭 | 判断に要るものだけ取る |
出す形は前のMISSIONと同じ
道具が変わっても、出す形は変えません。点数と理由が付いた一覧のままなので、判断ルールを直せば結果も変わります。
{
"subject": "お見積のご確認を本日中にお願いします",
"from": "sample1@example.com",
"score": 9,
"reasons": ["本日中の表現", "確認依頼", "Gmailの重要ラベル"]
}
本文を持ち出さない
MCPで取れる情報であっても、手元のファイルへ丸ごと保存はしません。一覧に残すのは判断に必要な項目だけにして、中身は元のメールで確かめます。
持ち出す情報は、判断に必要な最小限にとどめる。
⭐\MISSION CLEAR!/⭐
🤖 「道具が増えても、渡す範囲を決めるのは人の仕事です」
⭐MISSION 6|サンプルで試してから毎朝の運用にする
まずは架空のメールで結果を見る
MCPをつなぐ前に、`examples/sample-messages.json` の架空の3件で点数と並び順を確かめます。実データなしで判断ルールを相談できるので、社内の合意も取りやすくなります。
| 件名 | 点数 | 理由 |
|---|---|---|
| お見積のご確認を本日中にお願いします | 9 | 本日中の表現/確認依頼 |
| 打ち合わせ日程のご相談 | 5 | 返信依頼 |
| 新商品のご案内 | 0 | 条件に合わず候補外 |
つないだ直後は自分の受信箱で見比べる
MCPを登録したら、同じ手順を自分のGmailで動かします。出てきた候補を、元のメールと見比べてください。
- 期限の表現を正しく拾っているか
- 広告やSNSの通知が候補から外れているか
- 理由を読んで、開く前に中身が想像できるか
ずれていたら、直すのはSkillの文ではありません。`config/priority-rules.json` の点数です。
毎朝の運用でも人の確認を残す
朝に動かす形にしても、出すのは一覧までです。送信、削除、既読化はしません。候補が無い日は「条件に合う候補なし」と出し、「すべて確認済み」とは書きません。
自社でやるなら、最初に決めるのは判断語と点数です。ここだけは業種と取引先で変わります。1回2時間のAI家庭教師では、自社の受信箱を見ながら、この判断ルールを一緒に決めるところから始められます。
AI秘書は見る順番を整える。開いて決めるのは人。
⭐\MISSION CLEAR!/⭐
🤖 「最初は当てることより、直せるルールにすることが大事ですね」
⭐MISSION COMPLETE|AI秘書「今日見るメール係」ができた!
これで、Gmailから当日の候補を読み取り、会社の判断語で点数を付け、理由と一緒に並べるSkillができました。AGENTS.mdに全体の約束、SKILL.mdに仕事の流れ、configに変えやすい値、examplesに試すためのサンプル。役割を分けたので、運用しながら調整できます。
- 今日確認したいメール候補を先に見られる
- 候補になった理由を人が確かめられる
- 実メールへつなぐ前にサンプルで試せる
- 読み取り権限だけで始められる
🤖 「これで、受信箱を上から全部開くところから始めなくてもよくなりましたね」
よくある質問
Gmailを読ませるのは危なくないですか
渡す権限を読み取りだけにすれば、送信も削除もできません。権限(スコープ)は自分で選んで渡す形なので、最初は `gmail.readonly` だけで始めてください。
判断の精度はどれくらいで上がりますか
最初から当てにいく必要はありません。1〜2週間、出てきた候補と実際に返したメールを見比べて、`config` の点数を直していく形が早いです。直す場所が1つのファイルにまとまっているのは、そのためです。
導入にどれくらい時間がかかりますか
サンプルで動かすところまでなら、半日ほどです。実際のGmailにつなぐ部分は、Google Cloudの設定と権限の確認が要るので、社内の管理者と相談する時間を別に見てください。
自社の仕事に当てはめて、一緒に作りませんか
記事の中身を、御社の業務に合わせて実際に動く形にするところまでお手伝いしています。「うちの場合はどうすれば」に、その場で答える個別レッスンです。

アルルのAI家庭教師……社員の皆さんと一緒に、1回2時間で御社の業務をAIに任せる形を作ります。
社長向けAI家庭教師……予定・連絡・経理・SNSなど、社長の仕事をAIに任せる環境を社長だけのために作ります。
