1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

blastengine MCPサーバーの全15ツールをMCP Inspectorで検証する

1
Last updated at Posted at 2026-07-29

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=nodeArguments=/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_BULKENABLE_CSV_IMPORT

以下、グループごとに入力と返り値を見ていきます。

参照系(認証情報だけで動く)

まず試すべきツール群です。認証情報さえあれば、フラグ無しで動きます。blastengine 上の配信データを送信・更新する副作用はありません(ただし後述の blastengine_bulk_import_error_download だけは、取得したエラー ZIP をローカルに書き出すファイルシステム上の副作用があります)。

使用量の確認

  • blastengine_usage_latest_get … 入力なし。最新の使用量を返します。最初の疎通確認に最適です。
  • blastengine_usage_month_getmonthYYYYMM の6桁、例 202607)。指定月の使用量を返します。

配信の検索・詳細

  • blastengine_deliveries_list … 配信を検索します。subject / from などの絞り込みに加え、status(配列)、delivery_typeTRANSACTION / BULK / ALL の配列)、delivery_start / delivery_endsize(既定100・最大1000)、page を指定できます。
  • blastengine_delivery_getdelivery_id。単一配信の詳細を返します。

日時(delivery_start / delivery_end)は、タイムゾーンオフセット付きの ISO 8601 が必須です(例:2026-07-01T00:00:00+09:00...Z)。日付だけ(2026-07-01)や「先週」のような相対表現は受け付けません。「先週」の指定は、呼ぶ前に明示的な開始/終了時刻へ解決しておく必要があります。

メール配信ログ

  • blastengine_mail_results_list … 宛先ごとの配信ログを検索します。emaildelivery_iddelivery_typeTRANSACTION / BULK / SMTP)、statusSENT / RETRY / HARDERROR / SOFTERROR / DROP / ALL)、response_codedelivery_start / delivery_endcount(既定100・最大1000)、anchor(ページング用)を指定できます。
  • blastengine_mail_log_getmaillog_id。単一ログの詳細を返します。

CSVインポートの状況確認

  • blastengine_bulk_import_statusjob_id。CSV 宛先インポートジョブの状況と件数を返します。
  • blastengine_bulk_import_error_downloadjob_idoutput_path.zip)。インポートのエラー情報 zip をローカルに保存します。ファイルの中身は MCP のレスポンスには含めず、保存先パスと書き込みバイト数だけを返します。既存ファイルは上書きしません(invalid_output_path)。

配信情報・配信ログは、blastengine 側で配信開始から62日間保持されます。古い配信は検索できない点に注意してください。

一斉配信プレビュー(情報提示のみ)

  • blastengine_bulk_previewdelivery_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 / encodeUTF-8 / ISO-2022-JP)は任意です。差し込みは insert_code(最大50個)で定義し、本文中に __key__ または %%key%% の形で埋め込みます。

一斉配信(下書き → 宛先 → 確定)

一斉配信は複数ツールの組み合わせで進みます。すべて ENABLE_BULK が必要です。

  • blastengine_bulk_begin … 下書き(EDIT 状態)を作成します。入力は送信元・件名・本文など(宛先はここでは指定しません)。返る delivery_id を後続で使います。
  • blastengine_bulk_update_recipientsdelivery_id に対して、宛先(to)や配信フィールド(from / subject / text_part / html_part など)を更新します。to を渡すと既存の宛先を置き換え、省略すると宛先は変えずにフィールドだけ更新します。宛先数の上限は既定50(BLASTENGINE_BULK_MAX_RECIPIENTS)。どちらの挙動になったかは返り値の warning で示されます。
  • blastengine_bulk_import_recipients_csv(要 ENABLE_BULKENABLE_CSV_IMPORT)… ローカルの CSV から宛先を一括登録します。csv_path はローカルの .csv(URL 不可・空ファイル不可・最大256MB)。immediate=true にするとインポート後にそのまま配信が走るため誤配信リスクがあり、返り値の warning でも警告されます。50通を超える宛先はこのツールで登録します。
  • blastengine_bulk_commit_immediatedelivery_id を即時確定(配信)します。
  • blastengine_bulk_commit_scheduleddelivery_idreservation_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_listsizedelivery_type で絞って結果が返るか
  • 送信系(send_transaction など)をフラグ false で呼ぶと、送信されず *_disabled エラーになるか
  • 日時系の入力で、オフセット無しの値を弾くか(delivery_start2026-07-01 を入れて弾かれるか)
  • bulk_previewnote が「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 ライセンス・公式サポート対象外)の仕様に基づきます。エンドポイントや入力仕様はバージョンにより変わり得ます。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?