关于 recon-kit-mcp
recon-kit-mcp 是面向安全工程师和编码 Agent 的只读网络侦察 MCP 服务,返回结构化 JSON 和分级结果。它涵盖 DNS、TLS、HTTP 安全配置、子域名及端口等检查,适用于获授权的资产评估。
主要功能
- 01综合 DNS、TLS 与 HTTP 侦察报告
- 02检查证书、协议和已知漏洞
- 03审计安全响应头、Cookie 与 CORS
- 04发现子域名并检查接管风险
- 05识别技术栈并扫描单主机端口
适用场景
- 01对获授权域名生成综合安全报告
- 02检查邮件安全策略及 DNS 记录
- 03审计网站 TLS、响应头和 Cookie
- 04盘点子域名、技术栈与开放端口
MCP 相关
该 MCP 服务向客户端提供只读网络与安全侦察工具,结果以结构化 JSON 和分级评估呈现。服务还提供用于引导审计的 security_recon 提示词。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
recon-mcp
英语 | 繁體中文
一个 MCP 服务,为 AI 编码 Agent — Claude Code、Codex、Cline 以及任何 MCP 客户端 — 提供安全、结构化的网络与 安全侦察工具。
大多数 MCP 服务都封装 CRUD API。recon-mcp 则提供工程师调查资产时常用的只读侦察
功能,并返回整洁的 JSON — 附带分级评估 — 让 Agent 能分析结果,而不必解析控制台输出。
⚠️ 仅限授权使用。 这些工具用于测试你拥有或已获得明确书面授权评估的资产、 CTF 练习和教育用途。未经授权,不要将它们用于第三方基础设施。你须对如何使用本软件负责。
工具
| 工具 | 功能 |
|---|---|
recon_report | 从这里开始。 一次调用 → 同时检查 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 | 通过一次 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 | 扫描单个主机的 TCP 端口(每次调用 ≤1024 个端口),列出开放端口和服务 |
示例
只需向你的 Agent 提出请求:“对 example.com 运行安全侦察报告。” 它会调用
recon_report 一次,并获取可供采取行动的分级概览:
{
"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" }
] }
}
}
想深入了解某个领域?Agent 可以直接调用 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)、单行 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
从两个互补来源发现子域:
source="dns"(默认)——通过 DNS 解析候选标签。wordlist是以逗号分隔的标签("www,api,dev");省略时使用内置常见列表。每次调用最多检查 512 个候选项。返回已解析的ips。source="ct"——查询公开的 Certificate Transparency 日志(crt.sh),获取曾为该域名签发证书的所有名称。完全被动;可发现任何词表都无法猜到的真实主机。source="both"——同时运行两种方式并合并结果,记录每个主机被哪些来源发现。
返回 sources、found_count 和 found(每项包含 subdomain、发现该主机的 sources,以及解析成功时的 ips)。
subdomain_takeover(hosts, timeout?) -> dict
检查子域是否存在 悬空 CNAME 接管——即子域的 CNAME 指向第三方服务(GitHub Pages、S3、Heroku、Azure、Fastly、Shopify 等),但其资源已删除或从未被认领,导致任何人都能注册该资源,并在受害方的子域上提供内容。对于每个主机,工具会解析 CNAME、识别易受接管的已知服务、获取页面,并标记服务提供商的“未认领资源”特征和/或已无法解析的 CNAME 目标。hosts 可以是单个主机名或以逗号分隔的列表(最多 100 个)。只读操作——每个主机仅进行 DNS 查询和一次 HTTP GET。可与 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 请求,并检查
Access-Control-Allow-Origin / -Allow-Credentials 响应。反射任意
Origin 并允许凭据的风险极高(任何网站都能读取经过身份验证的响应);通配符或受信任的
null Origin 则属于较低风险问题。
返回 acao、allows_credentials、reflects_origin、wildcard、severity
和 findings。
tech_detect(host, port?, use_ssl=True, timeout?) -> dict
通过一次 HTTP GET 对网站背后的技术栈进行指纹识别。它会将响应头、设置的 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 只会回显),并从 OPTIONS 的 Allow 响应头中读取 PUT / DELETE / PATCH / CONNECT 是否被声明支持,绝不会调用这些方法。
返回 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),每项都包含 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" 或两者混合;省略时则扫描内置的常见端口集合。每次调用最多扫描 1024 个端口(用于单主机侦察,不用于大规模扫描)。
返回 host、ip、scanned、open_count 和 open_ports(端口 +
服务)。仅扫描你有权评估的主机。
许可证
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。