mcpField
R
recon-kit-mcp

recon-kit-mcp

本地服务
github.com/nan786521安全17 周前更新

关于 recon-kit-mcp

recon-kit-mcp 是面向安全工程师和编码 Agent 的只读网络侦察 MCP 服务,返回结构化 JSON 和分级结果。它涵盖 DNS、TLS、HTTP 安全配置、子域名及端口等检查,适用于获授权的资产评估。

主要功能

  1. 01综合 DNS、TLS 与 HTTP 侦察报告
  2. 02检查证书、协议和已知漏洞
  3. 03审计安全响应头、Cookie 与 CORS
  4. 04发现子域名并检查接管风险
  5. 05识别技术栈并扫描单主机端口

适用场景

  1. 01对获授权域名生成综合安全报告
  2. 02检查邮件安全策略及 DNS 记录
  3. 03审计网站 TLS、响应头和 Cookie
  4. 04盘点子域名、技术栈与开放端口

MCP 相关

该 MCP 服务向客户端提供只读网络与安全侦察工具,结果以结构化 JSON 和分级评估呈现。服务还提供用于引导审计的 security_recon 提示词。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"nan786521-recon-kit": {
"command": "uvx",
"args": [
"recon-kit-mcp"
]
}
}
}
启动命令uvx recon-kit-mcp

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypirecon-kit-mcp0.13.0

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

recon-mcp

英语 | 繁體中文

CI PyPI Python License: MIT

一个 MCP 服务,为 AI 编码 Agent — Claude Code、Codex、Cline 以及任何 MCP 客户端 — 提供安全、结构化的网络与 安全侦察工具。

大多数 MCP 服务都封装 CRUD API。recon-mcp 则提供工程师调查资产时常用的只读侦察 功能,并返回整洁的 JSON — 附带分级评估 — 让 Agent 能分析结果,而不必解析控制台输出。

⚠️ 仅限授权使用。 这些工具用于测试你拥有或已获得明确书面授权评估的资产、 CTF 练习和教育用途。未经授权,不要将它们用于第三方基础设施。你须对如何使用本软件负责。

工具

工具功能
recon_report从这里开始。 一次调用 → 同时检查 DNS、TLS 和 HTTP 标头,并给出总体评级
dns_reconDNS + WHOIS + 电子邮件安全(SPF/DMARC/DKIM),并给出评级
subdomain_enum通过 DNS 暴力枚举和/或 Certificate Transparency 日志发现子域名
subdomain_takeover检查子域名是否存在针对已知服务的悬空 CNAME 接管风险
tls_check证书、协议、密码套件和已知 TLS 漏洞,并给出评级
http_headers_auditHTTP 安全标头(CSP、HSTS、X-Frame-Options、……),并给出评级
cookie_audit重定向链 + Cookie 标志(Secure / HttpOnly / SameSite),并给出评级
cors_checkCORS 策略探测 — 标记任意 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(端口 + 服务)。仅扫描你有权评估的主机。

许可证

MIT

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。