blastengine MCPサーバーを AI エージェントに繋ぐ前に、「どんなツールが、何を受け取り、何を返すのか」を正確に把握しておくと安心です。とくにメール配信は誤送信が取り返しのつかないドメインなので、LLM を介さずにツール単体の挙動を確認できる手段があると心強いと思います。
そこで役立つのが MCP Inspector です。MCP 公式のデバッグツールで、サーバーに接続してツール一覧・入力スキーマを表示し、任意のツールを手動で呼び出せます。本記事では、これを使って blastengine MCPサーバーの全15ツールを種別ごとに検証し、入力・出力・有効化条件を整理します。
MCP Inspectorの起動
ビルド済みの dist/index.js(導入記事を参照)を対象に、次を実行します。
npx @modelcontextprotocol/inspector node /path/to/blastengine-mcp/dist/index.js
ブラウザで Inspector の UI(localhost)が開きます。左側の Transport で Command=node、Arguments=/path/to/.../dist/index.js を確認し、Environment Variables に認証情報を設定して「Connect」します。あるいは、シェルの環境変数として渡してから起動しても構いません。
BLASTENGINE_LOGIN_ID=xxxx \
BLASTENGINE_API_KEY=yyyy \
npx @modelcontextprotocol/inspector node /path/to/blastengine-mcp/dist/index.js
接続後、Tools タブで「List Tools」を押すとツール一覧が出ます。各ツールを選ぶと、inputSchema から自動生成された入力フォームが表示され、値を入れて「Run Tool」で実際に呼び出せます。
CLIモードでの検証
スクリプトから確認したいときは、Inspector の CLI モードが便利です。
# ツール一覧を取得
npx @modelcontextprotocol/inspector --cli \
node /path/to/blastengine-mcp/dist/index.js \
--method tools/list
# ツールを1つ呼び出す(例:月次使用量)
npx @modelcontextprotocol/inspector --cli \
node /path/to/blastengine-mcp/dist/index.js \
--method tools/call --tool-name blastengine_usage_month_get \
--tool-arg month=202607
検証の勘所:全15ツールは常に一覧に出る
最初に押さえておきたい重要な挙動があります。blastengine MCPサーバーは、送信系フラグの状態にかかわらず、15個のツールをすべて登録します。有効化フラグ(BLASTENGINE_ENABLE_SEND など)は「一覧に出す/出さない」ではなく、実行時のゲートとして効きます。
つまり、フラグをすべて false にしていても tools/list には15件すべて並び、無効な送信系ツールを呼ぶと、送信は行われずにエラーが返ります。
{
"code": "send_disabled",
"message": "BLASTENGINE_ENABLE_SEND=true is required to send transaction mail",
"retryable": false
}
これは検証にとって好都合で、フラグを false のまま、送信系ツールに実際に送信させずに「有効化条件が正しく効くか」を確認できます。
出力の形式も共通です。成功時はレスポンスの content(テキスト)に JSON が入り、同じ内容が structuredContent にも入ります。失敗時は isError: true になり、上のような code / message / retryable を持つ構造化エラーが返ります。
全15ツール早見表
エンドポイント(HTTP メソッドとパス)と有効化条件をまとめます。パスの {...} は入力から埋まる部分です。
| # | ツール | メソッド・パス | 種別 | 条件 |
|---|---|---|---|---|
| 1 | blastengine_deliveries_list |
GET /deliveries
|
参照 | 認証情報 |
| 2 | blastengine_delivery_get |
GET /deliveries/{id}
|
参照 | 認証情報 |
| 3 | blastengine_mail_results_list |
GET /logs/mails/results
|
参照 | 認証情報 |
| 4 | blastengine_mail_log_get |
GET /logs/mails/{id}
|
参照 | 認証情報 |
| 5 | blastengine_usage_latest_get |
GET /usages/latest
|
参照 | 認証情報 |
| 6 | blastengine_usage_month_get |
GET /usages/{YYYYMM}
|
参照 | 認証情報 |
| 7 | blastengine_bulk_import_status |
GET /deliveries/-/emails/import/{job_id}
|
参照 | 認証情報 |
| 8 | blastengine_bulk_import_error_download |
GET .../errorinfo/download
|
参照(ローカル保存) | 認証情報 |
| 9 | blastengine_bulk_preview |
GET /deliveries/{id}
|
参照(情報提示のみ) | ENABLE_BULK |
| 10 | blastengine_send_transaction |
POST /deliveries/transaction
|
送信 | ENABLE_SEND |
| 11 | blastengine_bulk_begin |
POST /deliveries/bulk/begin
|
書き込み | ENABLE_BULK |
| 12 | blastengine_bulk_update_recipients |
PUT /deliveries/bulk/update/{id}
|
書き込み | ENABLE_BULK |
| 13 | blastengine_bulk_commit_immediate |
PATCH /deliveries/bulk/commit/{id}/immediate
|
送信 | ENABLE_BULK |
| 14 | blastengine_bulk_commit_scheduled |
PATCH /deliveries/bulk/commit/{id}
|
送信 | ENABLE_BULK |
| 15 | blastengine_bulk_import_recipients_csv |
POST(multipart)/deliveries/{id}/emails/import
|
書き込み |
ENABLE_BULK + ENABLE_CSV_IMPORT
|
以下、グループごとに入力と返り値を見ていきます。
参照系(認証情報だけで動く)
まず試すべきツール群です。認証情報さえあれば、フラグ無しで動きます。blastengine 上の配信データを送信・更新する副作用はありません(ただし後述の blastengine_bulk_import_error_download だけは、取得したエラー ZIP をローカルに書き出すファイルシステム上の副作用があります)。
使用量の確認
-
blastengine_usage_latest_get… 入力なし。最新の使用量を返します。最初の疎通確認に最適です。 -
blastengine_usage_month_get…month(YYYYMMの6桁、例202607)。指定月の使用量を返します。
配信の検索・詳細
-
blastengine_deliveries_list… 配信を検索します。subject/fromなどの絞り込みに加え、status(配列)、delivery_type(TRANSACTION/BULK/ALLの配列)、delivery_start/delivery_end、size(既定100・最大1000)、pageを指定できます。 -
blastengine_delivery_get…delivery_id。単一配信の詳細を返します。
日時(
delivery_start/delivery_end)は、タイムゾーンオフセット付きの ISO 8601 が必須です(例:2026-07-01T00:00:00+09:00や...Z)。日付だけ(2026-07-01)や「先週」のような相対表現は受け付けません。「先週」の指定は、呼ぶ前に明示的な開始/終了時刻へ解決しておく必要があります。
メール配信ログ
-
blastengine_mail_results_list… 宛先ごとの配信ログを検索します。email、delivery_id、delivery_type(TRANSACTION/BULK/SMTP)、status(SENT/RETRY/HARDERROR/SOFTERROR/DROP/ALL)、response_code、delivery_start/delivery_end、count(既定100・最大1000)、anchor(ページング用)を指定できます。 -
blastengine_mail_log_get…maillog_id。単一ログの詳細を返します。
CSVインポートの状況確認
-
blastengine_bulk_import_status…job_id。CSV 宛先インポートジョブの状況と件数を返します。 -
blastengine_bulk_import_error_download…job_idとoutput_path(.zip)。インポートのエラー情報 zip をローカルに保存します。ファイルの中身は MCP のレスポンスには含めず、保存先パスと書き込みバイト数だけを返します。既存ファイルは上書きしません(invalid_output_path)。
配信情報・配信ログは、blastengine 側で配信開始から62日間保持されます。古い配信は検索できない点に注意してください。
一斉配信プレビュー(情報提示のみ)
-
blastengine_bulk_preview…delivery_id(+任意でreservation_time)。配信詳細を取得し、件名・送信元・宛先数・本文サマリを人間が確認しやすい形で返します。GET なので副作用はありませんが、ENABLE_BULKが必要です。
重要なのは、このツールが返す note の意味です。プレビューは情報提示のみで、確定(commit)を承認したり止めたりする効果はありません。ENABLE_BULK が有効なら、確定ツールはプレビューの有無に関係なく直接実行されます。「プレビューしたから安全」ではなく、確定ツールを呼ぶ判断はあくまで人間側にある、という理解が必要です。
送信・書き込み系(フラグで有効化)
ここからは有効化フラグが必要で、実際にメールを送る・下書きを変更するツールです。検証段階ではフラグを false のままにして、*_disabled エラーが返ることを確認するのが安全です。実送信を試すなら、トライアルの登録済みアドレス宛など、影響のない対象に限定してください。
トランザクション送信
-
blastengine_send_transaction(要ENABLE_SEND)… 1宛先へ送信します。from_email/to/subject/text_partは必須、html_part/cc/bcc(各最大10)/reply_to_email/list_unsubscribe/encode(UTF-8/ISO-2022-JP)は任意です。差し込みはinsert_code(最大50個)で定義し、本文中に__key__または%%key%%の形で埋め込みます。
一斉配信(下書き → 宛先 → 確定)
一斉配信は複数ツールの組み合わせで進みます。すべて ENABLE_BULK が必要です。
-
blastengine_bulk_begin… 下書き(EDIT 状態)を作成します。入力は送信元・件名・本文など(宛先はここでは指定しません)。返るdelivery_idを後続で使います。 -
blastengine_bulk_update_recipients…delivery_idに対して、宛先(to)や配信フィールド(from/subject/text_part/html_partなど)を更新します。toを渡すと既存の宛先を置き換え、省略すると宛先は変えずにフィールドだけ更新します。宛先数の上限は既定50(BLASTENGINE_BULK_MAX_RECIPIENTS)。どちらの挙動になったかは返り値のwarningで示されます。 -
blastengine_bulk_import_recipients_csv(要ENABLE_BULK+ENABLE_CSV_IMPORT)… ローカルの CSV から宛先を一括登録します。csv_pathはローカルの.csv(URL 不可・空ファイル不可・最大256MB)。immediate=trueにするとインポート後にそのまま配信が走るため誤配信リスクがあり、返り値のwarningでも警告されます。50通を超える宛先はこのツールで登録します。 -
blastengine_bulk_commit_immediate…delivery_idを即時確定(配信)します。 -
blastengine_bulk_commit_scheduled…delivery_idとreservation_time(オフセット付き ISO 8601)で予約配信を確定します。
検証の順序としては、bulk_begin →(bulk_update_recipients または bulk_import_recipients_csv)→ bulk_preview で内容確認 → bulk_commit_immediate / bulk_commit_scheduled、という流れになります。Inspector 上で各ステップの入力スキーマとエラー(フラグ無効時の bulk_disabled など)を確認しておくと、エージェントに繋いだときの挙動が読めるようになります。
検証で確認したいことチェックリスト
-
tools/listに15件すべて並ぶか(フラグfalseでも並ぶ) -
usage_latest_get(引数なし)で疎通するか=認証が通っているか -
deliveries_listをsizeやdelivery_typeで絞って結果が返るか - 送信系(
send_transactionなど)をフラグfalseで呼ぶと、送信されず*_disabledエラーになるか - 日時系の入力で、オフセット無しの値を弾くか(
delivery_startに2026-07-01を入れて弾かれるか) -
bulk_previewのnoteが「commit を承認しない」旨を返すか
まとめ
MCP Inspector を使うと、blastengine MCPサーバーの15ツールを LLM を介さず・実送信せずに検証できます。ポイントは、(1) 15ツールは常に一覧に出て、有効化フラグは実行時ゲートとして効くこと、(2) 参照系は認証だけで動き、送信系はフラグ false のまま *_disabled を確認できること、(3) 一斉配信は begin → 宛先登録 → preview → commit という多段フローで、preview は情報提示のみであること――の3つです。
ここで各ツールの入力・出力を掴んでおけば、Claude などのエージェントに繋いだときも、どんな指示がどのツールに対応するかを見通せます。標準ツールに足りない操作がほしくなったら、独自ツールを追加する記事も参考にしてみてください。
検証していて「このツールがほしい」「ここはこうだと嬉しい」と感じたら、以下のアンケートフォームから送ると開発チームに届くみたいです。要望を投げておくと、そのうち標準機能になるかもしれません。
https://docs.google.com/forms/d/e/1FAIpQLSdNZ9TswUT3JEv3pMHkJGqOvgmsXuKP1smkJiNEsqbTVDwRyg/viewform
※本記事は執筆時点の blastengine MCPサーバー(MIT ライセンス・公式サポート対象外)の仕様に基づきます。エンドポイントや入力仕様はバージョンにより変わり得ます。