mcpField
E
email-guard-mcp

email-guard-mcp

ローカル
github.com/mlawsonkingセキュリティ11 日前に更新

email-guard-mcp について

email-guard-mcpは、AIエージェントの受信メールと送信メールを検査するMCPサーバーです。パターンベースのインジェクション検知、送信者とドメインの確認に加え、秘密情報や個人データ、配信上の問題も調べます。

主な機能

  1. 01受信メールのインジェクションや乗っ取りパターンを検知
  2. 02送信者認証、ドメイン、リンクを確認
  3. 03送信メールの秘密情報と個人データをスキャン
  4. 04配信上の問題と無効な宛先を警告
  5. 05SPF、DMARC、MX、ドメイン状態を確認

活用シーン

  1. 01エージェントがメールを処理する前のリスク評価
  2. 02送信前の情報漏えいチェック
  3. 03ドメイン認証と宛先状態の確認

MCP 対応

MCPクライアントに `scan_inbound`、`scan_outbound`、`check_domain_auth` を提供します。エージェントはメールやドメインを渡し、処理や送信前に構造化された安全確認を受けられます。

設定

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

mcp.json · 共通設定
{
"mcpServers": {
"mlawsonking-email-guard": {
"command": "npx",
"args": [
"-y",
"email-guard-mcp"
]
}
}
}
起動コマンドnpx -y email-guard-mcp

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

パッケージ
npmemail-guard-mcp1.3.0

ツール

3

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
bodystringいいえプレーンテキスト本文。
fromstringいいえ送信者ヘッダー。例:"Jane Doe" <[email protected]>。
htmlstringいいえHTML 本文。
emailstringいいえ生の RFC822 メール(ヘッダー + 本文)。Authentication-Results、Reply-To、Return-Path を含むのはこの形式のみです。
subjectstringいいえ件名。

詳細

email-guard-mcp

メールの安全性を確保する MCP サーバーです。エージェントが受信メールに基づいて動作する前と、送信メールを送る前にチェックします。決定論的で、LLM を使用せず、無料です。

エージェントがメールの読み取りと送信をできるようになると、受信トレイが攻撃対象になります。受信メッセージの本文に埋め込まれた指示でエージェントを乗っ取ろうとする場合があり、これは AI エージェントフィッシングと呼ばれ始めています。送信時には、エージェントが秘密情報を漏らしたり、送信元ドメインがスパムとして判定されるようなメールを送ったりする可能性があります。

インストール

{ "mcpServers": { "email-guard": { "command": "npx", "args": ["-y", "email-guard-mcp"] } } }

ツール

  • scan_inbound:メッセージに基づいて動作する前に実行します。既知のインジェクションや乗っ取りパターン(ゼロ幅文字、双方向テキスト、隠し HTML を使った手口を含む)を照合し、送信者ヘッダー(受信サーバーが報告する SPF、DKIM、DMARC の結果、reply-to と return-path の不一致、表示名と照合する 24 件のブランド名リスト)を比較し、DNS と RDAP で送信者のドメインを検索し(使い捨てドメイン、または過去 30 日以内に登録されたドメインかを確認)、リンクをスコアリングします。判定と固定形式のメタデータを返すため、エージェントは改ざんされている可能性のある生のテキストではなく、それらに基づいて動作します。
  • scan_outbound:送信前に実行します。件名、本文、HTML に対して 22 種類の秘密情報パターン(AWS、GitHub、OpenAI、Anthropic、Google、Slack、Stripe、Twilio、npm、JWT、PEM 秘密鍵ブロック、Azure ストレージキーと SAS トークン、GCP サービスアカウントのキー ID、データベースと ODBC の接続文字列のパスワード、SendGrid、GitLab、Hugging Face、引用符で囲まれた api_key/secret/password/token の代入)と、3 種類の個人識別情報(メールアドレス、米国の SSN、Luhn アルゴリズムで有効と判定されるカード番号)をスキャンし、秘匿化したコピーを返します。また、送信者のレピュテーションを損なう配信上の問題や、配信不能な宛先(使い捨てドメイン、または MX レコードがなく、確実にバウンスする宛先)にもフラグを立てます。
  • check_domain_auth:ドメインまたはアドレスについて、SPF、DMARC、MX、ドメインの登録期間、使い捨てドメインかどうかを確認します。弱い設定か強制設定かを返します。

これらで対応できないこと

インジェクション検出は分類器ではなく、パターン照合です。ルールが作られていない言い回しは検出されません。

ブランドリストでは、表示名に対して部分文字列の照合を行います。"PayPal Security" <[email protected]> は、ドメインに「paypal」が含まれるため検出されません。リストにないブランドも検出されません。

情報漏えいスキャンが認識するのは 15 種類の形式だけで、それ以外は検出しません。DigitalOcean や SendGrid のキー、ベアラー・トークン単体、引用符で囲まれていない password=supersecret123 は、すべて問題なしとして通過します。メールアドレスのルールは逆方向に過剰検出します。本文にアドレスが 1 つでもあると、メッセージは要確認になります。そのため、要確認の結果を情報漏えいと見なす前に、leak.findings を確認してください。

scan_inbound の構造化出力は固定形式ですが、その中の情報はサニタイズされていません。subject、sender.display、sender.from、sender.replyTo、sender.domain、links[].url、links[].host、injection.findings[].match、sender.spoofFlags と reasons の注記文字列は、すべてメールからコピーされています。ここで生成されるのは、判定、スコア、ルール ID、アドバイス文字列のみです。それ以外は攻撃者のテキストのままです。データとして扱ってください。

データは、DNS(SPF、DMARC、MX)、ドメインの登録期間を調べる RDAP、使い捨てドメインリスト、インジェクションおよび秘密情報のルールセットから取得されます。

ルールの更新

このサーバーは約1日に1回、ルールフィードに新しいルールセットがあるか確認し、あれば適用します。リクエストには、問い合わせ元のサーフェス(ここでは facade)と、インストール済みのルールのバージョンの2つが含まれます。マシン ID、ユーザー ID、ファイル名、スキャンした内容などは送信されません。

バンドルは Ed25519 で署名され、このパッケージにコンパイルされた公開鍵を使って検証されるため、どのミラーから配信されたかは関係ありません。署名、スキーマ、または ReDoS チェックに失敗したバンドルは破棄され、既存のルールがそのまま維持されます。--offline を指定すると更新が無効になり、AGENT_GUARDS_NO_FEED=1 または ~/.agent-guards/config.json 内の {"feed": false} でも同様です。バンドル形式と手動での検証方法については、こちらをご覧ください:https://github.com/mlawsonking/MCP/blob/main/rules/README.md

メール認証について、率直に説明します。SPF、DKIM、DMARC の結果は、受信メールサーバーが書き込んだ Authentication-Results ヘッダーから読み取ります。このツールは DKIM 署名を検証せず、DKIM の DNS レコードも参照しません。セレクターはドメイン名だけでは特定できないためです。つまり、この値の信頼性はヘッダーを書き込んだ側に依存します。自分のサーバーが受信したメールの場合は有用な指標ですが、信頼できない送信元からの生の .eml ファイルでは、攻撃者が dkim=pass と書き込むだけで済みます。どのケースに該当するかを示す注記が、すべての応答に付いています。同じ入力には常に同じ出力が返されます。https://email-guard-api.vercel.app を呼び出します(変更する場合は EMAIL_GUARD_API を設定してください)。このリポジトリにある6つのエージェントガードのうちの1つです。MIT。

コメント

MCP は初めてですか?

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

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