agent-firewall-mcp について
agent-firewall-mcpは、信頼できないコンテンツ、URL、IP、シークレット、個人情報、パスワードを決定論的に検査するMCPサーバーです。LLMではなくパターン照合や外部の評価情報を使い、検出範囲には明示された限界があります。
主な機能
- 01テキストや取得したURLの既知のインジェクションパターンを検査
- 02難読化手法を検出
- 03対応するシークレットと個人情報を検出・マスキング
- 04URLとIPの評価を確認
- 05パスワードを漏えいデータと照合
活用シーン
- 01外部テキストがエージェントに渡る前の検査
- 02信頼できない情報源のURLやIPの確認
- 03テキストに含まれる認証情報や個人情報の検出
- 04パスワードが漏えいデータに含まれるか確認
MCP 対応
コンテンツ、シークレット、URL、IP、パスワードを検査するツールをMCPクライアントに提供します。一部の検査では外部サービスや評価情報を使用します。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
5掲載時のツール一覧 · 2 週間前に更新
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
| url | string | いいえ | テキストの代わりに取得してスキャンするページ。取得処理は SSRF 対策で保護されています。 |
| text | string | いいえ | スキャンするテキスト。 |
詳細
agent-firewall-mcp
すべての外部入力を信頼できないものとして扱う MCP サーバーです。既知のプロンプトインジェクションパターンとテキストを照合し、URL と IP をチェックし、漏えいしたシークレットや PII をスクリーニングし、パスワードが既知の侵害データに含まれていないか確認します。決定論的に動作し、LLM を使用せず、無料です。
エージェントセキュリティの基本ルール(OWASP の LLM01)は、エージェントが外部から読み取るものはすべて、悪意のある可能性があるものとして扱うことです。対象には、Web ページ、ツールの出力、ファイル、ユーザー入力が含まれます。以下は、コンテンツがモデルに届く前、取り込まれる時点でそのためのチェックを行います。
インストール
{ "mcpServers": { "agent-firewall": { "command": "npx", "args": ["-y", "agent-firewall-mcp"] } } }
ツール
scan_content:テキストまたは取得した URL を、既知の 11 種類のプロンプトインジェクションおよびジェイルブレイクパターンに加え、5 種類の難読化チェック(ゼロ幅文字、双方向テキストのトリック、Unicode タグブロック、CSS で隠されたテキスト、HTML コメント内の指示)と照合します。allow、review、block のいずれかと、該当したルール ID を返します。これはパターンマッチャーであり、分類器ではありません。新しい言い回しや言い換えは検出されず、allowは何も一致しなかったことを意味するだけで、コンテンツが安全だという意味ではありません。scan_secrets:テキストを 22 種類のシークレットパターン(AWS アクセスキー ID、GitHub トークン、OpenAI、Anthropic、Google API キー、Slack、Stripe のライブシークレットキー、Twilio、npm トークン、JWT、PEM 秘密鍵ブロック、Azure ストレージキー、SAS トークンと AD クライアントシークレット、GCP サービスアカウントのキー ID と OAuth リフレッシュトークン、データベースと ODBC の接続文字列パスワード、SendGrid、GitLab、Hugging Face、および汎用のkey = "value"形式の代入)と、3 種類の PII パターン(メールアドレス、米国の SSN、Luhn チェック済みのカード番号)に照合します。この一覧にないベンダーの認証情報は、これらの代入形式で記述されていない限り検出されません。また、このルールは限定的です。api-key = "abc12345"は一致しますが、{"api_key": "abc12345"}は一致せず、引用符で囲まれていない値も一致しません。問題のない結果が、テキストに問題がない証明になるわけではありません。検出結果(マスキング済み)と、値を置き換えつつラベルを残した編集済みのコピーを返します。例:api_key = "[REDACTED:Generic Secret Assignment]"。該当する行は削除されず、ドキュメント全体のサニタイズも行われません。PEM ブロックは全体が削除されます。check_url:構造的なヒューリスティック(ホストの punycode、既知の短縮 URL サービス 14 種、悪用されやすい TLD 23 種、IP アドレスを直接指定したホスト、URL 内の認証情報、ブランドに似せたドメイン名)、RDAP によるドメインの登録期間、リダイレクト後の最終 URL を使って URL とドメインの安全性をチェックします。「ブランドに似せたドメイン名」とは部分文字列によるテストです。ホスト名に含まれる 14 個のブランド名のいずれかが登録可能ドメインではない場合に該当します。たとえばpaypal.com.secure-login.tkです。編集距離や同形異字文字は検出しないため、paypa1.comはこのチェックをすり抜けます。再チェックされるのは最終 URL のみで、リダイレクトの各段階ではありません。また、リダイレクト先が別のホストの場合に限り、そのフラグが判定に反映されます。ドメインの登録期間を調べるのは、遷移先のホストではなく、指定したホストです。safe、suspicious、malicious のいずれかを返します。check_ip:Tor の出口ノード(Tor Project の一括出口ノードリスト)、ASN と組織(Team Cymru 経由)、逆引き DNS、組織名がデータセンターに該当しそうかどうか、DNSBL の照会 1 件(Spamhaus ZEN、IPv4 のみ)を対象に、IP のレピュテーションをチェックします。Spamhaus は多くのクラウドリゾルバーからのクエリを拒否するため、照会結果が不確定になることがあります。その場合は注記とともにlisted: nullが返され、スコアには加算されません。判定に影響するのはlisted: trueの場合のみです。そのため、照会結果が不確定な場合の判定は、問題のない場合と同じになります。判定だけでなくblocklist.listedを確認してください。check_password:k-匿名性を利用して、HIBP の Pwned Passwords に対してパスワードをチェックします。平文がサーバーの外に出ることはありません。
ルールの更新
このサーバーは約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 をご覧ください。
データは HIBP、RDAP、Tor Project、Team Cymru、DNS、および厳選されたルールセットから取得します。https://agent-firewall-seven.vercel.app を呼び出します(変更するには AGENT_FIREWALL_API を設定してください)。このリポジトリにある6つのエージェントガードのうちの1つです。MIT。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。