how.is domain & IP intelligence
Measured conclusion: Deep-tested. L2 outcome: tools_ok.
Pay-per-call DNS, WHOIS, domain age, TLS, email auth, blocklists, IP intel. Free samples.
| Author | is.how |
|---|---|
| Access | remote |
| Publisher key required | No |
| Measured state | Deep-tested |
| L1 liveness | alive |
| L1 latency | 2702 ms |
| Last measured | 2026-10-24 |
Add to your agent
Copy this into your MCP client config:
{
"mcpServers": {
"how.is domain & IP intelligence": {
"url": "https://how.is/mcp",
"transport": "streamable-http"
}
}
}
Measured tools (16)
domain_profileread-onlyEverything about a domain in one call: DNS, WHOIS, TLS, DNSSEC, email auth, security score, blacklist status, plus IP intelligence for its A record. Price $0.025 per call. Free sample: {"domain": "example.com"}. Returns: data.sections.{dns,whois,tls,dnssec,email-auth,security-score,blacklist,ip}; data.errors names any section that failed; data.billing says what was delivered.
Parameters:
domain(required) — string — A bare domain name, e.g. example.com
Hints: read-only yes · destructive no · idempotent yes · open-world yes
domain_trustread-onlyShould an agent click, sign in to, or pay this domain? A risk score and verdict (likely_safe / caution / high_risk, or inconclusive when a check could not run) with plain-English reasons, from domain age, spam/abuse blocklists and the HTTPS certificate. Price $0.020 per call. Free sample: {"domain": "example.com"}. Returns: data: verdict, risk_score (0-100), reasons[{risk, why}], age_days, blocklist_listings, blocklists_unanswered[], https_valid, not_checked[].
Parameters:
domain(required) — string — A bare domain name, e.g. example.com
Hints: read-only yes · destructive no · idempotent yes · open-world yes
domain_dnsread-onlyA, AAAA, MX, NS, TXT and other records for a domain, with resolve timing. Price $0.005 per call. Free sample: {"domain": "example.com"}. Returns: data.data.records keyed by record type (A, AAAA, MX, NS, TXT, ...); data.data.responseTime.
Parameters:
domain(required) — string — A bare domain name, e.g. example.com
Hints: read-only yes · destructive no · idempotent yes · open-world yes
domain_whoisread-onlyRegistrar, creation and expiry dates, nameservers and status codes for a domain. Price $0.005 per call. Free sample: {"domain": "example.com"}. Returns: data.data.data: the parsed WHOIS/RDAP record (registrar, dates, nameservers, status).
Parameters:
domain(required) — string — A bare domain name, e.g. example.com
Hints: read-only yes · destructive no · idempotent yes · open-world yes
domain_ageread-onlyHow old a domain is: registration date, age in days and years, and whether it was registered in the last 30 days (a common phishing signal). Price $0.005 per call. Free sample: {"domain": "example.com"}. Returns: data: created, age_days, age_years, newly_registered, expires, registrar, source.
Parameters:
domain(required) — string — A bare domain name, e.g. example.com
Hints: read-only yes · destructive no · idempotent yes · open-world yes
domain_availableread-onlyIs this domain name registered? Asked of the registry over RDAP, with the standard first-year and renewal price when it is free to register. Price $0.005 per call. Free sample: {"domain": "example.com"}. Returns: data: available (true/false; null when only DNS could be checked, then likely_available), registered_on, suffix, source (rdap/dns), confidence, price{registration_usd, renewal_usd, registrar, note}, caveat.
Parameters:
domain(required) — string — A bare domain name, e.g. example.com
Hints: read-only yes · destructive no · idempotent yes · open-world yes
domain_tlsread-onlyCertificate validity, issuer, protocol and days until expiry for a domain. Price $0.005 per call. Free sample: {"domain": "example.com"}. Returns: data.data: valid, issuer, subject, subjectAltNames, validFrom, validTo, daysUntilExpiry, protocol, cipher, selfSigned.
Parameters:
domain(required) — string — A bare domain name, e.g. example.com
Hints: read-only yes · destructive no · idempotent yes · open-world yes
domain_dnssecread-onlyWhether DNSSEC is signed and validates for a domain. Price $0.005 per call. Free sample: {"domain": "example.com"}. Returns: data.data: isSigned, isValid, validationStatus, chainOfTrust, dsRecords, dnskeyRecords, errors, warnings, recommendations.
Parameters:
domain(required) — string — A bare domain name, e.g. example.com
Hints: read-only yes · destructive no · idempotent yes · open-world yes
domain_email_authread-onlySPF, DKIM and DMARC records and posture for a domain. Price $0.005 per call. Free sample: {"domain": "example.com"}. Returns: data.data: spf, dkim, dmarc, mx, overallScore, overallStatus, recommendations.
Parameters:
domain(required) — string — A bare domain name, e.g. example.com
Hints: read-only yes · destructive no · idempotent yes · open-world yes
domain_security_scoreread-onlyA letter grade and point score for a domain security posture, with the scored items behind it. Price $0.005 per call. Free sample: {"domain": "example.com"}. Returns: data.data: grade, overallScore, maxPossibleScore, categories[] of scored items.
Parameters:
domain(required) — string — A bare domain name, e.g. example.com
Hints: read-only yes · destructive no · idempotent yes · open-world yes
domain_blacklistread-onlyWhether the addresses behind a domain appear on spam and abuse blocklists. Price $0.005 per call. Free sample: {"domain": "example.com"}. Returns: data.data.ipResults[]: target, isListed, listingCount, totalChecked.
Parameters:
domain(required) — string — A bare domain name, e.g. example.com
Hints: read-only yes · destructive no · idempotent yes · open-world yes
ip_lookupread-onlyNetwork owner (ASN), company, geolocation, privacy flags and abuse contact for an IP address. Price $0.005 per call. Free sample: {"ip": "1.1.1.1"}. Returns: data.data: ip, hostname, city, region, country, asn, company, privacy, carrier, abuse.
Parameters:
ip(required) — string — An IPv4 or IPv6 address
Hints: read-only yes · destructive no · idempotent yes · open-world yes
site_statusread-onlyLive check of one or more URLs: HTTP status, latency, DNS resolve time, resolved IP, TTL, nameservers, TLS days remaining. Price $0.005 per call. Free sample: {"sites": ["https://example.com"]}. Returns: data keyed by URL; each entry has ok, code, ms, dns_ms, ip, ttl, ns, cert_days, server, ts.
Parameters:
sites— array — Up to 10 http(s):// URLs
Hints: read-only yes · destructive no · idempotent yes · open-world yes
site_screenshotread-onlySee a web page: a 1280-wide JPEG of any public URL, viewport or full page (capped at 6000 px), with its final URL, HTTP status and title. Price $0.020 per call. Free sample: {"url": "https://example.com"}. Returns: data: image_base64 (JPEG), mime, width, height, final_url, http_status, title, note.
Parameters:
url(required) — string — A public http(s) URLfull_page— boolean — Capture the whole page, not just the first screen
Hints: read-only yes · destructive no · idempotent yes · open-world yes
page_watchHas this page changed since your last call, and how much? The first call stores a baseline; later calls return a text diff (2% threshold). Price $0.005 per call. Free sample: {"url": "https://example.com"}. Returns: data with baseline, changed, change_pct, added, removed, last_change_ts.
Parameters:
url(required) — string — An http(s):// URL on the public internet
Hints: read-only no · destructive no · idempotent no · open-world yes
bot_observatoryread-onlyPartner tier of the dns.pizza bot observatory: every network (ASN), named crawler, TLS (JA4) fingerprint and firewall rule seen in the last 7 days, refreshed hourly. The public tier is free at https://dns.pizza/bots. Price $0.050 per call. Returns: data.data: generated_at, networks, bots, fingerprints (the free tier at dns.pizza/bots shows the same shape without fingerprints).
Hints: read-only yes · destructive no · idempotent yes · open-world yes
Measured by MCPYP probing. Untested fields are omitted, never estimated. Listing is always free; MCPYP never proxies calls or stores user tokens.