{"_id":"osint-mcp-server","_rev":"2-f48c452e5869b707a2b8df97ee30016e","name":"osint-mcp-server","dist-tags":{"latest":"0.2.0"},"versions":{"0.1.0":{"name":"osint-mcp-server","version":"0.1.0","keywords":["mcp","model-context-protocol","osint","open-source-intelligence","reconnaissance","recon","security","cybersecurity","infosec","penetration-testing","pentest","bug-bounty","threat-intelligence","attack-surface","subdomain-enumeration","domain-intelligence","shodan","virustotal","censys","securitytrails","dns","whois","bgp","geoip","wayback-machine","crtsh","certificate-transparency","ip-lookup","hackertarget","ai","ai-agent","claude","llm"],"author":{"url":"https://orhanyildirim.us","name":"Orhan Yildirim","email":"contact@orhanyildirim.us"},"license":"MIT","_id":"osint-mcp-server@0.1.0","maintainers":[{"name":"orhnyldrm","email":"contact@orhanyildirim.us"}],"homepage":"https://github.com/badchars/osint-mcp-server","bugs":{"url":"https://github.com/badchars/osint-mcp-server/issues"},"bin":{"osint-mcp-server":"dist/index.js"},"dist":{"shasum":"397cd1222c85f84caea5c77de10fd817eaad86da","tarball":"https://registry.npmjs.org/osint-mcp-server/-/osint-mcp-server-0.1.0.tgz","fileCount":109,"integrity":"sha512-pozApfVWPXmkBpIHpN4UukmJ2lMFt75RYV4nqykpIoc9w7ciX7wWyw7fc7Ms/GIurUXE/Y7AnE4oND3K4h5gtA==","signatures":[{"sig":"MEYCIQCJw10dQaii/kpY/BAL4ZxzzqZrLTcH2UfyZbxJDidaLAIhAIh9Lv1/dq3rfh6KzRNgTzm9RXTCGORStajC2Zaw2y4t","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":818467},"type":"module","gitHead":"a6d88beef58d04df94a691ab6edc18ec09efd019","scripts":{"dev":"bun --watch run src/index.ts","build":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"_npmUser":{"name":"orhnyldrm","email":"contact@orhanyildirim.us"},"repository":{"url":"git+https://github.com/badchars/osint-mcp-server.git","type":"git"},"_npmVersion":"10.9.3","description":"OSINT intelligence MCP server — Shodan, VirusTotal, SecurityTrails, Censys, DNS, WHOIS, crt.sh, Wayback, BGP","directories":{},"_nodeVersion":"22.19.0","dependencies":{"zod":"^3.24.4","@modelcontextprotocol/sdk":"^1.12.1"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"^1.3.10","typescript":"^5.8.2","@types/node":"^22.15.3"},"_npmOperationalInternal":{"tmp":"tmp/osint-mcp-server_0.1.0_1773709972226_0.2873591914812641","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"osint-mcp-server","version":"0.2.0","description":"OSINT intelligence MCP server — Shodan, VirusTotal, SecurityTrails, Censys, DNS, WHOIS, crt.sh, Wayback, BGP","type":"module","bin":{"osint-mcp-server":"dist/index.js"},"scripts":{"dev":"bun --watch run src/index.ts","build":"tsc -p tsconfig.build.json","prepublishOnly":"npm run build"},"keywords":["mcp","model-context-protocol","osint","open-source-intelligence","reconnaissance","recon","security","cybersecurity","infosec","penetration-testing","pentest","bug-bounty","threat-intelligence","attack-surface","subdomain-enumeration","domain-intelligence","shodan","virustotal","censys","securitytrails","dns","whois","bgp","geoip","wayback-machine","crtsh","certificate-transparency","ip-lookup","hackertarget","ai","ai-agent","claude","llm"],"author":{"name":"Orhan Yildirim","email":"contact@orhanyildirim.us","url":"https://orhanyildirim.us"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/badchars/osint-mcp-server.git"},"homepage":"https://github.com/badchars/osint-mcp-server","dependencies":{"@modelcontextprotocol/sdk":"^1.12.1","zod":"^3.24.4"},"devDependencies":{"@types/bun":"^1.3.10","@types/node":"^22.15.3","typescript":"^5.8.2"},"_id":"osint-mcp-server@0.2.0","gitHead":"86670f3c91284b9e6a7ca3c8ad881a4105bb5e97","bugs":{"url":"https://github.com/badchars/osint-mcp-server/issues"},"_nodeVersion":"22.19.0","_npmVersion":"10.9.3","dist":{"integrity":"sha512-dXMmCmoOWWgebvSoV0JeB6xnW6TMZ7wnoG245CdsaRpN1aRKTHZGNiRHlG2s8+EHd2vy2iSSd/pdY4VqAlUGPw==","shasum":"52ac1376db7031b7ff96b1599589118e527ef9ce","tarball":"https://registry.npmjs.org/osint-mcp-server/-/osint-mcp-server-0.2.0.tgz","fileCount":110,"unpackedSize":834305,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIBz6sGGH3t5VO5Z1ayFvZ2jKb245a3nVmL2fCHKc0s4FAiEA+64/2/wvHo5FWlIj6oOUhsP1mEYaaJ5jchawFntZd1k="}]},"_npmUser":{"name":"orhnyldrm","email":"contact@orhanyildirim.us"},"directories":{},"maintainers":[{"name":"orhnyldrm","email":"contact@orhanyildirim.us"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/osint-mcp-server_0.2.0_1773710840302_0.3803467483070109"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-17T01:12:52.226Z","modified":"2026-03-17T01:27:20.637Z","0.1.0":"2026-03-17T01:12:52.402Z","0.2.0":"2026-03-17T01:27:20.510Z"},"bugs":{"url":"https://github.com/badchars/osint-mcp-server/issues"},"author":{"name":"Orhan Yildirim","email":"contact@orhanyildirim.us","url":"https://orhanyildirim.us"},"license":"MIT","homepage":"https://github.com/badchars/osint-mcp-server","keywords":["mcp","model-context-protocol","osint","open-source-intelligence","reconnaissance","recon","security","cybersecurity","infosec","penetration-testing","pentest","bug-bounty","threat-intelligence","attack-surface","subdomain-enumeration","domain-intelligence","shodan","virustotal","censys","securitytrails","dns","whois","bgp","geoip","wayback-machine","crtsh","certificate-transparency","ip-lookup","hackertarget","ai","ai-agent","claude","llm"],"repository":{"type":"git","url":"git+https://github.com/badchars/osint-mcp-server.git"},"description":"OSINT intelligence MCP server — Shodan, VirusTotal, SecurityTrails, Censys, DNS, WHOIS, crt.sh, Wayback, BGP","maintainers":[{"name":"orhnyldrm","email":"contact@orhanyildirim.us"}],"readme":"<p align=\"center\">\n  <a href=\"README.md\">English</a> |\n  <strong>简体中文</strong> |\n  <a href=\"README.zh-TW.md\">繁體中文</a> |\n  <a href=\"README.ko.md\">한국어</a> |\n  <a href=\"README.de.md\">Deutsch</a> |\n  <a href=\"README.es.md\">Español</a> |\n  <a href=\"README.fr.md\">Français</a> |\n  <a href=\"README.it.md\">Italiano</a> |\n  <a href=\"README.da.md\">Dansk</a> |\n  <a href=\"README.ja.md\">日本語</a> |\n  <a href=\"README.pl.md\">Polski</a> |\n  <a href=\"README.ru.md\">Русский</a> |\n  <a href=\"README.bs.md\">Bosanski</a> |\n  <a href=\"README.ar.md\">العربية</a> |\n  <a href=\"README.no.md\">Norsk</a> |\n  <a href=\"README.pt-BR.md\">Português (Brasil)</a> |\n  <a href=\"README.th.md\">ไทย</a> |\n  <a href=\"README.tr.md\">Türkçe</a> |\n  <a href=\"README.uk.md\">Українська</a> |\n  <a href=\"README.bn.md\">বাংলা</a> |\n  <a href=\"README.el.md\">Ελληνικά</a> |\n  <a href=\"README.vi.md\">Tiếng Việt</a> |\n  <a href=\"README.hi.md\">हिन्दी</a>\n</p>\n\n<p align=\"center\">\n  <br>\n  <picture>\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://raw.githubusercontent.com/badchars/osint-mcp-server/main/.github/banner-dark.svg\">\n    <source media=\"(prefers-color-scheme: light)\" srcset=\"https://raw.githubusercontent.com/badchars/osint-mcp-server/main/.github/banner-light.svg\">\n    <img alt=\"osint-mcp-server\" src=\"https://raw.githubusercontent.com/badchars/osint-mcp-server/main/.github/banner-dark.svg\" width=\"700\">\n  </picture>\n</p>\n\n<h3 align=\"center\">为 AI 智能体提供开源情报与侦察能力。</h3>\n\n<p align=\"center\">\n  Shodan、VirusTotal、Censys、SecurityTrails、DNS、WHOIS、BGP、Wayback Machine &mdash; 统一集成到一个 MCP 服务器中。<br>\n  让您的 AI 智能体按需获取<b>全方位开源情报</b>，而非在 12 个浏览器标签页间手动关联。\n</p>\n\n<br>\n\n<p align=\"center\">\n  <a href=\"#问题\">问题</a> &bull;\n  <a href=\"#有何不同\">有何不同</a> &bull;\n  <a href=\"#快速开始\">快速开始</a> &bull;\n  <a href=\"#ai-能做什么\">AI 能做什么</a> &bull;\n  <a href=\"#工具参考37-个工具\">工具 (37)</a> &bull;\n  <a href=\"#数据源12-个\">数据源</a> &bull;\n  <a href=\"#架构\">架构</a>\n</p>\n\n<p align=\"center\">\n  <a href=\"https://www.npmjs.com/package/osint-mcp-server\"><img src=\"https://img.shields.io/npm/v/osint-mcp-server.svg\" alt=\"npm\"></a>\n  <a href=\"LICENSE\"><img src=\"https://img.shields.io/badge/license-MIT-blue.svg\" alt=\"License\"></a>\n  <img src=\"https://img.shields.io/badge/runtime-Bun-f472b6\" alt=\"Bun\">\n  <img src=\"https://img.shields.io/badge/protocol-MCP-8b5cf6\" alt=\"MCP\">\n  <img src=\"https://img.shields.io/badge/tools-37-06b6d4\" alt=\"37 Tools\">\n  <img src=\"https://img.shields.io/badge/sources-12-0ea5e9\" alt=\"12 Sources\">\n  <img src=\"https://img.shields.io/badge/free%20tools-21-22c55e\" alt=\"21 Free Tools\">\n</p>\n\n---\n\n## 问题\n\n开源情报（OSINT）收集是每次渗透测试、漏洞赏金和威胁评估的第一步。所需数据分散在十几个平台上 &mdash; 每个平台有各自的 API、各自的认证方式、各自的速率限制、各自的输出格式。如今，你需要在一个标签页打开 Shodan，另一个标签页打开 VirusTotal，在终端运行 `dig`，从 WHOIS 复制粘贴，再切换到 crt.sh 查证书，然后花 30 分钟手动关联所有信息。\n\n```\n传统 OSINT 工作流：\n  解析 DNS 记录                  →  dig / nslookup 命令行\n  查询 WHOIS 注册信息            →  whois 命令行或网页工具\n  枚举子域名                     →  crt.sh + SecurityTrails + VirusTotal（3 个不同界面）\n  扫描开放端口/服务              →  Shodan 网页界面\n  检查域名信誉                   →  VirusTotal 网页界面\n  映射 IP 基础设施               →  Censys + BGP 查询\n  查找归档页面                   →  Wayback Machine 网页界面\n  检查邮件安全                   →  手动 MX/SPF/DMARC 查询\n  关联所有信息                   →  复制粘贴到电子表格\n  ─────────────────────────────────\n  总计：每个目标 45 分钟以上，大部分时间在切换上下文\n```\n\n**osint-mcp-server** 通过 [Model Context Protocol](https://modelcontextprotocol.io) 为您的 AI 智能体提供跨 12 个数据源的 37 个工具。智能体并行查询所有数据源、关联数据、识别风险，并在单次对话中呈现统一的情报全景。\n\n```\n使用 osint-mcp-server：\n  你：\"对 target.com 做一次全面侦察\"\n\n  智能体：→ DNS：4 条 A 记录、3 条 MX（Google Workspace）、2 条 NS\n          → WHOIS：2019 年注册，2025 年到期，GoDaddy\n          → crt.sh：从 CT 日志发现 47 个唯一子域名\n          → HackerTarget：23 个带 IP 的主机\n          → 邮件安全：SPF 软失败（~all）、DMARC p=none、无 DKIM\n          → Shodan：3 个 IP、12 个开放端口、Apache 2.4.49（CVE-2021-41773）\n          → VirusTotal：信誉良好，0 个检测\n          → \"target.com 有 47 个子域名，邮件安全薄弱\n             （SPF 软失败、DMARC 仅监控），一个 IP 运行着\n             存在已知路径遍历 CVE 的 Apache 2.4.49。\n             优先级：修补 Apache、将 SPF 升级为 -all、\n             将 DMARC 设为 p=reject。\"\n```\n\n---\n\n## 有何不同\n\n现有 OSINT 工具每次只从单一来源提供原始数据。osint-mcp-server 让您的 AI 智能体能够**跨所有数据源同时推理分析**。\n\n<table>\n<thead>\n<tr>\n<th></th>\n<th>传统 OSINT</th>\n<th>osint-mcp-server</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><b>交互方式</b></td>\n<td>12 种不同的网页界面、命令行和 API</td>\n<td>MCP &mdash; AI 智能体通过对话调用工具</td>\n</tr>\n<tr>\n<td><b>数据源</b></td>\n<td>一次只能使用一个平台</td>\n<td>12 个数据源并行查询</td>\n</tr>\n<tr>\n<td><b>子域名枚举</b></td>\n<td>crt.sh 或 SecurityTrails 或 VirusTotal</td>\n<td>智能体合并三者加 HackerTarget，自动去重</td>\n</tr>\n<tr>\n<td><b>关联分析</b></td>\n<td>在标签页间手动复制粘贴</td>\n<td>智能体交叉引用：\"Shodan 中的这个 IP 在 Censys 中也出现了，且证书已过期\"</td>\n</tr>\n<tr>\n<td><b>邮件安全</b></td>\n<td>分别查询 SPF/DMARC/DKIM</td>\n<td>综合分析并给出风险评分和可操作建议</td>\n</tr>\n<tr>\n<td><b>基础设施</b></td>\n<td>分别查询 GeoIP + BGP + WHOIS</td>\n<td>智能体映射完整基础设施：ASN、前缀、地理位置、归属</td>\n</tr>\n<tr>\n<td><b>API 密钥</b></td>\n<td>几乎所有功能都需要</td>\n<td>21 个工具免费使用，16 个通过可选 API 密钥解锁</td>\n</tr>\n<tr>\n<td><b>安装配置</b></td>\n<td>逐一安装每个工具，逐一管理配置</td>\n<td><code>npx osint-mcp-server</code> &mdash; 一条命令，零配置</td>\n</tr>\n</tbody>\n</table>\n\n---\n\n## 快速开始\n\n### 方式一：npx（免安装）\n\n```bash\nnpx osint-mcp-server\n```\n\n21 个公共 OSINT 工具即刻可用，无需 API 密钥。\n\n### 方式二：克隆仓库\n\n```bash\ngit clone https://github.com/badchars/osint-mcp-server.git\ncd osint-mcp-server\nbun install\n```\n\n### 环境变量（可选）\n\n```bash\n# 付费 OSINT 数据源 — 全部可选\nexport SHODAN_API_KEY=your-key           # 启用 4 个 Shodan 工具\nexport VT_API_KEY=your-key               # 启用 4 个 VirusTotal 工具\nexport ST_API_KEY=your-key               # 启用 3 个 SecurityTrails 工具\nexport CENSYS_API_ID=your-id             # 启用 3 个 Censys 工具\nexport CENSYS_API_SECRET=your-secret     # 需与 CENSYS_API_ID 配合使用\n```\n\n所有付费 API 密钥均为可选。不配置任何密钥，您仍可使用 21 个工具，覆盖 DNS、WHOIS、crt.sh、GeoIP、BGP、Wayback Machine、HackerTarget 和 Microsoft 365 租户发现。\n\n### 连接到 AI 智能体\n\n<details open>\n<summary><b>Claude Code</b></summary>\n\n```bash\n# 使用 npx\nclaude mcp add osint-mcp-server -- npx osint-mcp-server\n\n# 使用本地克隆\nclaude mcp add osint-mcp-server -- bun run /path/to/osint-mcp-server/src/index.ts\n```\n\n</details>\n\n<details>\n<summary><b>Claude Desktop</b></summary>\n\n添加至 `~/Library/Application Support/Claude/claude_desktop_config.json`：\n\n```json\n{\n  \"mcpServers\": {\n    \"osint\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"osint-mcp-server\"],\n      \"env\": {\n        \"SHODAN_API_KEY\": \"optional\",\n        \"VT_API_KEY\": \"optional\",\n        \"ST_API_KEY\": \"optional\",\n        \"CENSYS_API_ID\": \"optional\",\n        \"CENSYS_API_SECRET\": \"optional\"\n      }\n    }\n  }\n}\n```\n\n</details>\n\n<details>\n<summary><b>Cursor / Windsurf / 其他 MCP 客户端</b></summary>\n\nJSON 配置格式相同。将命令指向 `npx osint-mcp-server` 或您的本地安装路径。\n\n</details>\n\n### 开始查询\n\n```\n你：\"能查到 example.com 的哪些信息？\"\n```\n\n就这么简单。智能体会自动处理 DNS、WHOIS、子域名、邮件安全等查询。\n\n---\n\n## AI 能做什么\n\n### 域名侦察\n\n```\n你：\"对 target.com 做全面侦察\"\n\n智能体：→ osint_domain_recon {domain: \"target.com\"}\n        → DNS：A 记录指向 3 个 IP（AWS us-east-1）\n        → WHOIS：2018 年通过 Namecheap 注册，2026 年到期\n        → crt.sh：发现 62 个子域名\n        → HackerTarget：31 个已解析 IP 的主机\n        → 邮件安全：SPF 硬失败、DMARC p=reject、DKIM 已配置（selector1）\n        → \"target.com 的邮件安全配置良好。\n           发现 62 个子域名——值得关注的有：staging.target.com、\n           admin-portal.target.com、api-v2.target.com。\n           基础设施部署在 AWS（us-east-1）。\"\n```\n\n### 攻击面映射\n\n```\n你：\"映射 203.0.113.50 的攻击面\"\n\n智能体：→ shodan_host {ip: \"203.0.113.50\"}\n        → geoip_lookup {ip: \"203.0.113.50\"}\n        → bgp_ip {ip: \"203.0.113.50\"}\n        → whois_ip {ip: \"203.0.113.50\"}\n        → dns_reverse {ip: \"203.0.113.50\"}\n        → \"203.0.113.50（Hetzner，德国，AS24940）\n           开放端口：22/SSH、80/HTTP、443/HTTPS、8080/HTTP-Proxy\n           Apache 2.4.51、OpenSSH 8.9、8080 上的 nginx 反向代理\n           反向 DNS：web1.target.com\n           Shodan 标记了 3 个已知 CVE\"\n```\n\n### 子域名枚举（多源聚合）\n\n```\n你：\"用所有可用数据源查找 target.com 的全部子域名\"\n\n智能体：→ crtsh_search {domain: \"target.com\"}              → 62 个子域名\n        → st_subdomains {domain: \"target.com\"}              → 84 个子域名\n        → vt_subdomains {domain: \"target.com\"}              → 41 个子域名\n        → hackertarget_hostsearch {domain: \"target.com\"}    → 31 个主机\n        → dns_wildcard_check {domain: \"target.com\"}         → 无泛解析\n        → \"跨 4 个数据源去重后共发现 127 个唯一子域名。\n           值得关注的发现：staging.target.com、dev-api.target.com、\n           jenkins.target.com（CI/CD 暴露风险）、\n           old-admin.target.com（可能为遗留系统）\"\n```\n\n### 邮件安全审计\n\n```\n你：\"分析 target.com 的邮件安全态势\"\n\n智能体：→ dns_email_security {domain: \"target.com\"}\n        → dns_spf_chain {domain: \"target.com\"}\n        → m365_tenant {domain: \"target.com\"}\n        → \"邮件安全：高风险\n           SPF：~all（软失败——可被伪造）\n           DMARC：p=none（仅监控——未执行策略）\n           DKIM：selector1 已配置（2048 位，良好）\n           SPF 链：7 个 include、2 个服务（Google Workspace、SendGrid）\n           M365：非 Microsoft 租户\n           建议：\n           1. 将 SPF 从 ~all 升级为 -all\n           2. 将 DMARC 从 p=none 改为 p=quarantine，再改为 p=reject\n           3. 为 DMARC 添加 rua= 以接收聚合报告\"\n```\n\n### 历史情报\n\n```\n你：\"target.com 三年前运行的是什么？\"\n\n智能体：→ wayback_urls {domain: \"target.com\", limit: 500}\n        → st_dns_history {domain: \"target.com\", type: \"a\"}\n        → wayback_snapshots {url: \"https://target.com/robots.txt\"}\n        → \"DNS 历史：target.com 于 2023 年从 198.51.100.1（DigitalOcean）\n           迁移至 203.0.113.50（AWS）。\n           Wayback 发现 342 个唯一 URL，包括：\n           - /admin/（2024 年移除，此前可访问）\n           - /api/v1/docs（Swagger UI，仍有缓存）\n           - /wp-content/（曾是 WordPress，已迁移）\n           旧版 robots.txt 禁止了 /internal/ 和 /debug/\"\n```\n\n---\n\n## 工具参考（37 个工具）\n\n<details open>\n<summary><b>DNS（6 个）&mdash; 无需 API 密钥</b></summary>\n\n| 工具 | 描述 |\n|------|------|\n| `dns_lookup` | 解析 A、AAAA、MX、TXT、NS、SOA、CNAME、SRV 记录 |\n| `dns_reverse` | IP 地址的反向 DNS（PTR）查询 |\n| `dns_email_security` | SPF + DMARC + DKIM 分析，含风险评分和修复建议 |\n| `dns_spf_chain` | 递归 SPF include 链解析，含服务识别 |\n| `dns_srv_discover` | SRV + CNAME 服务发现（Autodiscover、LDAP、SIP、Kerberos 等） |\n| `dns_wildcard_check` | 通过随机子域名探测检测泛解析 DNS |\n\n</details>\n\n<details>\n<summary><b>WHOIS / RDAP（2 个）&mdash; 无需 API 密钥</b></summary>\n\n| 工具 | 描述 |\n|------|------|\n| `whois_domain` | RDAP 域名查询 &mdash; 注册商、日期、域名服务器、联系人 |\n| `whois_ip` | RDAP IP 查询 &mdash; 网络名称、CIDR、国家、实体 |\n\n</details>\n\n<details>\n<summary><b>证书透明度（1 个）&mdash; 无需 API 密钥</b></summary>\n\n| 工具 | 描述 |\n|------|------|\n| `crtsh_search` | 通过 crt.sh 搜索 CT 日志 &mdash; 子域名发现 + 证书详情 |\n\n</details>\n\n<details>\n<summary><b>Shodan（4 个）&mdash; 需要 SHODAN_API_KEY</b></summary>\n\n| 工具 | 描述 |\n|------|------|\n| `shodan_host` | IP 详情：开放端口、服务、Banner、漏洞、操作系统、ASN |\n| `shodan_search` | Shodan 查询语言搜索（如 `apache port:443 country:US`） |\n| `shodan_dns_resolve` | 通过 Shodan 批量主机名转 IP 解析 |\n| `shodan_exploits` | 搜索公开漏洞利用数据库（PoC、Metasploit 模块） |\n\n</details>\n\n<details>\n<summary><b>VirusTotal（4 个）&mdash; 需要 VT_API_KEY</b></summary>\n\n| 工具 | 描述 |\n|------|------|\n| `vt_domain` | 域名信誉、检测统计、分类、DNS 记录 |\n| `vt_ip` | IP 信誉、检测统计、ASN、网络 |\n| `vt_subdomains` | 通过 VirusTotal 枚举子域名 |\n| `vt_url` | URL 扫描 + 恶意软件/钓鱼分析 |\n\n</details>\n\n<details>\n<summary><b>SecurityTrails（3 个）&mdash; 需要 ST_API_KEY</b></summary>\n\n| 工具 | 描述 |\n|------|------|\n| `st_subdomains` | 子域名枚举（返回完整域名） |\n| `st_dns_history` | 历史 DNS 记录，含首次/末次发现日期 |\n| `st_whois` | 增强版 WHOIS，含注册人/管理/技术联系人 |\n\n</details>\n\n<details>\n<summary><b>Censys（3 个）&mdash; 需要 CENSYS_API_ID + CENSYS_API_SECRET</b></summary>\n\n| 工具 | 描述 |\n|------|------|\n| `censys_hosts` | 主机搜索 &mdash; IP、服务、端口、位置、ASN |\n| `censys_host_details` | 单主机完整详情及所有服务 |\n| `censys_certificates` | 按域名、指纹、颁发者搜索证书 |\n\n</details>\n\n<details>\n<summary><b>GeoIP（2 个）&mdash; 无需 API 密钥</b></summary>\n\n| 工具 | 描述 |\n|------|------|\n| `geoip_lookup` | IP 地理定位：国家、城市、ISP、ASN、代理/托管/VPN 检测 |\n| `geoip_batch` | 批量 IP 地理定位（单次最多 100 个 IP） |\n\n</details>\n\n<details>\n<summary><b>BGP / ASN（3 个）&mdash; 无需 API 密钥</b></summary>\n\n| 工具 | 描述 |\n|------|------|\n| `bgp_asn` | ASN 详情 + 所有已宣告的 IPv4/IPv6 前缀 |\n| `bgp_ip` | IP 前缀/ASN 路由查询，含 RIR 分配信息 |\n| `bgp_prefix` | 前缀详情 + 宣告该前缀的 ASN |\n\n</details>\n\n<details>\n<summary><b>Wayback Machine（2 个）&mdash; 无需 API 密钥</b></summary>\n\n| 工具 | 描述 |\n|------|------|\n| `wayback_urls` | 归档 URL 发现 &mdash; 查找旧端点、隐藏路径、已删除内容 |\n| `wayback_snapshots` | 快照历史，含时间戳和直接归档链接 |\n\n</details>\n\n<details>\n<summary><b>HackerTarget（3 个）&mdash; 无需 API 密钥</b></summary>\n\n| 工具 | 描述 |\n|------|------|\n| `hackertarget_hostsearch` | 主机/子域名发现，含已解析 IP |\n| `hackertarget_reverseip` | 反向 IP 查询 &mdash; 查找同一 IP 上的所有域名 |\n| `hackertarget_aslookup` | ASN 信息查询 |\n\n</details>\n\n<details>\n<summary><b>Microsoft 365（2 个）&mdash; 无需 API 密钥</b></summary>\n\n| 工具 | 描述 |\n|------|------|\n| `m365_tenant` | 发现 M365 租户 ID、区域和 OpenID 配置 |\n| `m365_userrealm` | 检测认证类型（托管/联合）、联合品牌、认证端点 |\n\n</details>\n\n<details>\n<summary><b>元工具（2 个）&mdash; 无需 API 密钥</b></summary>\n\n| 工具 | 描述 |\n|------|------|\n| `osint_list_sources` | 列出所有 OSINT 数据源、API 密钥状态和工具数量 |\n| `osint_domain_recon` | 快速侦察，整合所有免费数据源（DNS + WHOIS + crt.sh + HackerTarget + 邮件安全） |\n\n</details>\n\n---\n\n## 数据源（12 个）\n\n| 数据源 | 认证 | 速率限制 | 提供的数据 |\n|--------|------|----------|-----------|\n| [DNS](https://nodejs.org/api/dns.html) | 无 | 无 | A、AAAA、MX、TXT、NS、SOA、CNAME、SRV、PTR 记录 |\n| [RDAP](https://rdap.org/) | 无 | 1 次/秒 | 域名和 IP 的 WHOIS 数据（注册商、日期、联系人、CIDR） |\n| [crt.sh](https://crt.sh/) | 无 | 0.5 次/秒 | 证书透明度日志、子域名发现 |\n| [ip-api.com](http://ip-api.com/) | 无 | 45 次/分 | IP 地理定位、ISP、ASN、代理/VPN/托管检测 |\n| [BGPView](https://bgpview.io/) | 无 | 0.5 次/秒 | ASN 详情、已宣告前缀、IP 路由信息 |\n| [HackerTarget](https://hackertarget.com/) | 无 | 2 次/秒 | 主机搜索、反向 IP、ASN 查询（免费每日 50 次） |\n| [Wayback Machine](https://web.archive.org/) | 无 | 1 次/秒 | 归档 URL、快照历史、历史内容 |\n| [Microsoft 365](https://login.microsoftonline.com/) | 无 | 无 | 租户发现、联合身份检测、认证类型 |\n| [Shodan](https://www.shodan.io/) | `SHODAN_API_KEY` | 1 次/秒 | 全网端口/服务/Banner 扫描 |\n| [VirusTotal](https://www.virustotal.com/) | `VT_API_KEY` | 4 次/分 | 域名/IP/URL 信誉、恶意软件检测 |\n| [SecurityTrails](https://securitytrails.com/) | `ST_API_KEY` | 1 次/秒 | DNS 历史、子域名枚举、增强版 WHOIS |\n| [Censys](https://censys.io/) | `CENSYS_API_ID` | 1 次/秒 | 主机搜索、证书透明度、服务发现 |\n\n---\n\n## 架构\n\n```\nsrc/\n├── index.ts                    Entry point, env config, MCP stdio\n├── types/\n│   └── index.ts                ToolDef, ToolContext, ToolResult\n├── protocol/\n│   ├── tools.ts                37 tool definitions (Zod schemas)\n│   └── mcp-server.ts           MCP server + stdio transport\n├── dns/\n│   └── index.ts                6 functions — lookup, reverse, email, SPF chain, SRV, wildcard\n├── whois/\n│   └── index.ts                2 functions — domain RDAP, IP RDAP\n├── crtsh/\n│   └── index.ts                CT log search with dedup + caching\n├── shodan/\n│   └── index.ts                Host, search, DNS resolve, exploits\n├── virustotal/\n│   └── index.ts                Domain, IP, subdomains, URL scan\n├── securitytrails/\n│   └── index.ts                Subdomains, DNS history, WHOIS\n├── censys/\n│   └── index.ts                Host search, host details, certificates\n├── geoip/\n│   └── index.ts                Single + batch IP geolocation\n├── bgp/\n│   └── index.ts                ASN, IP prefix, prefix details\n├── wayback/\n│   └── index.ts                URL search + snapshot history\n├── hackertarget/\n│   └── index.ts                Host search, reverse IP, ASN\n├── m365/\n│   └── index.ts                Tenant discovery, user realm/federation\n├── meta/\n│   ├── sources.ts              Source availability check\n│   └── recon.ts                Combined free-source domain recon\n└── utils/\n    ├── rate-limiter.ts          Queue-based rate limiter\n    ├── cache.ts                 Generic TTL cache\n    └── require-key.ts           API key validation helper\n```\n\n**设计决策：**\n\n- **12 个数据提供方，1 个服务器** &mdash; 每个 OSINT 数据源都是独立模块。智能体根据查询自行选择使用哪些工具。\n- **21 个免费工具** &mdash; DNS、WHOIS、crt.sh、BGP、GeoIP、Wayback、HackerTarget 和 M365 无需任何 API 密钥即可使用。付费数据源为增量补充。\n- **并行查询** &mdash; `osint_domain_recon` 通过 `Promise.allSettled` 调用 8 个数据源。即使某个数据源超时，其余仍能返回数据。\n- **按提供方独立限速** &mdash; 每个数据源拥有独立的 `RateLimiter` 实例，按其 API 限制精确校准。无共享瓶颈。\n- **TTL 缓存** &mdash; crt.sh（15 分钟）、BGP（30 分钟）、Shodan（5 分钟）、VirusTotal（10 分钟）的结果会被缓存，避免多工具工作流中的重复 API 调用。\n- **优雅降级** &mdash; 缺少 API 密钥不会导致服务器崩溃。工具返回描述性错误信息：\"设置 SHODAN_API_KEY 以启用 Shodan 工具。\"\n- **SPF 链分析** &mdash; 递归 include 解析，具备环路检测、服务识别（Google Workspace、Microsoft 365、SendGrid 等）和 RFC 7208 查询次数限制检查。\n- **仅 2 个依赖** &mdash; `@modelcontextprotocol/sdk` 和 `zod`。所有 HTTP 使用原生 `fetch`，所有 DNS 使用 `node:dns/promises`。\n\n---\n\n## 限制\n\n- 免费层速率限制适用：HackerTarget（50 次/天）、ip-api.com（45 次/分钟）、VirusTotal 社区版（4 次/分钟）\n- crt.sh 对大型域名查询可能较慢（已设置 30 秒超时）\n- ip-api.com 免费层要求使用 HTTP（非 HTTPS）\n- Wayback Machine CDX API 对高流量域名可能超时\n- 通过 RDAP 获取的 WHOIS 可能无法覆盖所有 TLD（部分注册商尚未支持 RDAP）\n- 已在 macOS / Linux 测试（Windows 未测试）\n\n---\n\n## MCP 安全套件\n\n| 项目 | 领域 | 工具 |\n|------|------|------|\n| [hackbrowser-mcp](https://github.com/badchars/hackbrowser-mcp) | 基于浏览器的安全测试 | 39 个工具，Firefox，注入测试 |\n| [cloud-audit-mcp](https://github.com/badchars/cloud-audit-mcp) | 云安全（AWS/Azure/GCP） | 38 个工具，60+ 项检查 |\n| [github-security-mcp](https://github.com/badchars/github-security-mcp) | GitHub 安全态势 | 39 个工具，45 项检查 |\n| [cve-mcp](https://github.com/badchars/cve-mcp) | 漏洞情报 | 23 个工具，5 个数据源 |\n| **osint-mcp-server** | **开源情报与侦察** | **37 个工具，12 个数据源** |\n\n---\n\n<p align=\"center\">\n<b>仅用于授权的安全测试和评估。</b><br>\n在对任何目标执行侦察之前，请务必确保已获得适当授权。\n</p>\n\n<p align=\"center\">\n  <a href=\"LICENSE\">MIT 许可证</a> &bull; 基于 Bun + TypeScript 构建\n</p>\n","readmeFilename":"README.zh.md"}