lessie-email について
lessie-emailは、Lessie Email MCP サーバーを通じて複数のメールアカウントを管理するエージェントスキルです。メールやスレッド、下書き、一括送信タスクの操作に加え、認証や送信前の確認手順も案内します。
主な機能
- 01アカウントと未読数の確認
- 02メールの送信・閲覧・削除
- 03スレッドの閲覧と既読状態の変更
- 04下書きの作成と管理
- 05一括タスクの管理と進捗確認
活用シーン
- 01連携済みアカウントの未読数確認
- 02スレッドの文脈に沿った返信の作成
- 03一括送信タスクの作成と配信状況の確認
MCP 対応
互換性のある MCP クライアントへの Lessie Email MCP サーバーの設定と、ツールを使ったメール操作の手順を示します。未接続の場合の OAuth 認証開始方法も説明します。
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ lessieai/ lessie-skill --skill lessie-emailインストール後、Claude Code で/lessie-emailを入力して読み込まれたか確認します。
詳細
Lessie Email — マルチプロバイダー対応メール管理
セットアップ
Lessie Email MCP サーバーを MCP 設定(Claude Code ~/.claude.json、Cursor ~/.cursor/mcp.json、Codex ~/.codex/config.toml など)に追加します。
{
"mcpServers": {
"lessie-email-mcp": {
"command": "npx",
"args": ["-y", "@lessie/mcp-server"],
"env": {
"LESSIE_REMOTE_MCP_URL": "https://app.lessie.ai/email-api/mcp-public/mcp"
}
}
}
}
アンインストール
MCP 設定から "lessie-email" のエントリを削除し、rm -rf ~/.lessie/ を実行します。
バージョン確認
各セッションの開始時に一度、この確認を実行します。ブロッキングではありません。コマンドが失敗した場合は、何も表示せずにスキップします。
- このファイルのメタデータにある
versionフィールドから、現在のローカルバージョンを読み取ります。 - リモートバージョンを取得します。
curl -sf --max-time 5 https://raw.githubusercontent.com/LessieAI/lessie-skill/main/lessie-email/SKILL.md | head -5 | grep 'version:' | head -1 | awk '{print $2}' - リモートバージョンのほうが新しい場合 → ユーザーに次のように伝えます。
⬆️ lessie-email スキルの新しいバージョンが利用可能です({current} → {remote})。更新するには、次のコマンドを実行してください。
npx skills add LessieAI/lessie-skill -y -g - バージョンが一致する場合、または確認に失敗した場合 → 何もせず、何も伝えません。
認証
- 目的の操作を行うために、
use_lessieを直接呼び出します。すでに接続されている場合は、認証をスキップします。 use_lessieが失敗した場合(例:「not authorized」または「remote MCP server not connected」が返される)→authorizeを呼び出して OAuth フローを開始します。authorizeは認証 URL を返します。Lessie へのログイン/登録のためにブラウザーを開く必要があることをユーザーに伝え、適切なシステムコマンドを使用して開きます。- macOS:
open "<url>" - Linux:
xdg-open "<url>" - Windows:
start "<url>"
- macOS:
- ブラウザーを開いたことと、ログイン/登録を完了する必要があることをユーザーに伝えます。
- ユーザーの確認後、接続を確認するために
authorizeをもう一度呼び出します。 - 認証に失敗した場合(タイムアウト、拒否、ポート競合)は、
authorizeが返す診断ヒントに従って再試行します。
- 認証に成功した後 → 元の
use_lessie呼び出しを再試行します。
トラブルシューティング:認証が繰り返し失敗する
根本原因:以前のセッションで起動した古い lessie-mcp-server プロセスがコールバックポート(19836)を占有しているため、ポートがフォールバックされ、OAuth クライアントの状態が破損します。
解決方法 — 古いプロセスを終了してストレージを消去してから、再認証します。
ps aux | grep 'lessie-mcp-server' | grep -v grep | awk '{print $2}' | xargs kill 2>/dev/null
rm -rf ~/.lessie/
lsof -i :19836 | grep LISTEN # should return nothing
ブラウザーを開く前に、必ずユーザーに伝えてください。通知なしにリダイレクトしてはいけません。
クイックスタート
セットアップ後、次のように試してみてください。
- 「メールアカウントと未読件数を表示して」
- 「[email protected] から [email protected] に、Q2 レポートについてメールを送信して」
- 「最近のメールスレッドを一覧表示して」
- 「この50件の連絡先に一括メールキャンペーンを作成して」
- 「スプリントレビューについて、エンジニアリングチーム宛てのメールを下書きして」
- 「このスレッド内のすべてのメールを既読にして」
ツールの概要
メールアカウント
| ツール | 使用する場面 |
|---|---|
list_email_accounts_with_unread | 未読件数とともに、リンク済みのすべてのメールアカウントを表示する |
メール操作
| ツール | 使用する場面 |
|---|---|
send_email | メールを送信する(HTML、CC/BCC、添付ファイル、返信に対応) |
get_email_detail | メールの詳細(内容、配信状況、既読状況)を表示する |
list_sent_emails | カーソルページネーションで送信済みメールを表示する |
get_email_quota | 特定のメールアドレスの1日あたりの送信上限を確認する |
delete_email | メールを論理削除する |
set_email_read_status | メールを既読または未読にする |
スレッド管理
| ツール | 使用する場面 |
|---|---|
list_threads | メールの会話を表示する(すべて/既読/未読で絞り込み) |
get_thread_messages | 会話スレッド内のすべてのメッセージを表示する |
delete_thread | 会話スレッド全体を論理削除する |
set_thread_read_status | スレッド内のすべてのメールを既読または未読にする |
下書き
| ツール | 使用する場面 |
|---|---|
create_draft | 新しいメールの下書きを作成する |
update_draft | 既存の下書きを更新する(件名、内容、宛先など) |
delete_draft | 下書きを削除する |
list_drafts | カーソルページネーションで下書きを表示する |
一括メールタスク
| ツール | 使用する場面 |
|---|---|
create_task | 一括メール送信タスクを作成します(受信者ごとに自動でスケジュール設定されます) |
list_tasks | 進捗情報とともに一括タスクを確認します |
get_task_detail | 受信者ごとの配信・開封・失敗の統計を含むタスクの詳細を表示します |
delete_task | 一括メールタスクを削除します |
pause_task | 実行中の一括メールタスクを一時停止します |
resume_task | 一時停止中の一括メールタスクを再開します |
エージェントの動作ルール
メールを送信する前に
- 必ず最初にアカウントを確認します:
list_email_accounts_with_unreadを呼び出して、利用可能な送信元アドレスを取得します。 - メールアカウントが紐付けられていない場合:アカウント一覧が空の場合は、まだメールアカウントが連携されていないことをユーザーに伝え、メールアカウントを紐付けるために https://app.lessie.ai/ にアクセスするよう案内します。適切なシステムコマンドを使って URL を開きます:
- macOS:
open "https://app.lessie.ai/" - Linux:
xdg-open "https://app.lessie.ai/" - Windows:
start "https://app.lessie.ai/"その後、紐付けが完了したら戻って再試行するようユーザーに伝えます。
- macOS:
- 必ずクォータを確認します:選択した送信元の
get_email_quotaを呼び出し、クォータが十分であることを確認します。 - メールアドレスを推測してはいけません:アカウント一覧から返されたアドレスのみを使用します。
メールへの返信
- スレッドのコンテキストを取得します:
get_thread_messagesを呼び出して会話を確認します。 - 最後のメッセージの
thread_idとreply_to_message_idを使用します。 - 適切なスレッド返信となるよう、
send_emailの呼び出し時に両方を渡します。
下書きのワークフロー
create_draftで下書きを作成します。送信者、受信者、件名、本文を指定します。- 変更が必要な場合は、
update_draftで下書きを更新します。 - 準備ができたら、確定した内容で
send_emailを使用します(下書きは直接送信されません)。 - 送信後、または不要になった場合は、
delete_draftで下書きを削除します。
一括タスクの管理
create_taskでタスクを作成した後、get_task_detailで進捗を監視します。- 実行中のキャンペーンを一時停止する場合(問題が見つかった場合など)は、
pause_taskを使用します。 - 一時停止中のキャンペーンを再開するには、
resume_taskを使用します。 - タスクを完全に削除するには、
delete_taskを使用します。
Gmail/Outlook 固有の動作
- Gmail/Outlook アカウントで
get_email_detail、delete_email、get_thread_messagesを呼び出す場合は、必ずemailパラメーターを渡します。 - システムはメールアドレスに基づいて、適切なプロバイダー API に自動で振り分けます。
主な制約
- カーソルページネーション:すべての一覧エンドポイントで
cursorとsizeを使用します。前回のレスポンスからnext_cursorを渡してください。 - デフォルトのページサイズ:20(最大100)。
- メール本文:少なくとも
text_contentまたはhtml_contentを指定してください。テキストのみが指定された場合は、HTML が自動生成されます。 - 添付ファイルには、
s3key、filename、mime_type、sizeを含む、事前にアップロード済みの S3 キーが必要です。 - 一括タスクでは、クォータを守りスパムを避けるため、送信が時間をかけて自動的にスケジュール設定されます。