mcpField
A
agenticmail

agenticmail

ローカル
github.com/agenticmailコミュニケーション2426 週間前に更新

agenticmail について

AgenticMail MCP サーバーは、MCP に対応する AI クライアントにメールと SMS の機能を提供します。メールの送信、返信、転送、認証コードの受信などに対応しています。実際のメールボックスや SMS を AI エージェントに扱わせたいユーザーや、複数エージェントのシステム向けです。AgenticMail API サーバーの起動が必要です。

主な機能

  1. 01メールと SMS の送受信
  2. 02受信トレイの読み取りと認証コードの受信
  3. 03連絡先の管理と予約送信
  4. 04wait_for_email による条件付きの返信待機
  5. 05複数エージェント間のタスク割り当てとスレッドメモリ
  6. 06標準入出力がデフォルト、認証付き HTTP トランスポートにも対応

活用シーン

  1. 01エージェントが会員登録メールの認証コードを読み取る
  2. 02特定のメッセージへの返信や転送をエージェントに任せる
  3. 03メールスレッドを通じてエージェント間の作業を調整する

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"agenticmail": {
"command": "npx",
"args": [
"-y",
"@agenticmail/mcp"
],
"env": {
"AGENTICMAIL_API_KEY": "<AGENTICMAIL_API_KEY>",
"AGENTICMAIL_MASTER_KEY": "<AGENTICMAIL_MASTER_KEY>",
"AGENTICMAIL_API_URL": "<AGENTICMAIL_API_URL>"
}
}
}
}
起動コマンドnpx -y @agenticmail/mcp
設定が必要な環境変数
AGENTICMAIL_API_KEYシークレットPer-agent API key issued when you create the agent. Scopes every tool call to that agent's mailbox and outbound. Either AGENTICMAIL_API_KEY or AGENTICMAIL_MASTER_KEY must be set.
AGENTICMAIL_MASTER_KEYシークレットMaster key for admin operations (creating agents, listing all accounts, deleting agents). Set this when the MCP client needs admin tools; otherwise prefer the per-agent AGENTICMAIL_API_KEY.
AGENTICMAIL_API_URLBase URL of the AgenticMail HTTP API. Defaults to http://127.0.0.1:3100 (the port the local CLI binds). Override when the API runs on a different host or port.

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@agenticmail/mcp0.5.59

ツール

62

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
ccstringいいえCC の宛先(任意)
tostringはい受信者のメールアドレス
htmlstringいいえHTML 本文(任意)
textstringいいえプレーンテキスト本文
subjectstringはいメールの件名
inReplyTostringいいえ返信対象の Message-ID(任意)
referencesarrayいいえスレッド化に使用する Message-ID(任意)
attachmentsarrayいいえファイル添付

詳細

AgenticMail のロゴ(ピンクのリボン)

@agenticmail/mcp

AgenticMail 用の MCP(Model Context Protocol)サーバーです。MCP 互換の AI クライアントに、メールと SMS のすべての機能を提供します。

接続すると、AI エージェントは自然言語を通じて、メールやテキストメッセージの送信、受信トレイの確認、メッセージへの返信、認証コードの受信、連絡先の管理、メールの予約送信、ほかのエージェントへのタスクの割り当てなどを実行できます。サーバーは、メール、SMS、エージェント管理に関するあらゆる操作を網羅する 100 個のツールを提供します。

✨ セキュリティ — 0.9.27

GHSA-63gr-g7jc-v8rg を修正 — オプションの Streamable HTTP トランスポート(--http / MCP_HTTP=1)で認証が欠落していました。

  • --http モードは、デフォルトで 127.0.0.1 にバインドし、すべての /mcp リクエストで Authorization: Bearer <token> を必須とするようになりました。
  • ベアラートークンは初回起動時に自動生成され、~/.agenticmail/mcp-http-token に保存されます(chmod 600)。MCP_HTTP_TOKEN 環境変数または --token=<value> で上書きできます。
  • --host=0.0.0.0 または MCP_HTTP_HOST=... でほかのインターフェースにバインドできます。エンドポイントがネットワークから到達可能な場合は、起動ログに明示的な警告が表示されます。
  • --insecure を指定すると、サンドボックス化されたテスト環境に限り、従来の認証なしの動作に戻せます。起動時に目立つ警告が表示されます。
  • デフォルトの Stdio モードには、これまで影響はありませんでした。

--http / MCP_HTTP=1 を使用していない場合、対応は不要です。

✨ 0.9.0 の新機能

  • 🧠 get_thread_id + save_thread_memory — multi_agent_extras ティアに 2 つの新しいツールが追加されました。ワーカーは新しいメッセージを読んだ後に一度 get_thread_id({uid}) を呼び出し、起動処理の最後に save_thread_memory({threadId, summary, commitments?, openQuestions?, lastAction?, lastUid?}) を呼び出します。ディスパッチャーは次回の起動時に、メモリをプロンプトに自動で読み込みます。ディスパッチャー側の ThreadCache と組み合わせることで、起動コストを平準化できます。エージェントが毎回、過去 10 件のメッセージを読み直す必要はなくなります。
  • 🎯 send_email / reply_email / forward_email / template_send のドキュメントを更新し、新しい wake のデフォルト値に対応しました。CC されたローカルエージェントはデフォルトでは起動しなくなりました。wake: 'all' を指定すると、0.9.0 より前の動作に戻せます。

✨ 以前の更新 — 0.7.9

  • 📐 call_agent が outputSchema を受け付けるようになりました — 成果物の形式を定義した JSON Schema(draft-7 のサブセット)を渡すと、API が submit_result を検証します。形式が一致しない場合はバリデーターエラーが返されるため、ワーカーは自由形式の文章を返す代わりに、正しい形式で再試行できます。スキーマは事前にワーカーの起動プロンプトに組み込まれます。例:
    await call_agent({
      target: 'vesper',
      task: 'Audit row 34 of the YAML patch.',
      outputSchema: {
        type: 'object',
        required: ['summary', 'findings', 'recommendation'],
        properties: {
          summary:        { type: 'string' },
          findings:       { type: 'array', items: { type: 'string' } },
          recommendation: { type: 'string', enum: ['proceed', 'block'] },
        },
      },
    });
    
  • 📥 tail_worker(workerId, lines?) — check_activity と組み合わせて使用します。ワーカーが長時間実行中または停止状態と判定された場合、tail_worker はログの末尾 N 行を返します(すべてのツール呼び出し、結果、アシスタントの出力チャンクがそれぞれ 1 行にまとめられます)。マスターキーが必要です。multi_agent_extras ティアに含まれているため、作業を委任するホストのデフォルトのツールセットで利用できます。
  • 📊 check_activity で進捗状況をリアルタイムに確認できるようになりました — 出力に、最後に使用したツール、ツール呼び出し回数、Xh Ym Zs 形式の実行時間、ハートビートの経過時間から算出される stale フラグが含まれるようになりました。ワーカーがレジストリから自動削除されることはなくなりました。停止状態は診断情報として扱われます。

✨ 以前のバージョン — 0.7.7

  • すべての送信ツールの wake パラメーター — send_email、reply_email、forward_email、template_send、manage_drafts(send) はすべて wake: ["alice", "bob"](またはカンマ区切りの文字列)を受け付けます。ディスパッチャーは、指定されたエージェントにのみ Claude のターンを渡します。ほかのエージェントもメールを受信しますが、起動しません。複数エージェントが参加するスレッドで、最も大きくトークンを節約できます。
  • check_activity ツール(essential セットに含まれます)— ディスパッチャーが現在起動しているエージェント、その作業内容、実行時間に加え、最近完了した作業のプレビューを確認できます。「今メールしたエージェントは実際に作業を開始したか?」を、返信を待たずに確認できます。
  • スレッド終了マーカー — 件名に [FINAL]、[DONE]、[CLOSED]、または [WRAP] を含めると、ディスパッチャーにこのスレッドが終了したことを伝えられます。そのスレッドへの返信があっても、以後エージェントは起動しません。起動プロンプトでは、作業を終える際にエージェントがこれらのマーカーを追加するよう指示します。
  • LLM に対応した入力の型変換 — batch_mark_read({ uids: "[1,2,3,4]" })、wait_for_email({ timeout: "120" })、manage_drafts({ where: '{"id":"abc"}' })、manage_pending({ allowSensitive: "true" }) がすべてそのまま動作するようになりました。zod が検証する前に文字列が解析されます。「配列を期待していたが文字列を受け取った」というエラーによる再試行は不要です。
  • initialize で送信されるサーバーの instructions フィールド — 接続するすべての MCP クライアント(Claude Code、ChatGPT、Cursor、Grok…)は、ツールを使う前にコンテキスト内で連携プロトコルを受け取ります。プロバイダーに依存しません。
  • wait_for_email のフィルター — 「新しいイベントなら何でも」ではなく、特定の返信を待機できます。from、subject、inReplyTo、participants、includeTasks に対応しています。

インストール

npm install -g @agenticmail/mcp

要件: Node.js 22 以降、AgenticMail API サーバーが稼働していること


このパッケージの機能

これは、AI クライアントと AgenticMail システムをつなぐブリッジです。AI は標準入出力を通じて通信するため、サブプロセスとして実行され、ネットワークポートは開きません。各ツール呼び出しは AgenticMail サーバーへの API リクエストに変換され、AI が理解できる形式のテキストとして応答が返されます。

次のように考えてください。AI エージェントは、標準ではメールを送信する方法を知りません。この MCP サーバーは、「send_email」、「list_inbox」、「reply_email」など、メール関連のタスクを依頼されたときに AI が呼び出せるツールを提供することで、メールの送信方法を教えます。


セットアップ

MCP クライアントのセットアップ(CLI ベース)

MCP クライアントの設定(例:.mcp.json またはプロジェクト設定)に追加します。

{
  "mcpServers": {
    "agenticmail": {
      "command": "npx",
      "args": ["agenticmail-mcp"],
      "env": {
        "AGENTICMAIL_API_URL": "http://127.0.0.1:3829",
        "AGENTICMAIL_API_KEY": "ak_your_agent_key"
      }
    }
  }
}
デスクトップクライアント

デスクトップ AI アプリケーションでは、MCP 設定ファイルに追加します。パスの例:

  • macOS: ~/Library/Application Support/<app>/config.json
  • Windows: %APPDATA%\<app>\config.json
{
  "mcpServers": {
    "agenticmail": {
      "command": "npx",
      "args": ["agenticmail-mcp"],
      "env": {
        "AGENTICMAIL_API_URL": "http://127.0.0.1:3829",
        "AGENTICMAIL_API_KEY": "ak_your_agent_key"
      }
    }
  }
}
環境変数
変数必須説明
AGENTICMAIL_API_URLはいAgenticMail API サーバーの URL です。デフォルトのポートは 3829 です(よくある開発ツールとの競合を避けるため、@agenticmail/[email protected] で 3100 から変更されました)。例:http://127.0.0.1:3829。
AGENTICMAIL_API_KEYはい¹エージェントの API キー(ak_...)です。ツール呼び出しで _account が渡されない場合に、この MCP サーバーが動作するデフォルトの ID を決定します。
AGENTICMAIL_MASTER_KEYいいえマスターキー(mk_...)です。管理者操作(エージェントの作成/削除、メールの承認、ゲートウェイ設定)に必要です。オンデマンドの _account 解決も有効になります — _account: "<name>" を渡すツール呼び出しがあると、その名前を初めて認識したときにマスターキーを使って該当エージェントの API キーを遅延取得するため、作成直後の create_account エージェントも MCP サーバーを再起動せずに指定できます。
AGENTICMAIL_ACCOUNT_KEYS_JSONいいえ呼び出しごとの ID 切り替えに使う {"<agentName>": "<apiKey>"} の JSON マップです。呼び出し側が _account: "Fola" などを渡すと、サーバーはその呼び出しの間、そのエージェントとして認証します。Claude Code 連携用に agenticmail claudecode install が自動的に設定します。

¹ AGENTICMAIL_API_KEY、AGENTICMAIL_MASTER_KEY、または AGENTICMAIL_ACCOUNT_KEYS_JSON のいずれかを設定する必要がありますが、3 つすべてを設定する必要はありません。

オプションの Streamable HTTP トランスポート(--http)

ほとんどのユーザーはデフォルトの stdio トランスポートを使用してください。上記のすべての MCP クライアント設定で使われているのはこれです。長時間稼働する HTTP エンドポイントが必要な環境(ブラウザーベースのクライアント、リモート開発用トンネル、複数ホスト構成)では、--http を渡します。

agenticmail-mcp --http                       # 127.0.0.1:8014, auth required
agenticmail-mcp --http --port=9001
agenticmail-mcp --http --host=0.0.0.0        # expose on network (token still required)
agenticmail-mcp --http --token=mcphttp_xxx   # use a known token instead of the minted one
agenticmail-mcp --http --insecure            # sandbox/test only — disables auth

トークンは次の順に読み込まれます:--token=... フラグ、MCP_HTTP_TOKEN 環境変数、~/.agenticmail/mcp-http-token(初回実行時に自動生成)。クライアントは /mcp へのリクエストごとに Authorization: Bearer <token> を送信する必要があります。GET /health は認証なしで利用でき、セッション数のみを返します。

呼び出しごとの ID 切り替え(_account)

すべてのツールの入力スキーマでは、任意の _account: "<name>" パラメーターを受け付けます。渡された場合、サーバーはその名前を API キー(AGENTICMAIL_ACCOUNT_KEYS_JSON から取得し、見つからない場合はマスターキーを使って /accounts をリアルタイムに検索)に解決し、そのエージェントとして呼び出しを実行します。_account がない場合、呼び出しにはデフォルトの ID として AGENTICMAIL_API_KEY が使われます。

これにより、@agenticmail/claudecode 連携が実現します。1 つの MCP サーバープロセスで、複数の AgenticMail ID を扱えます。「Fola」として動作する Claude Code サブエージェントは、すべての呼び出しで _account: "Fola" を渡すことで、Fola の実際の受信トレイを読み取り、fola@localhost からメールを送信するなどの操作ができます。

手軽にツールを見つけるためのメタツール(request_tools + invoke)

ホストのコンテキストウィンドウを小さく保つため、通常、サブエージェントの tools: 許可リストで事前宣言されるのは 100 個のツールのうち約 10 個だけです。残りの約 50 個には、常時利用可能な次の 2 つのメタツールからアクセスできます。

  • request_tools({ query?, sets? }) — 読み込まれていないツールのテキストカタログを、セット(mail_extras、mail_compose、sms、account_admin、…)ごとにまとめて返します。部分文字列またはセット名による任意の絞り込みができます。
  • invoke({ tool, args, _account? }) — 名前を指定して、100 個のツールのいずれかを呼び出します。エージェントはツールの発見に request_tools を、呼び出しに invoke を使います。

トークンへの影響:通常のサブエージェントの起動時に読み込まれるツールスキーマは約 15K トークンから約 3K トークンに減ります。その代わり、あまり使わない操作では追加のラウンドトリップ(発見 → 呼び出し)が 1 回発生しますが、ほとんどの場合、その価値は十分にあります。


仕組み

MCP サーバーは、AI と AgenticMail API の間で動作します。

AI Client → MCP tool call → agenticmail-mcp → HTTP request → AgenticMail API → Stalwart Mail Server

各ツール呼び出しでは、次の処理を行います。

  1. AI から構造化された引数を受け取ります
  2. 入力を検証します(UID は正の整数であること、配列は空でないことなど)
  3. 30 秒のタイムアウトを設定して、AgenticMail API に HTTP リクエストを送信します
  4. 書式設定されたテキストの結果を AI に返します

サーバーは stdio トランスポートで動作します。AI クライアントは stdin 経由で JSON-RPC メッセージを送信し、サーバーは stdout 経由で応答します。MCP サーバー自体はネットワークポートを開きません。SIGTERM または SIGINT を受信すると、正常にシャットダウンします。


ツール

メール — 基本操作(13 ツール)
ツール説明プロンプトの例
send_email宛先、件名、テキスト/HTML、添付ファイル、CC を指定してメールを送信します「[email protected] に会議についてのメールを送って」
list_inbox受信トレイの最近のメッセージを一覧表示します(ページネーション対応、最大 100 件)「受信トレイを確認して」
read_emailセキュリティ分析付きでメールの全文を読みます「メール #42 を読んで」
reply_emailスレッドを維持して返信(または全員に返信)します「そのメールに出席すると返信して」
forward_email元の添付ファイルを含めてメールを転送します「それを [email protected] に転送して」
search_emails差出人、件名、本文、期間、リレーで検索します「John からの予算に関するメールを探して」
delete_emailUID を指定して特定のメールを削除します「そのスパムメールを削除して」
move_emailメールをフォルダーに移動します「これをアーカイブに移動して」
mark_readメールを既読にします「メール #15 を既読にして」
mark_unreadメールを未読にします「それを未読にして」
inbox_digest本文のプレビュー付きで受信トレイの概要を取得します「受信トレイの概要を教えて」
wait_for_email新着メールをリアルタイムで待機します(最大 5 分)「[email protected] からの返信を待って」
import_relay_email接続済みの Gmail/Outlook からメールをインポートします「Gmail から UID 500 のメールをインポートして」
メール — 一括操作(5 ツール)
ツール説明
batch_deleteUID のリストを指定して複数のメールを削除します
batch_mark_read複数のメールを既読にします
batch_mark_unread複数のメールを未読にします
batch_move複数のメールをフォルダーに移動します
batch_read複数のメールの全文を一度に読みます
メール — 整理(14 ツール)
ツール説明
manage_contactsアドレス帳の連絡先を追加、削除、一覧表示します
manage_drafts下書きを作成、一覧表示、編集、削除、送信します
manage_tagsタグを作成し、メッセージに割り当て、削除、一覧表示します
manage_rulesメールのフィルタールールを作成します(自動移動、自動削除、既読にする)
manage_signaturesメールの署名を作成、一覧表示、削除します
manage_templatesメールテンプレートを作成、一覧表示、削除します
manage_scheduledメールの将来の配信を予約し、一覧表示、キャンセルします
manage_spamスパムフォルダーの一覧表示、スパムの報告、スパムではないメールへの変更、スパムスコアの取得を行います
manage_pending_emails承認待ちの送信ブロック中メールを表示します
template_send保存済みテンプレートを使用し、変数を置換してメールを送信します
create_folder新しい IMAP フォルダーを作成します
list_folder特定のフォルダー内のメッセージを一覧表示します
list_folders利用可能なすべてのフォルダーを一覧表示します
check_healthAgenticMail サーバーと Stalwart の状態を確認します
マルチエージェント通信(8 ツール)
ツール説明プロンプトの例
list_agents名前、メールアドレス、役割を含むすべてのエージェントを一覧表示します「すべてのエージェントを表示して」
message_agent別のエージェントにメールを送信します(優先度レベルを指定可能)「調査担当者に料金データを調べるよう伝えて」
check_messagesエージェントや外部からの新着メッセージを確認します「新着メッセージはある?」
call_agentタスクを依頼して別のエージェントを呼び出します(同期または非同期)「このトピックを調査するため、アナリストを呼び出して」
claim_task自分に割り当てられた保留中のタスクを引き受けます「そのタスクを引き受けて」
submit_result引き受けたタスクの結果を提出します「調査結果を提出して」
check_tasks受信または送信したタスクを確認します「保留中のタスクはある?」
call_agent同期 RPC — 結果が返るまで待機します(最大 5 分)「調査担当者に料金を調べてもらい、結果を待って」
管理(7 ツール)

これらのツールにはマスターキー(AGENTICMAIL_MASTER_KEY)が必要です。

ツール説明
create_account名前と役割を指定して新しいエージェントを作成します
delete_agentエージェントを削除します(メールをアーカイブし、レポートを記録します)
stop_agentタスクの途中でエージェントをソフト停止します — ディスパッチャーはエージェントの起動を拒否しますが、メールは引き続き受信トレイに届きます(監査証跡は保持されます)
resume_agentstop_agent を取り消します — ディスパッチャーはエージェントの起動を再開します。停止中に受信したメールは受信トレイに残り、次回の起動時に処理されます
cleanup_agents非アクティブなエージェントを一覧表示し、クリーンアップして、永続化します
deletion_reports過去のエージェント削除レポートを表示します
update_metadataエージェントのメタデータ(表示名、所有者など)を更新します
whoami現在のエージェント情報(名前、メールアドレス、役割、ID)を取得します
setup_paymentCloudflare の支払い設定手順を取得します
ゲートウェイの設定(6 ツール)

これらのツールにはマスターキーが必要です。

ツール説明
check_gateway_status現在のメールゲートウェイのモードと稼働状況を確認します
setup_email_relayGmail/Outlook リレーモードを設定します
setup_email_domainCloudflare でカスタムドメインを設定します
setup_gmail_aliasGmail の「名前を指定して送信」エイリアスの設定手順を取得します
setup_guideリレーとドメインの比較ガイドを表示します
send_test_emailゲートウェイを確認するためのテストメールを送信します
purchase_domainドメインを検索して購入します
SMS/電話番号(8 ツール)
ツール説明
sms_setupGoogle Voice または 46elks の電話番号へのアクセスを設定します
sms_send46elks API 経由で SMS を送信するか、Google Voice で送信する手順を返します
sms_messages受信または送信した SMS メッセージを一覧表示します
sms_check_code最近の SMS から認証コード/OTP コードを抽出します
sms_read_voiceGoogle Voice のウェブから SMS を直接読み取ります(最速の方法)
sms_recordGoogle Voice のウェブまたは任意のソースから読み取った SMS を記録します
sms_parse_email転送された Google Voice メールから SMS を解析します(代替手段)
sms_config現在の SMS 設定を取得します

送信メールのセキュリティスキャン

send_email、reply_email、forward_email を通じて送信されるすべてのメールは、送信前にスキャンされます。スキャナーは次の内容を確認します。

検出対象

個人情報(PII) — 社会保障番号、クレジットカード番号、電話番号、銀行ルーティング番号、運転免許証番号、パスポート番号、納税者番号、メディケア/メディケイド ID、移民関連番号、PIN、秘密の質問への回答、IBAN/SWIFT コード、暗号通貨ウォレットアドレス、電信送金の指示

認証情報 — API キー、AWS キー、パスワード、秘密鍵(PEM 形式)、ベアラートークン、データベース接続文字列、GitHub トークン、Stripe キー、JWT、Webhook URL、環境変数ブロック、暗号資産のシードフレーズ、2FA バックアップコード、ユーザー名とパスワードの組み合わせ、OAuth トークン、VPN 認証情報

システム内部情報 — プライベート IP アドレス、一般的なシステムディレクトリ内のファイルパス、環境変数の割り当て

所有者のプライバシー — 所有者の個人情報への言及、エージェントを作成または運用している人物の暴露

リスクのある添付ファイル — 秘密鍵ファイル(.pem、.key、.p12、.pfx)、環境ファイル(.env、.credentials)、データベースファイル(.db、.sqlite)、実行ファイル(.exe、.bat、.sh、.ps1)など

検出された場合の動作
  • 中程度の重大度 — メールは送信されますが、AI は応答で警告を受け取ります
  • 重大度:高 — メールはブロックされ、人間による確認のために保存されます

メールがブロックされると、AI には保留中 ID が通知され、ユーザーに知らせるよう指示されます。ユーザー(所有者)には、ブロックされた内容の全文と手順を記載した通知メールが届きます。

人間のみが承認可能

AI は、自身がブロックしたメールを承認または拒否できません。manage_pending_emails ツールでできるのは一覧表示と閲覧のみです。承認/拒否の操作は、明確なエラーメッセージとともに明示的に拒否されます。承認できるのは人間の所有者だけです(API、対話型シェル、または通知メールへの「approve」や「yes」の返信を通じて行います)。

自動フォローアップリマインダー

メールがブロックされると、MCP サーバーはAI向けのフォローアップリマインダーを段階的に自動設定します。

  1. 12 時間後 — 最初のリマインダー
  2. 6 時間後 — 2 回目のリマインダー
  3. 3 時間後 — 3 回目のリマインダー
  4. 1 時間後 — クールダウン前の最後のリマインダー
  5. 3 日間のクールダウン — その後、サイクルが再開します

これらのリマインダーはツールの応答に挿入され、保留中の承認についてユーザーに確認するようAIに促します。バックグラウンドのハートビートが 5 分ごとに確認を行い、所有者がすでにメールを承認または拒否しているかを検出します。承認または拒否済みの場合、リマインダーはキャンセルされます。


受信時のセキュリティ

AI が read_email でメールを読むと、応答にセキュリティ分析が含まれます。

  • スパムスコア — メールがスパムまたは悪意のあるメールである可能性(0~100)
  • カテゴリ — 検出された脅威の種類(フィッシング、ソーシャルエンジニアリング、プロンプトインジェクションなど)
  • サニタイズ — 不可視の Unicode 文字や隠し HTML が検出され、除去されたかどうか
  • 添付ファイルの警告 — 実行ファイル、アーカイブ、HTML ファイル、偽装されたファイル拡張子(report.pdf.exe など)のフラグ

同じシステム上のエージェント間の内部メールは信頼されているため、スパムスコアの判定をスキップします。


リアルタイムでメールを待機

wait_for_email ツールは、API への Server-Sent Events(SSE)接続を開き、新着メールやタスク通知を待ち受けます。SSE を利用できない場合は、受信トレイのポーリングに切り替わります。これは、返信を待ってから処理を続ける必要があるワークフローで役立ちます。

待機時間は設定可能なタイムアウトで制御されます(デフォルトは 2 分、最大 5 分)。メールが届くと、ツールはメッセージの詳細を返します。代わりにタスク通知が届いた場合は、タスク情報を返します。


Relay メール連携

所有者が Gmail または Outlook アカウントをリレーとして接続すると、AI は次のことができます。

  • リレーを検索する — searchRelay: true を指定した search_emails は、ローカルの受信トレイと接続済みの Gmail/Outlook アカウントの両方を検索します。リレーの検索結果には、アカウント別にタグ付けされた別個の UID セットが含まれます。
  • リレーからインポートする — import_relay_email は、リレーアカウントから特定のメールをローカルの受信トレイに取り込み、適切なスレッド管理のためにすべてのヘッダーを保持します。

これにより、AI は所有者の実際の Gmail/Outlook の受信トレイからメールを見つけてインポートし、AgenticMail システムを通じて通常どおり返信できます。


メールのスケジュール送信

manage_scheduled ツールでは、柔軟な時刻形式を使用できます。

  • ISO 8601: 2026-02-14T10:00:00Z
  • 相対形式: in 30 minutes、in 2 hours
  • 指定形式: tomorrow 8am、tomorrow 2pm
  • 曜日: next monday 9am、next friday 2pm
  • 人が使う形式: 02-14-2026 3:30 PM EST
  • カジュアルな形式: tonight、this evening

API サーバーは 30 秒ごとに、送信時刻になったスケジュール済みメールを確認し、自動的に送信します。


エージェント間通信

メッセージの優先度

message_agent を使用する際、AI は優先度を設定できます。

  • 通常 — プレフィックスなし
  • 高 — 件名に [HIGH] を付加
  • 緊急 — 件名に [URGENT] を付加
同期 RPC

call_agent ツールは独特なツールです。別のエージェントにタスクを割り当て、そのエージェントが応答するまで接続を開いたままにします(最長 5 分)。AI が処理を続ける前に別のエージェントから回答を得る必要がある場合に便利です。

内部では、API サーバーが 2 秒ごとにポーリングし、即時解決の仕組みも使用します。対象のエージェントが結果を送信すると、待機中の接続は直ちに解決されます。

タスクのライフサイクル

タスクは pending → claimed → completed または failed の状態を経ます。タスク ID を知っているエージェントであれば、どのエージェントでもタスクを引き受けられます。これにより、サブエージェントが親エージェントに代わってタスクを処理するアーキテクチャが可能になります。


リソース

MCP サーバーは、次の 1 つのリソースを提供します。

URI名前説明
agenticmail://inboxエージェントの受信トレイ現在のエージェントの最新 20 件の受信トレイメッセージを閲覧します

会話の例

User: Check my email and summarize anything important

AI: [calls list_inbox]
You have 5 new emails:
1. [email protected] - "Q2 Budget Review" (2 hours ago)
2. [email protected] - "Re: Project Timeline" (4 hours ago)
3. [email protected] - "[repo] PR #123 merged" (5 hours ago)
...

[calls read_email for #1]
[calls read_email for #2]

Here's a summary of the important emails:

1. **Q2 Budget Review** from John — He's requesting approval for the revised
   budget. The total is $45K, up from $38K due to infrastructure costs.
   He needs a response by Friday.

2. **Project Timeline** from Sarah — She confirmed the new deadline is March 15.
   The design phase is complete and development starts Monday.

User: Reply to John saying I approve the budget

AI: [calls reply_email]
Reply sent to [email protected] with subject "Re: Q2 Budget Review"

外部受信トレイへの公開 — リレーの設定手順を案内する前に、この点を伝えてください

リレーを設定する MCP ツール(setup_operator_email、およびオペレーターに agenticmail setup-email または setup-relay の実行を勧めるエージェント)は、Gmail/Outlook のプラスアドレスを通じて、すべてのサブエージェントをパブリックインターネットに公開します。 オペレーターがこの点に気づいていないこともあるため、ホストエージェントは明確に警告してください。

  • プラスアドレスは誰でも推測できます。 リレーを設定すると、誰でも [email protected]、[email protected] などにメールを送信でき、対応する AgenticMail エージェントがそのメールを受信します。+sub の部分は秘密ではありません。
  • 外部からのメールでも、内部の @localhost メールと同じようにホストのディスパッチャーが起動します。 MCP サーバーは送信元によるフィルタリングを行いません。API は受信したメールすべてについて SSE の new-mail イベントを発行し、ホスト統合がワーカーのターンを開始します。
  • ホストのブリッジは別の経路を通ります。 [email protected]/[email protected] 宛てのメールは handleBridgeMail にルーティングされ、ホスト SDK の resume オプションを使って、オペレーターの最後のセッションをヘッドレスで再開します。再開に失敗すると、setup_operator_email のブリッジエスカレーション用メールにフォールバックします。これこそ、その MCP ツールが存在する理由です。
  • スパムはワーカーのターンを発生させます。 エスカレーション順のスロットルは、ディスパッチャーの wake-budget ガード(自動)、リレーレベルのスパムフィルター、内部専用にすべきエージェントを対象とする metadata.host ベースのフェンシングです。

ホストエージェントがリレー設定ツールを呼び出そうとしているときや、オペレーターに setup-email の実行を案内するときは、オペレーターが最初のスパムによる起動を受けて初めて気づくのではなく、意図を理解して選択できるよう、事前にこの内容を言い換えて伝えてください。


ライセンス

MIT - Ope Olatunji (@ope-olatunji)

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。