Claude Media
ClaudeとLoopsを連携する方法 — メール配信を会話で動かす手順

ClaudeとLoopsを連携する方法 — メール配信を会話で動かす手順

Loops公式のコネクタで、連絡先・メーリングリスト・イベント・トランザクションメールをClaudeの会話から扱う手順です。誤送信を防ぐ権限設定と、送信前に押さえる仕様をまとめます。

Claude Loops連携は、SaaS向けメール配信サービスLoopsのコネクタを使い、連絡先の管理やイベント送信、トランザクションメールの送信をClaudeの会話で進める仕組みです。提供元はLoops自身で、コネクタページには「Anthropic verified」の表示があります。

ここでは接続の手順に加えて、会話から送る前に知っておきたいLoops側の仕様と、誤送信を減らす権限の組み方を扱います。同じメール配信系でも、キャンペーン配信が中心の製品はClaudeとMailchimpの連携やClaudeとBrevoの連携が別に扱っています。

Claude Loops連携でできること — 4つのツールが受け持つ範囲

コネクタページの説明は、連絡先とメーリングリストの管理、トランザクションメールの送信、イベントの操作、そしてLoops APIで使えるそのほかの操作を、Claudeに頼んで進められるというものです。

ツールの欄には4つの名前が並びます。

  • describe
  • execute
  • search
  • teams

ページに書かれているのは名前だけで、各ツールの引数や役割の説明はありません。名前から役割を決めつけず、実際の動きは接続後に確かめるのが安全です。

Loops側のMCPサーバー解説は、操作の対象を次の5種類に整理しています。

対象会話で頼める内容
連絡先会話で頼める内容検索、作成、プロパティの更新
メーリングリスト会話で頼める内容所属の確認、連絡先の追加と削除
イベント会話で頼める内容連絡先の活動を更新し、公開済みのワークフローを開始するイベントの送信
トランザクションメール会話で頼める内容公開済みのメールに、データ変数を添えて送信
キャンペーン・ワークフロー・メール本文会話で頼める内容作成と管理、メール本文の編集

表の最後の行まで含めると、読み取りだけでなく配信の設計そのものにも手が届きます。権限を絞る理由はここにあります。

接続の手順 — Claudeのコネクタ画面から追加する

Claude側の手順はLoopsの解説が案内しています。画面の名称は、Claudeのヘルプセンターでは「Customize」の「Connectors」と書かれています。表記が違って見えたら、同じコネクタの設定画面を指していると考えて探してください。

手順

LoopsをClaudeに接続する流れ

  1. 1

    コネクタの画面を開く

    Claudeの設定からコネクタの画面を開き、ディレクトリを参照します。

  2. 2

    Loopsを探して追加する

    「Loops」で検索し、右側の「+」を押します。続けて「Connect」または「Add to your team」を選びます。

  3. 3

    Loopsにサインインする

    コネクタを開き、案内に従ってブラウザーでLoopsにサインインします。コネクタページのSign-inは「Required」です。

  4. 4

    つながったか試す

    「Which Loops teams am I a part of?」(自分はどのLoopsチームに入っているか)と尋ねます。Loopsの解説が接続確認に使っている質問です。

TeamプランとEnterpriseプランでは、先にOwnerまたはPrimary Ownerが組織のコネクタを有効にします。有効にしても全員に権限が渡るわけではなく、各メンバーがLoopsに認証します。Loopsには複数のチーム(アカウント)を持てる仕組みがあるため、最初の質問でどのチームに入っているかを確かめておくと、別のチームへ誤って操作する事故を避けやすくなります。

Claude Codeから使う場合

Claude Codeには、Loopsの解説が専用のコマンドを載せています。

claude mcp add loops https://mcp.loops.so --scope user --transport http

追加したあと、Claude Code内で/mcpを実行し、ブラウザーの案内に従ってサインインします。接続の考え方はClaude Codeの全体像やClaudeのコネクタ解説にもまとめています。

そのほかのMCPクライアントは、https://mcp.loops.soをリモートのStreamable HTTPサーバーとして登録します。クライアントがOAuthのClient ID Metadata Documents(CIMD)に対応している必要があります。VS Code 1.106以降なら、プロジェクトの.vscode/mcp.jsonに次を書きます。

{
  "servers": {
    "loops": {
      "type": "http",
      "url": "https://mcp.loops.so"
    }
  }
}

送る前に知っておきたいLoopsの仕様 — トランザクションメールは止めにくい

会話で「このメールを送って」と頼めるようになると、危ないのは文面よりも、Loops側の振る舞いを知らないまま送ることです。Loopsの仕様のうち、会話からの操作で効いてくる点を挙げます。

トランザクションメールは配信停止の連絡先にも届く

トランザクションメールは、ユーザーの操作に応じて1人に送る自動メールです。パスワード再設定や購入確認が例にあたります。マーケティングメールとは、次の点が違います。

くらべる

トランザクションメールとマーケティングメールの違い

1対1の自動メール

トランザクション

配信停止のリンクを含めません。開封とクリックも計測しません。配信停止した連絡先にも届きます。

オーディエンス向け

キャンペーン・ワークフロー

販促やライフサイクルのメールです。配信停止の扱いが適用されます。

つまり、配信を止めた人にも届く経路です。Loopsは、マーケティングの内容をトランザクションメールとして送らないよう求めています。Claudeに「お知らせを全員に送って」と頼むときは、どの種類のメールで送る操作なのかを会話の中で明示させてください。

送れるのは公開済みのメールだけ

トランザクションメールは、Loopsのエディターで作って「Publish」したものだけがAPIで送れます。公開していないメールを指定すると、400番台のエラーになります。メールの下書きを直しても、再公開するまでは前に公開した版が送られ続けます。

したがって、Claudeに本文を書き換えさせても、再公開しない限り実際の送信内容は変わりません。逆に再公開した瞬間から、新しい内容で送られます。

データ変数は全部そろえないと失敗する

メールに差し込む値はデータ変数で渡します。守る点は次のとおりです。

  • 必須のデータ変数が1つでも欠けると、送信は失敗します
  • 変数名は大文字と小文字を区別します
  • 値は文字列、数値、または文字列・数値だけを持つオブジェクトの配列にします。真偽値とnullは渡せません
  • 任意に設定した変数は、キーごと省くか、文字列なら空文字を渡せます。nullは使えません

Claudeに頼むときは、変数名を口頭で言い換えさせないのが安全です。

宛先を新しく作るかどうかは設定で決まる

トランザクションメールは、オーディエンスに入っていない宛先にも送れます。オーディエンスに追加されるのは、addToAudienceをtrueにしたときだけです。追加しない限り請求の対象にならず、「連絡先が追加された」ことを契機にするワークフローも動きません。一方で、イベントの送信は挙動が違い、該当する連絡先が見つからなければ新しい連絡先が作られます。

イベントはワークフローを起動する

イベントは、公開済みのワークフローを動かす引き金にもなります。名前を指定して送るだけで、紐づいたメールが連絡先に飛ぶ可能性があります。存在しないイベント名で送ると、新しいイベントが自動で作られます。タイプミスがそのまま新しいイベントになる点にも注意が必要です。

試し打ちの方法 — example.comの宛先なら実際には送られない

Loopsは、トランザクションメールの試験用に、@example.comと@test.comの宛先を用意しています。APIは成功の応答を返しますが、メールは実際には送信されません。送信ドメインの評判を傷つけずに流れを確かめられます。

Claudeにはまず、この宛先で一度通すよう頼む運用が組めます。例えば、次のような指示を会話の冒頭に置きます。

Loopsで送信する前に、次の手順を守ってください。
1. 対象のトランザクションメールIDと、必須のデータ変数を一覧にして見せる
2. 最初の1通は user@example.com 宛てで送り、成功応答を確認する
3. 実在の宛先に送る前に、宛先と変数の値を私に見せて承認を待つ
4. 複数の宛先に送るときは、1件ずつ結果を報告する

これは例です。繰り返し使うなら、Claude CodeのCLAUDE.mdや、Claudeのプロジェクトの指示に置いておくと毎回貼る手間が減ります。

権限の絞り方 — 読み取りと書き込みを分ける

Claudeのコネクタには、ツールごとに許可を決める機能があります。「Customize」の「Connectors」でLoopsを選ぶと「Tool permissions」が出て、読み取り系と書き込み・削除系の分類に、Always allow、Needs approval、Blockedのいずれかを設定できます。

Loopsのコネクタはツールが4つだけで、各ツールが読み取りか書き込みかの説明はコネクタページにありません。分類がどう表示されるかは接続後の画面で確かめてください。読み取りと書き込みが分かれて表示されるなら、次の割り振りが一つの出発点です。

区分設定の例理由
検索・説明設定の例Always allow理由状態を変えない
連絡先の更新、リスト操作設定の例Needs approval理由配信対象が変わる
イベント送信、メール送信設定の例Needs approval理由配信が起きる
削除系設定の例Needs approvalまたはBlocked理由取り消せない

TeamプランとEnterpriseプランのOwnerは、組織全体で書き込みを止めることもできます。この設定は全員に効き、個人では上書きできません。また、Claudeで書き込みを許可しても、Loops側で本人に権限がなければ変更は通りません。

大量に頼むときの注意 — レート制限と二重送信

LoopsのAPIには、チームごとに毎秒10リクエストという基準の制限があります。メールの内容や配信設計を扱うコンテンツ系のAPIは、チームごとに60秒で60リクエストです。超えると429が返り、指数的に待ち時間を延ばす再試行が推奨されています。

コネクタ経由の操作に同じ制限が及ぶかどうかは、コネクタページにも接続の解説にも記載がありません。数百件の連絡先を一度に更新させるような依頼は、小分けにして進める方が無難です。

二重送信への備えもあります。トランザクションメールとイベントのAPIはIdempotency-Keyヘッダーを受け付け、同じキーを24時間以内に再び使うと409で拒否されます。キーは100文字までです。再試行で同じメールが2通届く事故を避ける仕組みですが、コネクタの会話からこのキーを指定できるかは、ページには書かれていません。コードで送る処理を組むなら、このヘッダーを入れる設計が確実です。

Loopsコネクタが向く場面・向かない場面

向くのは、会話で状況を確かめながら進めたい作業です。

  • 特定の連絡先がどのリストに入っているかの確認
  • 新しいプロパティを付けた連絡先の更新
  • テスト宛先を使った、トランザクションメールの動作確認
  • ワークフローが拾うイベントの動作確認

向かないのは、大量送信と定常運用です。毎回同じ条件で動かす処理は、アプリのコードからAPIやSDKで送る方が再現性があります。コーディングエージェント向けには、LoopsがCLIとエージェント用スキルの配布を別に用意しています。メール送信の周辺を開発の側から扱う例として、Resend MCPサーバーの使い方も参考になります。

つまずいたとき

落とし穴

メールを書き換えたのに、届く内容が変わらない

トランザクションメールは、再公開するまで前に公開した版が送られ続けます。下書きを直したら、公開の操作まで終えたかを確かめてください。

  • 400番台のエラーが返る: 応答本文のmessageに理由が入ります。送信ドメインが未検証、メールが未公開、transactionalId・email・dataVariablesのどれかが欠けている、データ変数の不足が主な原因です
  • リンクがx-webdoc://で始まって開けない: Apple Mailで起きる既知の問題です。リンクがhttps://かhttp://で始まっているかを確認します
  • 認証が通らない: Claudeの「Customize」の「Connectors」でいったん切断し、つなぎ直します

まとめ

Loopsコネクタは、連絡先、リスト、イベント、メール送信をClaudeに頼める入口です。便利な反面、トランザクションメールは配信停止の連絡先にも届き、イベント1通でワークフローが動くため、会話の軽さと配信の重さが釣り合いません。

最初は検索や説明に限って許可し、送信と更新は承認制にしておく構成が現実的です。送る前に@example.com宛ての試し打ちを挟む運用を、指示文として固定しておくと事故が減ります。

この記事を共有:XはてブLinkedIn