アシスタントを介したメール業務にはMCPを、アプリケーションのイベントにはREST APIを。認証、承認、再試行、Brew でのワークフローを比較します。

チームの開発者がメール配信プラットフォームを Claude に接続し、チャット画面で来週のキャンペーンの下書きを作りました。翌朝、登録時のウェルカムメールも同じようにアシスタント経由で動かせないか、と誰かが尋ねます。プラットフォームのドキュメントには、MCPサーバーとREST APIが並んで載っています。
エージェントに対応したメール配信プラットフォームの多くは、今ではこの2つの入り口を用意しています。MCPサーバーを使うと、AIアシスタントが会話の中でプラットフォームのツールを呼び出せます。REST APIは、自社のコードから直接呼び出せる操作を公開します。内部では同じエンドポイントに行き着くことも多いので、選ぶ基準は、誰がいつその作業を行うかです。
人がアシスタントを通じて作業するならMCPを、誰も見ていないところで製品からメールを送る必要があるならREST APIを使いましょう。ほとんどのチームは、最終的に両方を使うことになります。
MCP(Model Context Protocol)は、Claude、ChatGPT、Cursor などのAIクライアントにツールを公開するためのオープンな標準規格です。クライアントは、説明とスキーマ付きのツールの一覧を読み、依頼内容に応じてどれを呼び出すかを選びます。Brew のサーバーは https://brew.new/api/mcp にあり、OAuthに対応しているので、キーを扱う代わりに、ログインしてブランドを選ぶだけで済みます。
REST APIは、自社のコードから呼び出すHTTPエンドポイントの集まりです。Brew は、APIの OpenAPI 仕様、TypeScript SDK、プレーンテキストのエージェント向けガイドを公開しています。すべての呼び出しにAPIキーが付き、何をいつ呼び出すかはコードが決めます。
ほかのベンダーも同じパターンです。Customer.io のMCPサーバーは、APIを読み取り、書き込み、削除の別々のツールで包んでいます。Brevo は、OpenAPI 仕様からMCPのツールを生成しています。
| MCP | REST API | |
|---|---|---|
| 操作の主体 | アシスタントを介した人 | 自社のコード |
| 主な作業 | メールの下書きと修正、オーディエンスの作成、キャンペーンの予約、分析の確認 | イベントトリガーの発火、コンタクトの作成・更新、トランザクションメールの送信、送信ステータスのポーリング |
| 認証 | OAuthでのログイン。OAuthに対応していないクライアントではAPIキー | ブランド単位または組織単位のAPIキー |
| 安全性 | OAuth接続と組織全体の接続では、Brew が本番の送信を確認のために一時停止 | コード次第。冪等性キーと独自の確認ステップを使う |
| エラーへの対応 | アシスタントがエラーを読み、再試行するか、あなたに確認する | 安定したエラーコードで処理を分岐し、バックオフしながら再試行する |
| レスポンスのサイズ | アシスタントのコンテキストウィンドウによって制限される | ページネーションによる制限のみ |
| 適している場面 | 判断や試行錯誤が必要なタスク | 毎回同じように実行しなければならないタスク |
作業が会話の形をとるなら、MCPを使いましょう。
create_email、edit_email、test: true を付けた send_email を呼び出し、次に scheduledAt を付けた send_email を呼び出して、あなたの承認を待ちます。search_contacts、フィールドの検索、create_audience を組み合わせます。get_email_analytics とオートメーションのパフォーマンスを読み取ります。Brew では、MCP経由で生成したメールも、アプリで生成したメールと同じブランドドキュメントを使います。クライアントのセットアップは、Brew のMCPの発表記事で説明しています。
MCPのレスポンスは、アシスタントのコンテキストに収まる必要があります。Brew のフローの記事でも触れているとおり、MCPで完全なHTMLを求めると、長いシーケンスの最初の1〜2ステップしか返ってきませんが、RESTのルートならすべての本文が返ってきます。
メールが製品の一部なら、APIを使いましょう。
POST /v1/automations/triggers/{triggerEventId}/fire を呼び出します。あとは、公開済みのオートメーションが処理します。POST /v1/contacts は、1回のリクエストで最大1,000件のコンタクトを作成・更新します。GET /v1/sends/{sendId} は、ダッシュボードやアラートに使える、ステータスと統計を返します。対応しているエンドポイントでは、ドキュメントに記載された24時間の期間内の再試行に、同じ Idempotency-Key とリクエストボディを再利用します(トリガーの発火では、同じキーによる重複が90日間排除されます)。論理的に別の操作には、別のキーを使いましょう。書き込みが冪等性の対象になると決めつける前に、エンドポイントの仕様を読んでください。レート制限のヘッダーは、いつ間隔を空けるべきかを教えてくれます。APIのエラーレスポンスには、CONSENT_REQUIRED のような code が含まれており、それに応じて処理を分岐できます。ネットワークの障害は別に扱いましょう。これらはすべて、Brew のAPIガイドで説明しています。
ターミナルで動くコーディングエージェントには、どちらの選択肢よりもCLIのほうが向いていることがよくあります。Brew のCLIは、ターミナルに接続されていないときはAPIのレスポンスを1行のJSONとして返し、エージェントが判断に使える終了コードを使います。コード4は確認が必要であることを意味し、CLIは、承認後に --yes を付けて再実行するための正確なコマンドを表示します。また、brew-cli types で型付きのペイロード定義を生成できるので、バックエンドからのトリガーの呼び出しを、トリガーのスキーマと一致させておけます。
SaaSのチームなら、たとえば次のように作業を分けられます。
user_signed_up トリガーとウェルカムのオートメーションを作成し、test_automation でテストしてから公開します。ステップ1と3では、人がアシスタントの作業を確認します。ステップ2と4は、登録のたび、あるいは毎晩、誰も見ていないところで実行されます。
MCPでは、あなたとエンドポイントのあいだにアシスタントが入るため、リクエストの手順が増え、アシスタントが誤ったツールを選ぶこともあります。対話しながら進める作業なら問題ありませんが、毎回必ず発火しなければならない登録イベントには向きません。
Brew は、OAuth接続と組織全体の接続で、本番の送信に確認を求めます。ブランド単位のAPIキーを使うクライアントでは、独自の承認ポリシーを設定してください。APIを使う場合は、キーを環境変数で保護し、可能な限りブランド単位のキーを使い、再試行するすべての書き込みに冪等性キーを付けましょう。
はい。Brew のエージェント連携ガイドでは、APIのエンドポイントを関数呼び出し(function calling)のツールとして組み込む方法を説明しています。認証と再試行はSDKが処理します。
両方を試すなら、キャンペーンの作業用にアシスタントにMCPサーバーを接続し、バックエンドから発火させるトリガー用にAPIキーを1つ作成しましょう。
