mcpField
S
SendGrid Transactional

SendGrid Transactional

ローカル
github.com/Neschadinコミュニケーション12 週間前に更新

SendGrid Transactional について

SendGrid Transactional は、SendGrid でトランザクションメールを送るチーム向けの MCP サーバーです。送信前の検証と配信トラブルの調査に重点を置き、マーケティング API は対象外です。

主な機能

  1. 01送信前のリクエスト検証
  2. 02事前チェック通過後の送信
  3. 03メールアクティビティとログの確認
  4. 04抑制リストの診断と管理
  5. 05テンプレート、Webhook、配信設定の管理

活用シーン

  1. 01送信前に送信者、テンプレート、宛先を確認
  2. 02受理後に未配信となったメールを追跡
  3. 03バウンス、ブロック、迷惑メール、403 エラーを調査

MCP 対応

SendGrid の送信、診断、テンプレート、Webhook、設定を操作するツールを MCP クライアントに公開します。stdio と Streamable HTTP に対応します。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"neschadin-sendgrid": {
"command": "npx",
"args": [
"-y",
"@neschadin/sendgrid-mcp"
],
"env": {
"SENDGRID_API_KEY": "<SENDGRID_API_KEY>",
"SENDGRID_FROM_EMAIL": "<SENDGRID_FROM_EMAIL>",
"SENDGRID_FROM_NAME": "<SENDGRID_FROM_NAME>",
"SENDGRID_REGION": "<SENDGRID_REGION>",
"READ_ONLY": "<READ_ONLY>"
}
}
}
}
起動コマンドnpx -y @neschadin/sendgrid-mcp
設定が必要な環境変数
SENDGRID_API_KEYシークレットSendGrid API key (SG....)
SENDGRID_FROM_EMAILDefault From address. Must be a verified sender.
SENDGRID_FROM_NAMEDefault From display name
SENDGRID_REGIONglobal (default) or eu
READ_ONLYWhen true, send and mutating tools return an error before any SendGrid request

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npm@neschadin/sendgrid-mcp3.0.3

ツール

ツール一覧はまだ取得されていません

ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。

詳細

SendGrid

SendGrid MCP サーバー

このサーバーは、トランザクションメールの送信と配信を対象としており、SendGrid API 全体を網羅するものではありません。

シンプルな SendGrid MCP では、POST /v3/mail/send をひとつの呼び出しとして扱い、残りのツールは連絡先、リスト、キャンペーンに割り当てます。ここでは、そうしたマーケティング API は対象外です。ツールは、SendGrid が独自の配信トラブルシューティングで求めるチェックに沿っています。

  1. 送信前。 sendgrid_validate_send_request は、/v3/mail/send のペイロード、ダイナミックテンプレートのバージョンが有効かどうか、送信者の本人確認(ドメイン認証または確認済みの送信者)、リンクブランディング、送信時の ASM グループを含む受信者の抑制設定、DMARC 警告リスト(GET /v3/verified_senders/domains)、および send_at が未来の時刻かつ72時間以内であることを確認します。sendgrid_send_with_preflight は、そのレポートにブロッカーがない場合に限り送信します。サンドボックスモードではペイロードを受け付けますが、配信は行いません。
  2. 受け付け後。 レスポンスヘッダーの 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 は拒否されます。
  3. メールが届かなかった場合。 sendgrid_check_suppression と sendgrid_triage_delivery_issue は、バウンス、ブロック、スパム、無効なアドレス、全体の配信停止、ASM グループを対象とします。sendgrid_delete_suppression はエントリーをひとつ解除します。sendgrid_classify_sendgrid_error と sendgrid_get_scopes は 403 の原因を説明します。一時停止またはキャンセルされたスケジュール済みバッチは一覧表示されます。send_at を設定しただけのバッチは、一時停止またはキャンセルするまでその一覧に表示されません。
  4. 送信を支える仕組み。 ダイナミックテンプレート(一括名称変更および非アクティブなバージョンの整理を含む)、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_KEYSendGrid API キー
SENDGRID_FROM_EMAILデフォルトの From アドレス(確認済みの送信者)
SendGrid
変数デフォルト説明
SENDGRID_FROM_NAMESendGrid MCPデフォルトの差出人表示名
SENDGRID_REGIONglobalglobal または 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_ONLYfalsetrue にすると、リクエストを送信する前に送信ツールと変更を伴うツールをブロックします
SENDGRID_MCP_LOG_LEVELinfodebug、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_HOST127.0.0.1バインドアドレス
MCP_HTTP_PORT3000ポート
MCP_AUTH_MODEtokentoken または 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_PROXYfalse独自の TLS プロキシの背後にある場合に限り、ループバック以外での平文 HTTP を許可します
ローカルイベント Webhook レシーバー

SENDGRID_EVENT_WEBHOOK_PORT が設定されるまで無効です。バッファーはメモリ上にあり(デフォルトではイベント 5000 件)、プロセスの終了時に破棄されます。

変数デフォルト
SENDGRID_EVENT_WEBHOOK_HOST0.0.0.0
SENDGRID_EVENT_WEBHOOK_PATH/sendgrid/events
SENDGRID_EVENT_WEBHOOK_HEALTH_PATH/sendgrid/events/health
SENDGRID_EVENT_WEBHOOK_MAX_EVENTS5000
SENDGRID_EVENT_WEBHOOK_VERBOSEfalse
SENDGRID_EVENT_WEBHOOK_REQUIRE_SIGNATUREfalse
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

ドキュメント

ライセンス

MIT — LICENSE を参照してください。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。