SendGrid Transactional について
SendGrid Transactional は、SendGrid でトランザクションメールを送るチーム向けの MCP サーバーです。送信前の検証と配信トラブルの調査に重点を置き、マーケティング API は対象外です。
主な機能
- 01送信前のリクエスト検証
- 02事前チェック通過後の送信
- 03メールアクティビティとログの確認
- 04抑制リストの診断と管理
- 05テンプレート、Webhook、配信設定の管理
活用シーン
- 01送信前に送信者、テンプレート、宛先を確認
- 02受理後に未配信となったメールを追跡
- 03バウンス、ブロック、迷惑メール、403 エラーを調査
MCP 対応
SendGrid の送信、診断、テンプレート、Webhook、設定を操作するツールを MCP クライアントに公開します。stdio と Streamable HTTP に対応します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
npx -y @neschadin/sendgrid-mcpSENDGRID_API_KEYシークレットSendGrid API key (SG....)SENDGRID_FROM_EMAILDefault From address. Must be a verified sender.SENDGRID_FROM_NAMEDefault From display nameSENDGRID_REGIONglobal (default) or euREAD_ONLYWhen true, send and mutating tools return an error before any SendGrid requestローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
SendGrid MCP サーバー
このサーバーは、トランザクションメールの送信と配信を対象としており、SendGrid API 全体を網羅するものではありません。
シンプルな SendGrid MCP では、POST /v3/mail/send をひとつの呼び出しとして扱い、残りのツールは連絡先、リスト、キャンペーンに割り当てます。ここでは、そうしたマーケティング API は対象外です。ツールは、SendGrid が独自の配信トラブルシューティングで求めるチェックに沿っています。
- 送信前。
sendgrid_validate_send_requestは、/v3/mail/sendのペイロード、ダイナミックテンプレートのバージョンが有効かどうか、送信者の本人確認(ドメイン認証または確認済みの送信者)、リンクブランディング、送信時の ASM グループを含む受信者の抑制設定、DMARC 警告リスト(GET /v3/verified_senders/domains)、およびsend_atが未来の時刻かつ72時間以内であることを確認します。sendgrid_send_with_preflightは、そのレポートにブロッカーがない場合に限り送信します。サンドボックスモードではペイロードを受け付けますが、配信は行いません。 - 受け付け後。 レスポンスヘッダーの
x-message-idはmsg_idではありません。これをxMessageIdとして渡すと、検索ではmsg_id LIKE '<id>%'が組み立てられ、その後sendgrid_get_message_activityがイベントチェーン(reason、bounce_type、asm_group_id、outbound_ip)を読み取ります。Email Activity には実際のオフセットがありません。Activity が 403/404 を返す場合、またはリージョンがeuで Activity が空の場合は、to_emailの一致条件を使って Email Logs(POST /v3/logs)を使用してください。Logs ではmsg_id、from_email、LIKEは拒否されます。 - メールが届かなかった場合。
sendgrid_check_suppressionとsendgrid_triage_delivery_issueは、バウンス、ブロック、スパム、無効なアドレス、全体の配信停止、ASM グループを対象とします。sendgrid_delete_suppressionはエントリーをひとつ解除します。sendgrid_classify_sendgrid_errorとsendgrid_get_scopesは 403 の原因を説明します。一時停止またはキャンセルされたスケジュール済みバッチは一覧表示されます。send_atを設定しただけのバッチは、一時停止またはキャンセルするまでその一覧に表示されません。 - 送信を支える仕組み。 ダイナミックテンプレート(一括名称変更および非アクティブなバージョンの整理を含む)、Event Webhook の作成/更新/テストと、任意のローカルレシーバー、さらに配信に影響するコンソール設定(ドメイン、リンクブランディング、TLS の強制、メールとトラッキングの設定、アラート、インバウンド解析)に対応します。
インストール:bunx --no-env-file x @neschadin/sendgrid-mcp。
カタログ全体と運用手順書:MCP_TOOLS.md。
このプロジェクトはコミュニティによって保守されており、Twilio SendGrid とは提携、推奨、後援関係にありません。
要件
- Bun ≥ 1.4.3
- 呼び出すツールのスコープを持つ SendGrid API キー。通常、キーは
SG.で始まります。それ以外のプレフィックスの場合は警告がログに記録されるだけです SENDGRID_FROM_EMAILに設定する、確認済みの送信者アドレス- MCP クライアント(Cursor、Claude Desktop、VS Code など)
ひとつのプロセスにつき API キーはひとつです。ホスト型インスタンスを複数のテナントで共有しないでください。
設定
必須
| 変数 | 説明 |
|---|---|
SENDGRID_API_KEY | SendGrid API キー |
SENDGRID_FROM_EMAIL | デフォルトの From アドレス(確認済みの送信者) |
SendGrid
| 変数 | デフォルト | 説明 |
|---|---|---|
SENDGRID_FROM_NAME | SendGrid MCP | デフォルトの差出人表示名 |
SENDGRID_REGION | global | global または eu(大文字と小文字を区別しません)。eu では https://api.eu.sendgrid.com/v3 を使用し、Activity が空の場合は Email Logs にフォールバックします |
SENDGRID_API_BASE_URL | リージョンに準拠 | API ホストを上書きします。https:// または http:// |
SENDGRID_ON_BEHALF_OF | — | デフォルトの on-behalf-of ヘッダー:サブユーザー名、または account-id <id> |
READ_ONLY | false | true にすると、リクエストを送信する前に送信ツールと変更を伴うツールをブロックします |
SENDGRID_MCP_LOG_LEVEL | info | debug、info、warn、または error |
すべてのツールは onBehalfOf も受け付けます。値を "parent" にすると、その呼び出しでは SENDGRID_ON_BEHALF_OF をスキップします。sendgrid_list_subusers でサブユーザーを一覧表示できます(親キーにそのスコープが必要です。このキーでは 403 が返される場合があります)。
ハンドシェイクの instructions には、上記のリージョン、API ベース、差出人アドレス、ワークフローが繰り返し記載されます。配列要素とオブジェクトメンバーの合計が 10000 を超えるツール呼び出しは拒否されます。結果内の oauth_client_secret と api_key の値は、長さを示すマーカーに置き換えられます。
リモート HTTP
stdio の場合は MCP_TRANSPORT を設定しないでください。MCP_TRANSPORT=http に設定すると、/mcp で Streamable HTTP を提供します(/health は認証不要です)。
| 変数 | デフォルト | 説明 |
|---|---|---|
MCP_HTTP_HOST | 127.0.0.1 | バインドアドレス |
MCP_HTTP_PORT | 3000 | ポート |
MCP_AUTH_MODE | token | token または none。バインドアドレスがループバックでない場合、none は拒否されます |
MCP_AUTH_TOKEN | — | ベアラートークン。token モードで必須 |
MCP_ALLOWED_HOSTS | ループバック名 | コンマ区切りの Host 許可リスト。ループバック以外では必須 |
MCP_ALLOWED_ORIGINS | ループバック名 | コンマ区切りの Origin 許可リスト。Origin がない場合は許可されます |
MCP_TLS_KEY_FILE | — | TLS キー。MCP_TLS_CERT_FILE と併せて設定してください |
MCP_TLS_CERT_FILE | — | TLS 証明書 |
MCP_TRUST_PROXY | false | 独自の TLS プロキシの背後にある場合に限り、ループバック以外での平文 HTTP を許可します |
ローカルイベント Webhook レシーバー
SENDGRID_EVENT_WEBHOOK_PORT が設定されるまで無効です。バッファーはメモリ上にあり(デフォルトではイベント 5000 件)、プロセスの終了時に破棄されます。
| 変数 | デフォルト |
|---|---|
SENDGRID_EVENT_WEBHOOK_HOST | 0.0.0.0 |
SENDGRID_EVENT_WEBHOOK_PATH | /sendgrid/events |
SENDGRID_EVENT_WEBHOOK_HEALTH_PATH | /sendgrid/events/health |
SENDGRID_EVENT_WEBHOOK_MAX_EVENTS | 5000 |
SENDGRID_EVENT_WEBHOOK_VERBOSE | false |
SENDGRID_EVENT_WEBHOOK_REQUIRE_SIGNATURE | false |
SENDGRID_EVENT_WEBHOOK_PUBLIC_KEY | 署名が必須の場合に必要です |
SendGrid Event Webhook の URL をトンネルに設定します。例:https://<ngrok-host>/sendgrid/events。受信した内容は sendgrid_get_received_webhook_events と sendgrid_get_webhook_receiver_status で確認できます。SendGrid 側の Webhook の作成またはテストには sendgrid_manage_event_webhook を使用します。
MCP クライアントの設定
Cursor
mcp.json.example。--no-env-file を指定すると、Bun がクライアントの cwd にある .env も読み込むのを防げます。~/.cursor/mcp.json の envFile には絶対パスを指定する必要があります。
{
"mcpServers": {
"sendgrid": {
"command": "bunx",
"args": ["--no-env-file", "x", "@neschadin/sendgrid-mcp"],
"envFile": "${workspaceFolder}/.env"
}
}
}
サーバープロセスを MCP_TRANSPORT=http で起動した後のリモート HTTP:
{
"mcpServers": {
"sendgrid": {
"url": "https://mcp.example.com/mcp",
"headers": {
"Authorization": "Bearer <MCP_AUTH_TOKEN>"
}
}
}
}
Claude Desktop
envFile は使用しません。デスクトップの cwd はリポジトリではないため、--env-file には絶対パスを指定します。
{
"mcpServers": {
"sendgrid": {
"command": "bunx",
"args": [
"--no-env-file",
"--env-file=/absolute/path/.env",
"x",
"@neschadin/sendgrid-mcp"
]
}
}
}
MCP の設定を変更した後は、クライアントを再起動してください。
安全性
- 送信ツールは実際のメールをキューに登録する場合があります。
confirmTokenの入力は求めません。sendgrid_send_with_preflightを使用するか、READ_ONLY=trueを設定してください。 - SendGrid を変更するツール(テンプレート、抑制設定、Webhook、ドメイン、設定、予約送信の一時停止/キャンセル)には、
confirmToken"CONFIRM"が必要です。 READ_ONLY=trueを設定すると、HTTP 呼び出しの前に送信とこれらの変更の両方がブロックされます。- Email Activity(
/v3/messages)には、Email Activity アドオンが必要な場合があります。
開発
git タグ vX.Y.Z は、package.json の version および server.json の 2 つのバージョンフィールドと一致する必要があります。このタグを作成するとテストが実行され、GitHub Release が作成され、@neschadin/sendgrid-mcp が npm に公開された後、io.github.Neschadin/sendgrid-mcp が MCP レジストリに公開されます。リリースにバイナリーアセットは含まれません。プレリリースタグ(vX.Y.Z-...)は next dist-tag を付けて npm に公開され、MCP レジストリへの公開はスキップされ、GitHub ではプレリリースとしてマークされます。
git clone https://github.com/Neschadin/sendgrid-mcp.git
cd sendgrid-mcp
bun install
bun run dev # stdio MCP; loads .env
bun run lint
bun run typecheck
bun run smoke
bun test
bun run inspect
ドキュメント
- MCP_TOOLS.md — ツール、運用手順書、リスクマトリックス
- SendGrid API リファレンス
- 開発者向け SendGrid
ライセンス
MIT — LICENSE を参照してください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。