Domain investigation playbook
DNS, subdomains, certificates, history and look-alikes of a domain, passively first
intermediate
Looks up a domain's A, AAAA, CNAME, MX, NS, TXT, SOA and CAA records
Community-packaged from github.com/osintverse-community/dns-records: the registry's community pins the upstream release; the tool is its authors' work. Maintain that project? Claim this package.
Run
Through ot mcp, an agent calls run_tool with this; ot asks you before anything that goes online or touches a target. Set it up: ot mcp install claude (or cursor, vscode, codex, gemini).
{"tool":"osintverse-community/dns-records","target":"example.com","input_type":"domain"}Or just say: "Run osintverse-community/dns-records on example.com with OTInstaller." The registry's read-only MCP server at api.otinstaller.com/mcp can find tools without installing anything.
ot run osintverse-community/dns-records d:example.com --format tableot install osintverse-community/dns-recordsDocker image in a read-only container · network allowed · no key · up to 1 min. The first ot run installs the tool after asking once. The example value is the registry's own test input, so this command has run. Drop --format table for JSON.
ot? Install it in one linecurl -fsSL https://get.otinstaller.com/ot | shot release for your machine from GitHub Releases.checksums.txt, and the Ed25519 signature on that file against the key built into the script.ot in /usr/local/bin or ~/.local/bin. Nothing else is written. Read the script.irm https://get.otinstaller.com/ot.ps1 | iexot release for your machine from GitHub Releases.checksums.txt, and the Ed25519 signature on that file against the key built into the script.ot in %LOCALAPPDATA%\Programs\ot, and adds it to your PATH. Nothing else is written. Read the script.sha256:bdd911ff…2430cd. The same bytes on every install; ot pulls by digest, never by tag.ot checks the same identity before every install and refuses another signer.ot pulls the same digest from the mirror and checks the same signature.{
"envelope": 1,
"tool": "osintverse-community/dns-records@0.1.0",
"runtime": "docker",
"input": {
"domain": "example.com"
},
"started_at": "2026-10-21T09:00:00Z",
"duration_ms": 4100,
"exit_code": 0,
"entities": [
{
"type": "dns_record",
"value": "example.com A 192.0.2.1"
},
{
"type": "ip",
"value": "192.0.2.1"
},
{
"type": "domain",
"value": "example.com"
}
],
"warnings": []
}Every tool returns this shape, shaped here from what this tool declares it finds. --format table to read it; ot extract and ot auto to continue.
Queries the public DNS for a domain's address, mail, name server, text, SOA and CAA records, and reports the IPs and hosts they point to. Only DNS resolvers are contacted, never the domain's own servers.
ot run osintverse-community/dns-records --domain example.com
| Input | Required | |
|---|---|---|
domain |
yes | |
types |
no | Comma-separated record types, such as MX,TXT |
TXT records often reveal the services a domain uses (site verification tokens for Google, Microsoft 365, Atlassian and others) and its SPF policy, which lists the systems allowed to send its email.
Find subdomains with osintverse-community/crtsh-subdomains and look up the IPs with osintverse-community/ipwhois.
pip install dnspython==2.9.0
python -m unittest
ot validate
Releases are built, signed and published by the otinstaller release workflow (Actions tab, with the version to release).
MIT
DNS, subdomains, certificates, history and look-alikes of a domain, passively first
Trace a suspicious message and find where an address is registered, without alerting its owner
dns-records finds dns record, ip, domain. Tools that take those:
dns record → 10 toolsip → 3 toolsdomain → 9 toolsot auto, with a saved result
Alternatives to dns-records that also take a domain; ot auto runs every installed one on the same value.
Checks a domain's SPF, DMARC, MX, BIMI and DNSSEC records and reports problems
Finds registered look-alike domains for phishing, typosquatting and brand impersonation
Enumerates a domain's DNS: standard records, SRV services, zone transfer checks and DNSSEC
Gets every known URL of a domain from the Wayback Machine, Common Crawl, OTX and urlscan
Finds a domain's subdomains passively from dozens of public sources