メール配信サービス blastengine から、公式の MCP サーバーが公開されました。MCP(Model Context Protocol)は、AI が外部サービスにアクセスするための共通規格です。これを使うと、AI エージェントとの会話の中から blastengine の配信状況の確認やメール送信を直接扱えるようになります。
公式のセットアップマニュアルは Claude Desktop 向けを丁寧に解説しています。一方この記事では、ターミナル中心で開発する人向けに、Claude CodeのCLI版へ stdio サーバーとして導入する手順をまとめます。claude mcp add と .mcp.json の2通りを扱い、APIキーを安全に持たせる方法まで踏み込みます。
blastengine MCPで何ができるか
blastengine MCPサーバーは、blastengine API の一部を MCP ツールとして公開します。公式が挙げているユースケースは次の6つです。
- トランザクションメール送信(登録完了通知などの1対1メール)
- 即時一斉配信(複数宛先への同一内容メール)
- 予約一斉配信(指定日時での一括配信)
- 配信結果の確認・分析(到達数・エラー数・成功率)
- 詳細ログの確認(バウンス・エラー詳細)
- 利用状況の確認(当月の送信実績と残数)
重要なのは、送信系ツールは既定で無効という設計です。メール送信は取り消せないため、サーバーは参照のみの状態で起動し、送信・一斉配信・CSVインポートは環境変数(フラグ)で明示的に有効化したときだけ動きます。この安全設計のおかげで、まずは読み取り専用で安心して試せます。
前提と準備
必要なもの
- Node.js 22.15 以上(手動セットアップの前提)
- blastengine アカウント(無料トライアル可・クレジットカード登録不要。トライアルでも MCP は利用できます)
- Claude Code(CLI)
ログインIDとAPIキーの取得
blastengine の管理画面にログインし、次の2つを控えます。
- ログインID … 画面右上の「アカウント管理」→「現在の契約者情報」で確認
- APIキー … 画面右上の歯車マーク「設定」→「APIキー確認・再発行」で確認
APIキーは他人に見せない・SNSやチャットに貼らないでください。後述しますが、.mcp.json に直書きせず環境変数から渡すのが安全です。
認証の仕組み(トークンは手元で生成される)
このサーバーは、ログインIDとAPIキーから blastengine の Bearer トークンをローカルで生成します(login_id + api_key の SHA-256 を小文字 hex 化し、それを Base64 エンコード)。この処理はプロセス内で完結し、トークン・本文・宛先はログに出力されません。すでにトークンを持っている場合は BLASTENGINE_BEARER_TOKEN を直接渡すこともでき、設定時はそちらが優先されます。
導入手順
1. クローンしてビルドする
git clone https://github.com/rakus-lc/blastengine-mcp.git
cd blastengine-mcp
npm install
npm run build
npm run build に成功すると、stdio のエントリポイント dist/index.js が生成されます。Claude Code から起動するのはこのファイルです。以降で使うので、絶対パスを控えておきます(例:/Users/you/src/blastengine-mcp/dist/index.js)。
2. Claude Codeに登録する
登録には2通りあります。まずスコープを押さえておきましょう。
| スコープ | 保存先 | 使いどころ |
|---|---|---|
local(既定) |
~/.claude.json(現在のプロジェクトのみ) |
自分の手元だけで試す |
project |
プロジェクト直下の .mcp.json(Git 管理対象) |
チームで共有する |
user |
~/.claude.json(全プロジェクト共通) |
どのリポジトリでも使いたい |
方法A:claude mcp add(手早い)
-- の後ろに起動コマンドを書きます。環境変数は --env(または -e)で複数渡せます。
claude mcp add blastengine \
--scope user \
--env BLASTENGINE_LOGIN_ID=あなたのログインID \
--env BLASTENGINE_API_KEY=あなたのAPIキー \
--env BLASTENGINE_ENABLE_SEND=false \
--env BLASTENGINE_ENABLE_BULK=false \
--env BLASTENGINE_ENABLE_CSV_IMPORT=false \
-- node /absolute/path/to/blastengine-mcp/dist/index.js
-- より後ろ(node dist/index.js)はサーバーへそのまま渡されます。まずは送信系フラグをすべて false のままにしておくのが安全です。
方法B:.mcp.json(チーム共有向け・APIキーは環境変数展開)
プロジェクトで共有するなら project スコープの .mcp.json が便利ですが、このファイルは Git にコミットされるため、APIキーを直書きしてはいけません。.mcp.json の env は ${VAR} / ${VAR:-default} 形式の展開に対応しているので、機微な値はシェルの環境変数から注入します。
{
"mcpServers": {
"blastengine": {
"type": "stdio",
"command": "node",
"args": ["/absolute/path/to/blastengine-mcp/dist/index.js"],
"env": {
"BLASTENGINE_LOGIN_ID": "${BLASTENGINE_LOGIN_ID}",
"BLASTENGINE_API_KEY": "${BLASTENGINE_API_KEY}",
"BLASTENGINE_ENABLE_SEND": "${BLASTENGINE_ENABLE_SEND:-false}",
"BLASTENGINE_ENABLE_BULK": "${BLASTENGINE_ENABLE_BULK:-false}",
"BLASTENGINE_ENABLE_CSV_IMPORT": "${BLASTENGINE_ENABLE_CSV_IMPORT:-false}"
}
}
}
}
ログインIDとAPIキーは、.zshrc などで(あるいはその場で)シェルに export しておきます。
export BLASTENGINE_LOGIN_ID="あなたのログインID"
export BLASTENGINE_API_KEY="あなたのAPIキー"
こうすれば、リポジトリには「blastengine サーバーを使う」という設定だけが残り、鍵は各自の環境に留まります。認証情報はリポジトリや .env にコミットしないでください。
3. 送信系フラグの考え方
参照系(配信検索・ログ・使用量など)は、認証情報さえあれば常時使えます。送信系は次のフラグを true にしたときだけ有効になります。
| 環境変数 | 既定 | 有効化される機能 |
|---|---|---|
BLASTENGINE_ENABLE_SEND |
false |
トランザクションメール送信 |
BLASTENGINE_ENABLE_BULK |
false |
一斉配信(下書き・宛先登録・プレビュー・確定) |
BLASTENGINE_ENABLE_CSV_IMPORT |
false |
CSV からの宛先一括インポート(ENABLE_BULK と併用) |
最初はすべて false のまま参照系で動作確認し、送信が必要になった段階で、最小限のフラグだけを有効化するのがおすすめです。
4. 動作確認
登録できているかを確認します。
claude mcp list # 登録済みサーバーと接続状態
claude mcp get blastengine # このサーバーの設定と状態
Claude Code のセッション内では /mcp で、接続中のサーバーと利用可能なツール一覧を確認できます。あとは参照系の指示を出してみます。
今月のblastengineの利用状況を教えて
先週の配信結果を一覧で見せて
初回はツール実行の許可を求められるので、許可すると blastengine からデータを取得して答えます。ここまで動けば導入成功です。
社内プロキシ(HTTPS検査)でエラーが出るとき
HTTPS 検査プロキシ環境では、Node.js が既定で社内ルート CA を信頼せず、API 呼び出しが SELF_SIGNED_CERT_IN_CHAIN(または fetch failed)で失敗することがあります。その場合は、OS の証明書ストアを Node.js に信頼させます。
手軽なのは、起動引数に --use-system-ca を付ける方法です。このフラグは Node.js 22.15 から使えるので、サーバーの最低要件(22.15)でも確実に効きます。
-- node --use-system-ca /absolute/path/to/blastengine-mcp/dist/index.js
環境変数で指定したい場合は NODE_USE_SYSTEM_CA=1 を使えます。公式マニフェストもこの方式です。ただし 22.x 系ではこの環境変数は 22.19.0 以降でしか効かない点に注意してください。22.15〜22.18 を使うなら、上の --use-system-ca フラグを使うか、Node.js を 22.19 以上、または最新 LTSに上げてください。
"env": {
"NODE_USE_SYSTEM_CA": "1"
}
これでも解決しない場合は、組織のルート証明書(PEM)を明示指定します。
"env": {
"NODE_EXTRA_CA_CERTS": "/path/to/corporate-ca.pem"
}
トラブルシューティング
| 症状 | 原因と対処 |
|---|---|
missing_credentials |
BLASTENGINE_LOGIN_ID と BLASTENGINE_API_KEY、または BLASTENGINE_BEARER_TOKEN が渡っていない。${VAR} 展開なら export 済みか確認 |
send_disabled / bulk_disabled / csv_import_disabled
|
その機能が無効。対応する BLASTENGINE_ENABLE_* を true にして再起動 |
SELF_SIGNED_CERT_IN_CHAIN / fetch failed
|
社内プロキシが原因。上記「社内プロキシ」を参照(--use-system-ca など) |
/mcp に blastengine が出ない・接続できない |
command/args がビルド済みの dist/index.js を指しているか、npm run build 済みかを確認(stdout は MCP 通信専用、診断は stderr) |
| 参照系でも認証エラー | ログインID/APIキーの綴りや前後の空白を確認(参照系でも認証情報は必須) |
トライアル利用時の注意
無料トライアルでも MCP は使えますが、配信可能アドレスの登録は最大5件までで、登録していないアドレス宛には配信できません。送信テストをするときは、SPF・DKIM・DMARC を設定済みの自社ドメインを送信元に使うのが安全です。有料プランは月額3,000円〜です。
まとめ
blastengine MCPサーバーは、dist/index.js をビルドして Claude Code に stdio サーバーとして登録するだけで導入できます。ポイントは3つです。
- 登録は
claude mcp addか.mcp.json。共有する場合はAPIキーを直書きせず${VAR}展開で環境変数から渡す - 送信系は既定で無効。まず参照系で動作確認し、必要なフラグだけを有効化する
- 社内プロキシ環境では
--use-system-ca(環境変数NODE_USE_SYSTEM_CA=1は Node.js 22.19 以上)で証明書を通す
導入できたら、次は全15ツールを MCP Inspector で検証する記事で、それぞれのツールが何を受け取り何を返すかを確認してみてください。
なお、「こういう機能がほしい」といった要望や使ってみての感想は、以下のアンケートフォームから送ると開発チームに届くみたいです。気になった人はどうぞ。
https://docs.google.com/forms/d/e/1FAIpQLSdNZ9TswUT3JEv3pMHkJGqOvgmsXuKP1smkJiNEsqbTVDwRyg/viewform
※blastengine MCPサーバーは MIT ライセンスで提供され、公式のサポート・保証はありません(不具合報告は GitHub Issue へ)。手順・仕様は執筆時点のものです。