OSINT MCP Server: 37 tools, 12 sources, full-spectrum recon
Recon is the first phase of every assessment, and it's scattered across a dozen platforms — DNS, WHOIS, certificate transparency, Shodan, Censys, Wayback. This MCP server puts all 12 behind one agent, and 21 of its 37 tools need no API key.

Recon is the first phase of every penetration test, bug bounty, and threat assessment. Before you touch a target you want to know what’s there: DNS records, subdomains, open ports, the tech stack, email security posture, historical infrastructure, certificate transparency data, BGP routing, domain reputation. That picture is spread across a dozen platforms, each with its own API, auth, and output shape — and most of the 45 minutes it takes is spent switching tabs, not thinking.
osint-mcp-server exposes 37 tools across 12 sources over the Model Context Protocol. An agent runs them in parallel, deduplicates across sources, and hands back one reconnaissance picture in a conversation turn. It’s on npm under MIT (v0.2.0, around 1,200 downloads a month at the time of writing) — and notably, 21 of the 37 tools work with no API key at all.
Free-first by design
The useful default here is how much works before you’ve signed up for anything. DNS, WHOIS/RDAP, certificate transparency (crt.sh), GeoIP, BGP/ASN, the Wayback Machine, HackerTarget, and Microsoft 365 tenant discovery are all keyless. The premium sources — Shodan, VirusTotal, SecurityTrails, Censys — are additive, not required. A complete baseline recon runs on the free half:
{
"mcpServers": {
"osint": { "command": "npx", "args": ["-y", "osint-mcp-server"] }
}
}
osint_domain_recon fires Promise.allSettled across DNS, WHOIS, crt.sh, HackerTarget, and email-security checks at once. If crt.sh is slow — common for a domain with thousands of certificates — the other sources still return. Two dependencies, native fetch and node:dns/promises, no dig or whois binary to install.
What it covers
Twelve sources, grouped by what they answer:
| Source | Auth | Provides |
|---|---|---|
| DNS (native) | none | A/AAAA/MX/TXT/NS/SOA/CNAME/SRV/PTR, SPF-chain + email-security scoring |
| RDAP (WHOIS) | none | domain + IP registration, CIDR, contacts |
| crt.sh | none | certificate transparency logs → subdomain discovery |
| GeoIP (ip-api) | none | geolocation, ISP, ASN, proxy/VPN/hosting flags |
| BGPView | none | ASN details, announced prefixes, routing |
| HackerTarget | none | host search, reverse IP, ASN lookup |
| Wayback Machine | none | archived URLs + snapshot history |
| Microsoft 365 | none | tenant + federation discovery (auth type, IdP) |
| Shodan | key | ports, services, banners, exploits |
| VirusTotal | key | domain/IP/URL reputation across 70+ vendors |
| SecurityTrails | key | DNS history, subdomain enum, enhanced WHOIS |
| Censys | key | host + certificate search |
The ones worth calling out
Most of these are the recon primitives you’d expect. Three earn their keep:
dns_email_securitydoesn’t just fetch records — it reads SPF mechanism strength (~allsoft-fail vs-allhard-fail), grades the DMARC policy (none/quarantine/reject), checks DKIM, and returns a score with fixes. One call replaces a 15-minute manual audit.dns_spf_chainthen follows everyinclude:recursively, fingerprints the authorized services (Google Workspace, Microsoft 365, SendGrid…), and warns when the chain blows past the RFC 7208 ten-lookup limit.crtsh_searchis the best passive subdomain source there is — every TLS certificate ever issued shows up in certificate transparency logs, including staging hosts and forgotten internal names that never appear in public DNS.wayback_urlspulls paths the target removed but the Internet Archive kept: old/admin/panels,/api/docs, aswagger.json, the occasional.envsnapshot. Removed from the nav doesn’t mean removed from the server — these often still respond.
What recon actually produces
The point isn’t the data, it’s the picture the data forms. Hand the agent a scope and it merges every source into one read:
osint_domain_recon("target-corp.com") + the premium sources
→ 124 subdomains across 3 AWS IPs (89 from CT logs, 35 only in SecurityTrails)
→ PostgreSQL (5432) exposed on one host ← critical
→ Apache 2.4.49 on another → CVE-2021-41773 ← high
→ SPF ~all, DMARC p=none → email is spoofable ← medium
→ Google Workspace for mail, M365 for Teams/Autodiscover
→ notable: staging., jenkins., old-api.
That synthesis — what’s exposed, what’s exploitable, what’s spoofable, ranked — is the thing a human acts on, and it’s where the subdomain dedup across crt.sh, SecurityTrails, VirusTotal and HackerTarget pays off: each source misses different names, so the union is always bigger than any one of them.
Where it fits in CyberStrike
osint-mcp-server is one of the built-in MCP servers in the CyberStrike suite, and recon is where an assessment starts, so it usually runs first and feeds the rest. The chain is the whole argument for splitting tools across servers: OSINT discovers 124 subdomains and their IPs → the infrastructure server fingerprints each host → the browser server crawls the web apps → cve-mcp scores the vulnerabilities it finds → the darknet server checks whether that target’s credentials are already loose. One conversation, full attack surface. The reasoning behind that layering is in MCP vs A2A.
A word on scope
Passive recon is lawful and routine, but it still maps a real organization. Keep it inside an authorized engagement with a defined target list, mind each source’s terms of use, and remember that “passive” describes how you collected it, not how sensitive the result is — an exposed database or a spoofable mail domain is live risk the moment you write it down. The tool shows you the picture; a human owns what’s done with it.
Getting started
npx osint-mcp-server
Twenty-one tools work immediately, no keys. Add SHODAN_API_KEY, VT_API_KEY, ST_API_KEY, or CENSYS_API_ID + CENSYS_API_SECRET to light up the premium sources — and pass them through the environment, not a checked-in config, for the reasons in ten ways to secure your MCP servers.
Published on npm as osint-mcp-server (MIT). Part of the CyberStrike embedded MCP server suite — see also cve-mcp, the darknet MCP server, and MCP vs A2A.


