受信
ラベルとバケット
送信済みメールと受信メールを自動的にラベルへ振り分け、エージェントの会話が外に出ないバケットを用意します。
ラベル
ラベルはGmailのフォルダのように機能します。1通のメッセージに付けられるラベルは最大10個、1つのワークスペースで作成できるラベルは200個です。POST /labelsでラベルを作成し、GET /labelsでメッセージ数と未読数を含めて一覧表示し、GET /emails?label=Billingで特定のラベルのメールを読み取ります。ラベルはどこでも名前またはlbl_ IDで参照できます。
ラベルを付けて送信する
{
"from": "Orders <orders@example.com>",
"to": [
"customer@example.net"
],
"subject": "Order 1042",
"text": "Reply with a delivery window.",
"labels": [
"Agent/Orders"
]
}存在しないラベル名は自動的に作成されます。顧客からの返信を含め、その会話の以降のすべてのメッセージは会話のラベルを引き継ぎます。
バケット
"skip_inbox": trueを指定してラベルを作成すると、バケットになります。振り分けルール、ラベル付きの会話への返信、またはPOST /emails/:id/labelsによってバケットのラベルが付いた受信メールはアーカイブされ、受信トレイには表示されずラベル内にのみ表示されます。送信済みメールが受信トレイに表示されることはありません。これにより、エージェントのタスクに関する会話は送受信の両方向で1か所にまとまります。
{
"name": "Agent/Orders",
"skip_inbox": true,
"rules": [
{
"inbox_id": "inb_…"
}
],
"apply_to_existing": true
}振り分けルール
ルールは新着メールを自動的に振り分けます。ルールに設定したすべての条件に一致する必要があります。条件は、inbox_id(受信アドレス)、direction(inまたはout)、および大文字と小文字を区別しないfrom、to(ToとCc)、subjectの部分文字列です。ルール自体のskip_inboxは、そのルールに一致した受信メールだけをアーカイブします。ルールはPOST /labels/:id/rulesで追加します。apply_to_existingを指定すると、保持済みのメールも振り分けられます。
バケットを処理する
GET /emails?label=Agent%2FOrders&direction=in&unread=trueをポーリングし、GET /threads/:idで会話を読み、reply_to_email_idで返信してから、PATCH /emails/:id {"read": true}で処理済みにします。メッセージをラベルに出し入れするにはPOST /emails/:id/labels {"add": [...], "remove": [...]}を使います。MCPサーバーは同じ操作をcreate_label、create_label_rule、label_email、list_emailsとして公開しています。