mcpField
O
OSINT

OSINT

本地服务
github.com/robyroro安全03 周前更新

关于 OSINT

OSINT 是面向安全研究人员和网站运营者的域名、IP 与网站调查 MCP 服务。它整合公开记录、基础设施比较和有限的主动检查,并保留证据及未完成检查的信息。

主要功能

  1. 01单域名与批量侦察
  2. 02比较域名共享基础设施
  3. 03检查网站信息与证据信号
  4. 04查询 DNS、RDAP、TLS 和邮件安全
  5. 05查看证书与网页存档历史

适用场景

  1. 01初步排查可疑网站
  2. 02比较多个域名的基础设施
  3. 03检查域名安全配置
  4. 04查看证书和网页快照历史

MCP 相关

向 MCP 客户端提供调查工具及证据报告。客户端可调用单项查询,也可通过域名和网站报告组合检查。

配置

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

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

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

安装包
pypiosint-mcp-server0.3.0

工具

15

收录的工具列表 · 更新于 2 周前

参数类型必填说明
domainstring是域名,例如“example.com”。完整 URL 也可使用,但只会采用主机名。
include_activeboolean否同时连接到网站以获取 HTTP 标头、TLS 和 MTA-STS 策略。设为 false 可仅使用公共 API 和 DNS。
include_subdomainsboolean否在证书透明度日志(crt.sh)中查询子域名。这是最耗时的部分;设为 false 可将运行时间缩短至几秒,而非最长一分钟。

详细介绍

osint-mcp

tests PyPI

用于调查域名、IP 和网站的 MCP 工具。查询公开记录、比较基础设施、一次检查多个域名,或收集可疑网站背后的详细信息。无需 API 密钥。

调查域名时,我厌倦了在 whois、crt.sh、Wayback Machine 和 Shodan 标签页之间来回切换,所以这个工具可以让模型代劳并汇总结果。

工具

工具功能来源
recon_domain域名概览、重点信息,以及各项检查的覆盖情况RDAP、DNS、电子邮件、CT 日志、HTTP、TLS、RIPEstat 和 InternetDB
recon_batch最多生成十份域名报告,同时运行三个检查;每份报告都会保留数据源故障信息公共 API + DNS;直接检查为可选项
compare_domains查找共享 IP、名称服务器、邮件服务器和注册商,并提供每个匹配项背后的记录DNS + RDAP
investigate_site页面详情、显示的公司 ID、法律/联系页面、注册信息、存档快照、HTTP 和 TLS 检查,并提供具体信号和未执行的检查网站 + 公共数据源
certificate_history证书颁发者、有效日期、相关名称,以及 CT 条目的链接crt.sh
domain_whois注册商、创建/到期时间、名称服务器、滥用联系信息RDAP (rdap.org)
ip_whois网络所有者、CIDR、国家/地区、滥用联系信息、PTRRDAP + 反向 DNS
dns_lookupA、AAAA、CNAME、MX、NS、TXT、SOA、CAA(或自选记录类型)你的解析器或自定义解析器
subdomains在证书透明度日志中发现的子域名crt.sh
waybackURL 的存档快照,支持 example.com/*Wayback CDX API
http_headers状态码、重定向链、响应头、缺失的安全响应头直接请求
shodan_internetdb开放端口、主机名、CPE、已知 CVEShodan InternetDB(免费)
email_securitySPF、DMARC、MTA-STS、TLS-RPT、DKIM,并按 A-F 评级DNS
tls_certificate颁发者、到期时间、SAN、TLS 版本,以及证书无效的原因直接连接
asn_lookup宣告某个 IP 的 AS、所有者,以及该 AS 的所有前缀RIPEstat

http_headers、tls_certificate 和 investigate_site 会直接联系网站。email_security 可以获取其 MTA-STS 策略。recon_domain 默认包含这些直接检查;设置 include_active=false 可跳过 HTTP、TLS 和 MTA-STS 策略获取。

recon_batch 默认关闭直接检查。compare_domains 仅使用公共 API 和 DNS。DNS 查询仍会经过解析器,并可能访问域名的权威名称服务器。不会进行端口扫描、目录暴力破解、表单提交或浏览器脚本运行。

调查

对于单个域名,请从 recon_domain 开始。它的 coverage 字段会说明哪些检查成功、失败、返回了部分数据或被跳过。某个来源不可用时,错误会留在对应部分,不会抹去其他结果。IPv4 和 IPv6 地址都会纳入检查,每个域名最多提供三个地址的详细信息。

对于一组域名或域名列表,请使用 recon_batch。它最多接受十个条目,会移除重复的主机名,并限制为每次处理三个域名。每个域名的截止时间为 90 秒。incomplete_domains 便于查找失败项。子域名历史记录和直接连接默认均处于关闭状态。

要检查网站之间是否可能存在关联,请使用 compare_domains。它报告的是共享基础设施,而非共同所有者的判定。CDN 地址、Google 邮件服务器或热门注册商可能出现在成千上万个互不相关的域名中。DNS 和 RDAP 检查失败时会明确显示,不会被当作检查无异常。

对于需要检查的网站或网店,请使用 investigate_site。它会读取提供的页面,并可选地读取同源下最多三个链接指向的联系或法律页面。它会提取标题、描述、显示的公司标识、表单目标和链接域名,然后将这些信息与公开查询结果结合。HTML 会作为文本读取;脚本、表单和链接资源都不会执行。

报告包含 signals,每项都指向其证据;以及 unavailable 列表。其 assessment 结果为 signals_collected 或 incomplete。这两种结果都不表示网站安全。它无法确认商品是否会送达、评论是否真实、产品是否属实,也无法确认公司号码的所有权。页脚中复制的号码只是观察到的声明,并非已核实的注册信息。

可选的 reference_domain 会将域名拼写与您已信任的域名进行比较。公共后缀(包括 github.io 等私有后缀)取自软件包内置列表,无需下载。拼写相似是检查 URL 的理由,并非冒充的证据。

certificate_history 会读取 crt.sh 的签发记录,并报告重复 ID 和数据截断情况。它不会告知当前提供的是哪个证书;要查询当前证书,请使用 tls_certificate。

来源与时效性

MCP 结果包含 checked_at、evidence 列表,以及一条外部文本属于不可信数据的提示。证据记录包含来源 URL、响应状态、收集时间,以及响应是否来自缓存。DNS 证据会注明查询的名称和解析器类型。

checked_at 是报告时间。fetched_at 是此工具获取来源响应的时间,并非提供方最后更新底层数据的时间。缓存响应会保留其原始收集时间和过期时间。0.3.0 之前创建的缓存条目,在再次获取之前,其收集时间未知。

记录、页面标题和其他外部字符串可能包含误导性文本或指令。它们是需要检查的证据,绝不是提供给已连接 Agent 的指令。最终解读仍由调查人员负责。

直接请求仅接受公共 HTTP/HTTPS 目标。私有、本地、组播和保留地址均会被阻止,重定向目标也不例外。连接使用经过检查的 DNS 地址,同时在 HTTP 和 TLS 中保留主机名。读取 HTTP 标头时不会下载最终页面正文。JSON 响应大小上限为 8 MiB;网站页面为 512 KiB;MTA-STS 策略为 64 KiB。法律页面重定向不得离开原始源。不会使用环境代理。

安装

需要 Python 3.10+。

pip install osint-mcp-server

如果使用 uv,则无需安装任何内容,只需将客户端指向 uvx(见下文)。

Claude Desktop

将以下内容添加到 claude_desktop_config.json:

{
  "mcpServers": {
    "osint": {
      "command": "uvx",
      "args": ["osint-mcp-server"]
    }
  }
}

如果通过 pip 安装,也可以只使用 "command": "osint-mcp-server",无需任何参数。

Claude Code
claude mcp add osint -- uvx osint-mcp-server

Cursor、Windsurf 等工具使用与 Claude Desktop 相同的 JSON。

更新

对于 pip 安装:

python -m pip install --upgrade osint-mcp-server

对于会启动 uvx 的客户端,如果希望 uv 检查最新的软件包,请在 args 中使用 osint-mcp-server@latest。使用 [email protected] 可固定到此版本。更新后请重启 MCP 服务。现有的 pip 安装不会自动更新。

对于支持配置工具超时的客户端,单次调查至少预留 120 秒,完整批次至少预留 360 秒。重试后,crt.sh 和 Wayback 可能需要更长时间;如果只需要一个答案,请使用耗时较短的工具。

示例提示词

  • “对 example.com 进行侦察,并告诉我有哪些值得注意的地方”
  • “有人能伪造来自我们域名的电子邮件吗?我们应该先修复什么?”
  • “这 20 个域名中,哪些证书会在本月到期?”
  • “AS13335 公布了哪些 IP 地址范围?”
  • “检查这 5 个网站的安全标头,并告诉我哪些最糟糕”
  • “example.com 的哪些子域名解析到了有开放端口的目标?”
  • “example.com/about 在 2015 年是什么样子?”
  • “比较这三家商店:它们是否共用主机、邮件服务器或注册商?列出实际匹配项”
  • “调查这个商店 URL,包括联系页面,并告诉我哪些检查未能完成”
  • “examp1e.com 看起来像 example.com 吗?收集证据,但不要称其为骗局”
  • “对这十个域名进行侦察,不要连接到它们的网站”
  • “显示此域名最近的 20 条证书记录,以及其中包含的名称”

缓存

API 响应(RDAP、crt.sh、Wayback、RIPEstat、InternetDB)会在 ~/.cache/osint-mcp/cache.sqlite3 中缓存 6 小时,主要是为了避免对 crt.sh 造成过多请求。DNS、TLS 和 HTTP 检查始终实时进行。

OSINT_MCP_CACHE=off           # disable
OSINT_MCP_CACHE_TTL=3600      # seconds
OSINT_MCP_CACHE_PATH=/tmp/x.db

注意事项

  • crt.sh 和 Wayback CDX API 速度较慢,而且经常返回 502/503。服务会重试几次;重试后,单个请求最长可能需要三分钟。批量域名检查则会在 90 秒后停止。
  • InternetDB 并非实时数据,而且只包含 Shodan 实际扫描过的 IP。
  • 无法列出 DKIM 选择器;email_security 会尝试常见选择器。如果知道自己的选择器,请传入 dkim_selectors。
  • 某些 TLD 通过 rdap.org 无法返回 RDAP 数据。未收到响应并不能证明该域名未注册。
  • 网站检查会读取服务器渲染的 HTML。仅通过 JavaScript 加载的内容不会显示。此工具不会绕过机器人拦截,也不会登录。

开发

git clone https://github.com/robyroro/osint-mcp
cd osint-mcp
pip install -e . pytest ruff build
ruff check src tests
pytest
python -m build

测试使用合成数据和模拟的网络响应,涵盖真实的 MCP stdio 握手、数据源故障、缓存迁移、有界批次以及被阻止的网络目标。CI 会在 Linux 和 Windows 上运行 Python 3.10、3.12 和 3.14。

发布工作流会在 v* 标签上运行。它会检查版本、运行测试、构建软件包、发布到 PyPI,然后更新官方 MCP Registry。仅推送到 GitHub 不会更新已安装的软件包或目录中的描述。

使用 MCP inspector 试用:

npx @modelcontextprotocol/inspector osint-mcp

请合理使用

此工具只获取公开数据,但仍请仅将其用于你自己的内容、范围内的漏洞赏金目标或研究。不要用它来针对他人。

许可证

MIT © Robert Vind-Gardoș (@robyroro)

评论

支持 Markdown

第一次接触 MCP?

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

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