recon-kit-mcp について
recon-kit-mcpは、セキュリティエンジニアやコーディングエージェント向けの読み取り専用ネットワーク調査MCPサーバーです。DNS、TLS、HTTPの安全性、サブドメイン、ポートを調べ、構造化JSONと評価結果を返します。許可された対象の評価に使用します。
主な機能
- 01DNS・TLS・HTTPの総合調査レポート
- 02証明書、プロトコル、既知の脆弱性を確認
- 03セキュリティヘッダー、Cookie、CORSを監査
- 04サブドメインの発見と乗っ取りリスクの確認
- 05Web技術の特定と単一ホストのポートスキャン
活用シーン
- 01許可されたドメインの総合レポートを作成
- 02メールセキュリティとDNSレコードを確認
- 03WebサイトのTLS、ヘッダー、Cookieを監査
- 04サブドメイン、技術スタック、開放ポートを把握
MCP 対応
MCP クライアントに読み取り専用のネットワーク・セキュリティ調査ツールを公開し、構造化JSONと評価結果を返します。監査を案内するsecurity_reconプロンプトも備えています。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
recon-mcp
英語 | 繁體中文
AI コーディングエージェント(Claude Code、Codex、Cline、およびあらゆる MCP クライアント)に、安全で構造化されたネットワークおよびセキュリティの偵察ツールを提供する MCP サーバーです。
ほとんどの MCP サーバーは CRUD API をラップしています。一方、recon-mcp は、エンジニアが資産を調査するときに利用する読み取り専用の偵察機能を提供し、評価付きの明確な JSON を返します。そのため、エージェントはコンソール出力を解析する代わりに、結果をもとに推論できます。
⚠️ 許可された用途に限ります。 これらのツールは、ご自身が所有する、または評価する明示的な書面による許可を得た資産のセキュリティテスト、CTF の練習、および教育目的で使用してください。許可なくサードパーティのインフラストラクチャを対象にしないでください。このソフトウェアの使用方法については、利用者が責任を負います。
ツール
| ツール | 機能 |
|---|---|
recon_report | まずはこちらから。 1 回の呼び出しで DNS、TLS、HTTP ヘッダーをまとめて確認し、総合評価を表示 |
dns_recon | DNS + WHOIS + メールセキュリティ(SPF/DMARC/DKIM)を評価 |
subdomain_enum | DNS ブルートフォースや Certificate Transparency ログを使ってサブドメインを検出 |
subdomain_takeover | 既知のサービスを対象に、サブドメインの CNAME 切れによる乗っ取りリスクを確認 |
tls_check | 証明書、プロトコル、暗号スイート、既知の TLS 脆弱性を評価 |
http_headers_audit | HTTP セキュリティヘッダー(CSP、HSTS、X-Frame-Options、…)を評価 |
cookie_audit | リダイレクトチェーンと Cookie フラグ(Secure / HttpOnly / SameSite)を確認 |
cors_check | CORS ポリシーを調査し、任意の Origin の反射やワイルドカードの誤用を検出 |
tech_detect | 1 回の GET で Web スタック(サーバー、CDN/WAF、言語、フレームワーク、CMS、JS)をフィンガープリント |
http_methods_audit | サーバーが許可する HTTP メソッドを報告し、リスクを評価(TRACE/PUT/DELETE) |
well_known_audit | security.txt(RFC 9116)と robots.txt を取得して解析 |
ip_info | ホストを名前解決し、RDAP を使って IP 情報(所有者、国、CIDR、悪用報告先)を補足 |
port_scan | 1 台のホストの TCP ポートスキャン(呼び出しあたり最大 1024 ポート)、開いているポートとサービスを表示 |
例
エージェントに 「example.com のセキュリティ偵察レポートを実行して」 と尋ねるだけです。エージェントは recon_report を 1 回呼び出し、対応に使える評価付きの概要を取得します。
{
"domain": "example.com",
"overall_grade": "F",
"summary": "Overall posture F: email A, TLS B, headers F; 13 actionable issue(s).",
"components": {
"email": { "grade": "A", "issues": [] },
"tls": { "grade": "B", "issues": [] },
"headers": { "grade": "F", "issues": [
{ "severity": "high", "label": "Missing Content-Security-Policy", "detail": "CSP not set; cannot restrict resource load sources" }
] }
}
}
特定の領域について詳しく知りたい場合、エージェントは dns_recon、subdomain_enum、subdomain_takeover、tls_check、http_headers_audit、cookie_audit、cors_check、tech_detect、http_methods_audit、well_known_audit、ip_info、または port_scan を直接呼び出せます。
インストール
Python ≥ 3.10 が必要です。Linux、macOS、Windows で動作します(CI でテスト済み)。
推奨 — クローン不要、uv 経由:
uvx recon-kit-mcp
またはソースからインストール(開発向け):
git clone https://github.com/nan786521/recon-mcp
cd recon-mcp
python -m venv .venv
# Windows
.venv\Scripts\activate
# macOS / Linux
source .venv/bin/activate
pip install -e .
Claude Code での使用
サーバーを追加します(stdio トランスポート)。uvx を使えば、絶対パスは不要です。
claude mcp add recon -- uvx recon-kit-mcp
または、任意の MCP クライアント設定に手動で追加します。
{
"mcpServers": {
"recon": {
"command": "uvx",
"args": ["recon-kit-mcp"]
}
}
}
(ソースをチェックアウトした場合は、代わりにコマンドを /absolute/path/to/.venv/bin/recon-kit-mcp に指定してください。)
あとは 「example.com のセキュリティ偵察レポートを実行して」 と尋ねるだけです。または、「example.com のメールセキュリティを確認して」 のように、特定の領域を対象にできます。
サーバーには security_recon プロンプトも含まれています。クライアントのプロンプトメニューから選択し、ドメインを指定すると、重大度順に案内する監査を実行できます。
ツールリファレンス
recon_report(domain, timeout?) -> dict
DNS/メール、TLS、HTTP ヘッダー、Web スタック(tech_detect)、および最上位ドメインの
サブドメイン乗っ取りチェックをまとめて実行し、overall_grade(最も評価の低い
コンポーネントと同じ評価。進行中の乗っ取りが見つかった場合は F が上限)、1 行の
summary、components(email/tls/headers。それぞれの grade と、対処可能な
issues を含む)、tech セクション(検出されたテクノロジーと、バージョンが公開されて
いる場合はその情報)、および最上位ドメインがリスクにさらされている場合の
takeover セクションを返します。速度を優先して、TLS チェックには高速なシングル
ハンドシェイクを使用します。暗号スイート/脆弱性の完全な分析には tls_check を
呼び出してください。最初に使うのに最適なツールです。詳細な生データについては、
以下のツールを使用してください。
dns_recon(domain, checks?, timeout?) -> dict
- records — A、AAAA、MX、NS、TXT、SOA、CNAME、CAA レコード
- whois — 解析済みの登録情報フィールドと、未加工の WHOIS テキスト
- email — SPF、DMARC、DKIM の状態に加え、参考情報として MTA-STS、
TLS-RPT、BIMI、DNSSEC のシグナル、および評価付きの
assessment(A~F の評価、概要、深刻度と推奨される修正方法を含む各チェックの結果)。 参考情報のシグナルは結果として表示されますが、SPF/DKIM/DMARC の総合評価には 影響しません。
checks には ["records", "whois", "email"] の任意のサブセットを指定します。省略すると、
すべて実行します。
subdomain_enum(domain, wordlist?, source="dns", timeout?) -> dict
2 つの相補的なソースからサブドメインを検出します。
source="dns"(デフォルト)— 候補となるラベルを DNS で解決します。wordlistは カンマ区切りのラベル("www,api,dev")です。省略すると、組み込みの一般的なリストを 使用します。1 回の呼び出しにつき候補は最大 512 件です。解決されたipsを返します。source="ct"— 公開されている Certificate Transparency ログ(crt.sh)を照会し、 そのドメインの名前としてこれまでに証明書が発行されたものをすべて検索します。 完全に受動的な方法で、ワードリストでは見つけられない実在のホストも検出できます。source="both"— 両方を実行して結果を統合し、各ホストを検出したソースを記録します。
sources、found_count、および found を返します(各項目には subdomain、検出した
sources、解決できた場合は ips が含まれます)。
subdomain_takeover(hosts, timeout?) -> dict
サブドメインの ダングリング CNAME 乗っ取りをチェックします。これは、サブドメインが
サードパーティーのサービス(GitHub Pages、S3、Heroku、Azure、Fastly、Shopify など)を
指す CNAME を持ち、そのリソースが削除済み、または未取得のため、誰でもそのリソースを
登録して被害者のサブドメイン上でコンテンツを配信できる状態を指します。各ホストの
CNAME を解決し、乗っ取りの危険が知られているサービスを識別したうえでページを取得し、
プロバイダー固有の「未取得のリソース」を示すフィンガープリント、および/または
CNAME の参照先が解決できなくなっている状態を検出します。hosts にはホスト名を 1 つ、
またはカンマ区切りのリストを指定します(最大 100 件)。読み取り専用です。ホストごとに
DNS ルックアップと HTTP GET を 1 回行います。subdomain_enum と組み合わせて使用して
ください。まず列挙し、その後、対象のホストをチェックします。
checked、vulnerable_count、および results を返します(各項目には host、cname、
service、status、vulnerable、severity、detail が含まれます)。status は
not_applicable、not_vulnerable、potential、dangling_cname、vulnerable の
いずれかです。
tls_check(host, port=443, timeout?) -> dict
grade、certificate(有効性/有効期限/鍵アルゴリズム)、protocols(旧式の SSLv3/
TLS 1.0/1.1 の使用状況)、暗号スイート情報、forward_secrecy、hsts、
vulnerabilities(それぞれ vulnerable フラグを含む)、および findings リストを
返します。
http_headers_audit(host, port?, use_ssl=True, timeout?) -> dict
grade、score、確認されたセキュリティヘッダー、およびヘッダーごとの推奨事項を含む
findings リストを返します。デフォルトでは HTTPS(ポート 443)を使用します。
cookie_audit(host, port?, use_ssl=True, timeout?) -> dict
ホストからリダイレクトチェーンをたどり(最大 10 ホップ。HTTPS から HTTP への
ダウングレードがあれば検出)、確認されたすべての Set-Cookie を Secure、
HttpOnly、SameSite フラグについて監査します。redirect_chain、final_url、
cookies(フラグのみ。値は返しません)、cookie_grade、cookie_score、および
findings リストを返します。
cors_check(host, port?, use_ssl=True, timeout?) -> dict
信頼されていない Origin を指定して GET を1回送信し、
Access-Control-Allow-Origin / -Allow-Credentials の応答を調べます。任意の
Origin を認証情報付きで反映する場合は重大度が高くなります(どのサイトからでも認証済みの応答を読み取れるため)。ワイルドカードや信頼された null オリジンは、これより軽度の問題です。
acao、allows_credentials、reflects_origin、wildcard、severity、
findings を返します。
tech_detect(host, port?, use_ssl=True, timeout?) -> dict
HTTP GET 1回で、Web サイトの背後にある技術スタックを特定します。
応答ヘッダー、設定された Cookie、HTML 本文、および
<meta name="generator"> タグをシグネチャテーブルと照合し、Web
サーバー、リバースプロキシ/CDN、WAF、プログラミング言語、Web フレームワーク、CMS、
JavaScript フレームワーク、アナリティクスを特定します。バージョンが公開されている場合は取得してフラグを付けます(info)。正確なバージョンがわかると既知の CVE を調べやすくなります。読み取り専用です。
status、technology_count、technologies(各項目には name、
category、判明している場合は version、および evidence が含まれます)、バージョン情報の公開を示す
findings リストを返します。
http_methods_audit(host, port?, use_ssl=True, path="/", timeout?) -> dict
サーバーが許可する HTTP リクエストメソッドを報告し、リスクを評価します。有効になっている書き込み/診断用メソッドは攻撃対象領域を広げます。TRACE はクロスサイトトレーシング(XST)を可能にし、アクセス制御が不十分な場合は PUT / DELETE によってファイルのアップロードや削除が可能になることがあります。設計上安全です — 変更を伴うリクエストは送信しません。能動的にプローブするのは OPTIONS、HEAD、TRACE のみです(TRACE は単に内容をエコーします)。PUT / DELETE / PATCH / CONNECT は OPTIONS の Allow ヘッダーから広告されているメソッドとして読み取るだけで、実行することはありません。
grade、score、allow_header、advertised_methods、trace_enabled、
dangerous_methods、各メソッド、重大度、推奨事項を含む findings リストを返します。
well_known_audit(host, timeout?) -> dict
security.txt(RFC 9116。/.well-known/、次に旧パスで取得)と
robots.txt を取得して解析します。security_txt(解析済みフィールド、構造上の
issues、location)と、robots.txt の sitemaps、disallow/allow パス、
user_agents を含む robots_txt を返します。それぞれに present フラグが含まれます。
ip_info(host, timeout?) -> dict
ホストの IP を解決し、公開 RDAP レジストリで検索します(rdap.org のブートストラップを介して適切な RIR を特定します)。ip と
rdap(handle、name、country、cidr、org、abuse_email)を返します。
port_scan(host, ports?, timeout?) -> dict
単一ホストを対象に TCP 接続スキャンを実行します。ports は文字列で、"22,80,443"、範囲を示す "1-1024"、またはその組み合わせを指定できます。省略すると、組み込みの一般的なポート一覧をスキャンします。1回の呼び出しで最大1024ポートに制限されています(単一ホストの偵察用であり、大規模スキャン用ではありません)。
host、ip、scanned、open_count、open_ports(ポート番号とサービス)を返します。評価の許可を得たホストのみをスキャンしてください。
ライセンス
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。