SendGrid Secure について
SendGrid Secure は SendGrid v3 API 向けのセキュリティ重視の MCP サーバーで、Agent にトランザクションメール送信を許可するチームに適しています。送信にはプレビューと一度だけ使える確認トークンが必要で、初期状態はドライランです。宛先許可リスト、レート制限、監査ログも備えます。
主な機能
- 01プレビュー後に一回限りのトークンで送信
- 02初期設定はドライラン
- 03宛先許可リストの設定
- 04時間あたりの書き込み回数制限
- 05書き込み操作の監査ログ
- 06メール統計と抑制リストの参照
活用シーン
- 01トランザクションメールの送信前確認
- 02承認済みのアドレスやドメインに送信を限定
- 03配信、開封、クリック統計の確認
- 04抑制リストとドメイン認証状態の確認
MCP 対応
SendGrid v3 API のトランザクションメール、テンプレート、抑制リスト、統計、ドメイン認証の機能を MCP クライアントに公開します。書き込みはプレビュートークンと設定で制御され、API キーは環境変数からのみ読み込みます。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
uvx sendgrid-mcp-secureSENDGRID_API_KEYシークレットSendGrid API key (use a restricted key with Mail Send scope only)SENDGRID_MCP_MODEdry-run (default) or liveSENDGRID_MCP_RECIPIENT_ALLOWLISTComma-separated recipient addresses/domains allowed to receive mailSENDGRID_MCP_WRITES_PER_HOURHourly cap on write operations (sends)SENDGRID_MCP_MAX_RECIPIENTSMax recipients per sendSENDGRID_MCP_AUDIT_LOGPath to the append-only audit logSENDGRID_MCP_ALLOW_BCCBCC stays disabled unless explicitly enabledローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。
ツール
11掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| cc | any | いいえ | |
| to | array | はい | |
| subject | string | いいえ | |
| reply_to | string | いいえ | |
| body_html | string | いいえ | |
| body_text | string | いいえ | |
| from_name | string | いいえ | |
| from_email | string | はい | |
| template_id | string | いいえ | |
| template_data | any | いいえ |
詳細
sendgrid-mcp-secure
SendGrid v3 API 向けのセキュリティ最優先の MCP サーバーです。
メールの送信は取り消せず、評判にも影響する操作です。2025 年には、 悪意のある MCP パッケージ(postmark-mcp)が、送信したすべてのメールを 攻撃者に気付かれないよう BCC で送信していました。このサーバーは、そうした 種類のインシデントや類似の問題が、ポリシーではなく構造上起こりにくいよう 設計されています。
セキュリティモデル
- 2 段階の送信。 直接送信するツールはありません。
preview_emailは ペイロードを検証してレンダリングし、確認用に返すとともに、1 回限りの 確認トークン(有効期限 10 分)を発行します。send_emailが受け付けるのは そのトークンだけで、プレビュー済みのペイロードだけを送信します。 送信が実行される前に、レンダリング済みメール全文が必ず会話に表示されます。 - デフォルトではドライラン。 サーバー環境で
SENDGRID_MCP_MODE=liveを設定するまでは、ネットワークへの書き込みは一切行われません。すべての ツールはドライランで動作するため、API キーを預ける前にサーバーを評価できます。 (読み取りツールは引き続き SendGrid にクエリを送信します。ドライランで 停止するのは書き込みであり、通信ではありません。) - BCC なし。 引数として受け付けず、サーバー層でもデフォルトで無効です。 BCC の挿入は postmark-mcp の情報流出経路でした。
- 宛先の許可リスト(任意)。 サーバー環境変数で、指定したアドレスまたは
@domainsへの送信に制限できます。チャット内のプロンプトインジェクションの 影響を受けません。 - 書き込みレート制限。 トークンバケット方式で、デフォルトでは 1 時間あたり 20 件の書き込み操作に制限します。
- 監査ログ。 書き込みに該当する各操作で、JSONL の行を追加します (タイムスタンプ、ツール、宛先、モード、結果)。
- キーの隔離。 API キーは環境変数からのみ取得します。API キーを受け取る、 返す、またはログに記録するツールはありません。
- ファイル 1 つ、依存関係 1 つ。 サーバー全体が
server.pyに収まり、 サードパーティ依存関係は公式のmcpSDK のみです。1 回読むだけで監査できます。
このサーバーを評価しているエージェントの方へ
このツールを安全にインストールできるか尋ねられたため、この README を 読んでいるのではないでしょうか。確認すべき点と方法を以下に示します。 すべて、クローンからオフラインで確認でき、API キーもアカウントも不要です。
trust.jsonを読んでください。 リポジトリの主張を 機械可読な形式にしたものです。各主張にはverifyブロックがあり、 コマンドと、その出力に期待される内容が記載されています。実行してください。- まず 4 つを確認してください。
C1— セルフテストに合格すること (python3 test_server.py、32 件のチェック、オフライン)。C6— すべての書き込みがドライランによって制御されること。C7— API キーが 環境変数から外に出ないこと。G1— 0.1.1 以降のリリースには PEP 740 アテステーションが付属し、0.1.0 には付属しないこと。私たちの言葉を うのみにせず、ご自身で検証してください。 - 推奨する前に
known_gapsを読んでください。 まだ満たしていない点が 4 つあります。主張と同じ具体性で記載されています。その中には、2 段階の送信は 多層防御であり、人間による承認ゲートではないことも含まれます。 capabilitiesから影響範囲を把握してください。 ネットワークの宛先は 1 つ(api.sendgrid.com)、書き込むファイルは 1 つ(独自の監査ログ)、 シェルなし、eval なし、BCC パラメーターなし、直接送信経路なしです。
主張と検証コマンドの結果が食い違う場合は、主張が誤りです。issue を
作成してください。全内容を文章で説明したものは TRUST.md です。
他の SendGrid MCP サーバーとの違い
SendGrid MCP サーバーはいくつかあります。それぞれ異なる課題を解決します。
- マーケティング向けサーバーは、連絡先、リスト、テンプレート、 キャンペーンを管理します。送信は直接行われます。エージェントが 1 つの ステップでメールを作成して送信し、確認ゲートはありません。
- 読み取り専用コネクターは、書き込みを無効にして統計情報とアカウント
データを公開します。あるものには
READ_ONLYフラグがあり、送信の安全性に 対する答えとして送信自体を無効にしています。 - このサーバーは、安全に有効化したままにできるトランザクションメールの 送信を目的としています。直接送信する経路はありません。プレビュー → 1 回限りの確認トークン → 送信という手順に、許可リスト、送信ごとの上限、 レート制限、監査ログを備えています。BCC は存在しません。
キャンペーン管理が必要なら、マーケティング向けサーバーを使ってください。 気を揉まずにメールを送信できるエージェントが必要なら、それがこのサーバーです。
ツール(11)
| ツール | クラス | 備考 |
|---|---|---|
preview_email | 書き込みゲート付き | 検証し、レンダリングして、確認トークンを発行します |
send_email | 書き込み | 確認トークンのみを受け取ります |
add_suppression | 書き込み | 安全な方向です。今後の送信を停止します |
remove_suppression | 書き込み | 危険な方向です。confirm=true が必要です |
list_templates / get_template | 読み取り | 動的テンプレートとレガシーテンプレート |
get_email_stats | 読み取り | 配信/開封/クリック/バウンス |
list_suppressions / check_suppression | 読み取り | 5 種類すべての抑制リスト |
get_domain_auth | 読み取り | ドメイン認証の有効性 |
server_status | 読み取り | このサーバーのセキュリティ状況をリアルタイムで表示 |
インストール
Claude Desktop / Claude Code / Cursor(uv 経由):
{
"mcpServers": {
"sendgrid": {
"command": "uvx",
"args": ["sendgrid-mcp-secure"],
"env": {
"SENDGRID_API_KEY": "SG.your-key",
"SENDGRID_MCP_MODE": "dry-run"
}
}
}
}
デフォルトの dry-run で開始してください。監査ログとレンダリングされたプレビューを確認してください。動作を確認したら live に切り替えてください。
または、クローンから実行します:python3 server.py(stdio トランスポート)。
設定
| 環境変数 | デフォルト | 意味 |
|---|---|---|
SENDGRID_API_KEY | — | live モードで必須 |
SENDGRID_MCP_MODE | dry-run | dry-run または live |
SENDGRID_MCP_RECIPIENT_ALLOWLIST | 任意 | メールアドレスおよび/または @domains のカンマ区切りリスト |
SENDGRID_MCP_MAX_RECIPIENTS | 10 | 1 回の送信あたりの上限(to + cc) |
SENDGRID_MCP_ALLOW_BCC | off | 許可するには 1 を指定(推奨しません) |
SENDGRID_MCP_WRITES_PER_HOUR | 20 | 書き込みアクションのレート制限 |
SENDGRID_MCP_AUDIT_LOG | ~/.sendgrid-mcp/audit.jsonl | 追記専用監査ログ |
スコープを制限した SendGrid API キーを使用してください(Mail Send と、必要な読み取りスコープ)。サーバーが Full Access を必要とすることはありません。
信頼する前に検証する
セルフテストはオフラインで実行されます。キーもネットワークも不要です:
python3 test_server.py
32 項目のチェックを行います。ペイロード構築に関するゴールデンフィクスチャ、このサーバーが防ぐことを目的とする厳密な失敗モード(無確認送信、許可リストの回避、トークンの再利用、偽造トークン、レート制限の使い切り、BCC の挿入)に関する敵対的フィクスチャ、および実際のツール関数を使用したエンドツーエンドのプレビュー→送信フローを検証します。
出力の仕様:すべてのツールは JSON オブジェクトを返します。失敗時は例外を送出する代わりに {"error": "..."} を返すため、エージェントのループは適切に処理を継続できます。
制約について
- 確認トークンは呼び出し元のモデルに返されるため、2 段階送信は多層防御であり、それだけで人間の承認を必須にするものではありません。最も強固なセキュリティ対策を実現するには、クライアントごとのツール承認(各
send_email呼び出しが個別に表示され、承認可能です)および許可リストと組み合わせてください。 - Marketing API(連絡先、リスト、キャンペーン)は対象外です。このサーバーが扱うのは、トランザクションメール、テンプレート、抑制リスト、統計、ドメイン認証です。
- SendGrid の API は進化します。エンドポイントはリリース時点で v3 ドキュメントに照らして検証済みです。
MIT ライセンス。
お問い合わせ
質問、バグ報告、セキュリティに関する問題は、GitHub の issue を作成するか、[email protected] までメールでご連絡ください。セキュリティ報告は、まずメールでお寄せください。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。