Menu

Star on GitHub · 3.2k
All posts
Product

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.

A figure on a summit overlooking a vast landscape — see the whole attack surface: full-spectrum reconnaissance through one MCP server

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_security doesn’t just fetch records — it reads SPF mechanism strength (~all soft-fail vs -all hard-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_chain then follows every include: recursively, fingerprints the authorized services (Google Workspace, Microsoft 365, SendGrid…), and warns when the chain blows past the RFC 7208 ten-lookup limit.
  • crtsh_search is 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_urls pulls paths the target removed but the Internet Archive kept: old /admin/ panels, /api/docs, a swagger.json, the occasional .env snapshot. 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.

Keep reading

More from on call

View all posts
A tall stack of CVE reports beside one flagged page — 200 CVEs, five that matter: real risk scoring through one MCP server
productOct 17, 2026

CVE MCP: 41 tools, 11 sources, real risk scoring

A scan drops 200 CVEs on your desk. CVSS alone can't tell you which five matter. cve-mcp pulls severity, exploitation probability, active-exploitation status and weaponization into one MCP server, and scores what's actually urgent.

A sliced onion — reach the .onion layer: Tor, stealer logs, ransomware and blockchain intel through one MCP server
productOct 17, 2026

Darknet MCP Server: 66 tools, 16 sources, one protocol

Dark web intelligence scattered across 16 platforms — breaches, ransomware, stealer logs, Tor, blockchain — exposed to an AI agent through a single MCP server. What it does, how it works, and how to use it responsibly.

A heavy chain with one cracking link — one weak link is a breach: 45 GitHub security checks in one audit through an MCP server
productOct 17, 2026

GitHub Security MCP: 39 tools, 45 checks, full posture audit

A GitHub org's security lives in org settings, repo configs, workflow YAML, secret management, dependency health, and access control all at once. This MCP server runs 45 checks across all six and tells an agent what to fix, in priority order.

Get the next post in your inbox

One email a month with new posts, product updates and the odd postmortem worth reading. Unsubscribe in one click.