# Tool reference mcp-dnstwist has one tool, `fuzz_domain`. It generates lookalike versions of a domain (typos, homoglyphs, bit flips, added or swapped characters, other TLDs) and checks which ones exist. Sample outputs are real responses from dnstwist 20250130, captured on 2026-10-12 against `example.com`. Long lists are cut to a few entries and marked `… N more`. ## `fuzz_domain` Generate and analyze domain permutations to detect potential typosquatting, phishing, and brand impersonation | Parameter | Type | Required | Default | Notes | |---|---|---|---|---| | `domain` | string | yes | | Domain name to analyze (e.g., example.com) | | `nameservers` | string | no | `"1.1.1.1"` | Comma-separated DNS servers: IPv4 addresses or DNS-over-HTTPS URLs such as https://cloudflare-dns.com/dns-query (default: 1.1.1.1) | | `threads` | number | no | `50` | Number of parallel lookups (1-100) | | `format` | string (json / csv / list) | no | `"json"` | Output format | | `registered_only` | boolean | no | `true` | Show only registered domain permutations | | `mxcheck` | boolean | no | `true` | Check whether each mail server would accept email for any address, so it could intercept mail sent to typos of your domain | | `ssdeep` | boolean | no | `false` | Deprecated alias for lsh: "ssdeep" (ignored when lsh is set) | | `lsh` | string (ssdeep / tlsh) | no | | Compare each permutation's web page with the original using a fuzzy hash (slow) to spot cloned phishing pages | | `whois` | boolean | no | `false` | Look up WHOIS creation date and registrar for each domain (slower) | | `all_records` | boolean | no | `false` | Return all DNS records instead of only the first of each type | | `fuzzers` | string[] | no | | Only use these fuzzing algorithms (default: all) Values: `addition`, `bitsquatting`, `cyrillic`, `homoglyph`, `hyphenation`, `insertion`, `omission`, `plural`, `repetition`, `replacement`, `subdomain`, `transposition`, `vowel-swap`, `various`. | | `banners` | boolean | no | `true` | Capture HTTP and SMTP server banners | ### What comes back With `format: "json"` (the default), a list with one entry per domain. The first entry is the original domain (`fuzzer: "*original"`). Fields appear when dnstwist found data for them: | Field | Meaning | |---|---| | `domain`, `fuzzer` | The lookalike, and the algorithm that produced it | | `dns_a`, `dns_aaaa`, `dns_mx`, `dns_ns` | DNS records (only the first of each type unless `all_records`) | | `mx_spy` | With `mxcheck`: the mail server accepts mail for any address, so it could intercept email | | `banner_http`, `banner_smtp` | With `banners`: web and mail server banners | | `whois_created`, `whois_registrar` | With `whois`: registration date and registrar | | `ssdeep` or `tlsh` | With `lsh`: similarity score of the lookalike's web page to the original (named after the algorithm) | `csv` and `list` return dnstwist's text output unchanged. A default scan of `example.com` returns about 110 registered lookalikes, roughly 24,000 characters. Turning on `whois` adds about 40%, so narrow the `fuzzers` for large domains.
Sample output (defaults): {"domain": "example.com"} ```json [ { "banner_http": "cloudflare", "dns_a": [ "104.20.23.154" ], "dns_aaaa": [ "2606:4700:10::6814:179a" ], "dns_mx": [ "" ], "dns_ns": [ "elliott.ns.cloudflare.com" ], "domain": "example.com", "fuzzer": "*original" }, { "banner_http": "nginx", "dns_a": [ "103.168.172.37" ], "dns_mx": [ "us1-smtp.messagingengine.com" ], "dns_ns": [ "ns1.messagingengine.com" ], "domain": "exampler.com", "fuzzer": "addition" }, { "banner_http": "cloudflare", "dns_a": [ "104.21.23.31" ], "dns_aaaa": [ "2606:4700:3030::6815:171f" ], "dns_ns": [ "irena.ns.cloudflare.com" ], "domain": "example8.com", "fuzzer": "addition" }, "… 108 more" ] ```
Sample output (WHOIS for two algorithms): {"domain": "example.com", "whois": true, "fuzzers": ["homoglyph", "bitsquatting"]} ```json [ { "dns_a": [ "!ServFail" ], "dns_ns": [ "!ServFail" ], "domain": "dxample.com", "fuzzer": "bitsquatting", "whois_created": "2021-03-06", "whois_registrar": "GMO Internet Group, Inc. d/b/a Onamae.com" }, { "dns_a": [ "!ServFail" ], "dns_aaaa": [ "!ServFail" ], "domain": "exa-ple.com", "fuzzer": "bitsquatting", "whois_created": "2021-04-17", "whois_registrar": "GMO Internet Group, Inc. d/b/a Onamae.com" }, { "dns_a": [ "!ServFail" ], "dns_aaaa": [ "!ServFail" ], "dns_ns": [ "!ServFail" ], "domain": "exqmple.com", "fuzzer": "bitsquatting", "whois_created": "2019-03-04", "whois_registrar": "Amazon Registrar, Inc." }, "… 26 more" ] ```
Sample output (web-page similarity): {"domain": "example.com", "lsh": "tlsh", "fuzzers": ["vowel-swap"]} ```json [ { "banner_http": "Apache", "dns_a": [ "103.224.182.245" ], "dns_mx": [ "park-mx.above.com" ], "dns_ns": [ "ns1.abovedomains.com" ], "domain": "exemple.com", "fuzzer": "vowel-swap", "tlsh": 0 }, { "banner_http": "cloudflare", "dns_a": [ "104.20.23.154" ], "dns_aaaa": [ "2606:4700:10::6814:179a" ], "dns_mx": [ "" ], "dns_ns": [ "elliott.ns.cloudflare.com" ], "domain": "example.com", "fuzzer": "vowel-swap" }, { "banner_http": "Kestrel", "dns_a": [ "13.223.25.84" ], "dns_aaaa": [ "2600:1f18:4ae:c605:dd5d:b838:5816:d7fb" ], "dns_ns": [ "nsg1.namebrightdns.com" ], "domain": "examplo.com", "fuzzer": "vowel-swap", "tlsh": 11 }, "… 6 more" ] ```
Sample output (plain list of all permutations): {"domain": "example.com", "registered_only": false, "format": "list", "fuzzers": ["omission"]} ```text eample.com examle.com exampe.com exampl.com exaple.com exmple.com xample.com ```