how.is domain & IP intelligence
Pay-per-call DNS, WHOIS, domain age, TLS, email auth, blocklists, IP intel. Free samples.
Should I use this
Quality & Safety
Findings (5)
- HIGH
- MEDIUMin site_status
- MEDIUMin site_screenshot
- MEDIUMin page_watch
- MEDIUMin bot_observatory
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"domain-intel": {
"url": "https://how.is/mcp"
}
}
}Remote endpoints
https://how.is/mcpstreamable-httpWhat it can do
Tool inventory
Tools (16)
🟢domain_profile(domain)
Everything 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.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"maxLength": 253,
"description": "A bare domain name, e.g. example.com"
}
},
"required": [
"domain"
],
"additionalProperties": false
}🟢domain_trust(domain)
Should 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[].
Input Schema
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"maxLength": 253,
"description": "A bare domain name, e.g. example.com"
}
},
"required": [
"domain"
],
"additionalProperties": false
}🟢domain_dns(domain)
A, 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.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"maxLength": 253,
"description": "A bare domain name, e.g. example.com"
}
},
"required": [
"domain"
],
"additionalProperties": false
}🟢domain_whois(domain)
Registrar, 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).
Input Schema
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"maxLength": 253,
"description": "A bare domain name, e.g. example.com"
}
},
"required": [
"domain"
],
"additionalProperties": false
}🟢domain_age(domain)
How 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.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"maxLength": 253,
"description": "A bare domain name, e.g. example.com"
}
},
"required": [
"domain"
],
"additionalProperties": false
}🟢domain_available(domain)
Is 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.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"maxLength": 253,
"description": "A bare domain name, e.g. example.com"
}
},
"required": [
"domain"
],
"additionalProperties": false
}🟢domain_tls(domain)
Certificate 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.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"maxLength": 253,
"description": "A bare domain name, e.g. example.com"
}
},
"required": [
"domain"
],
"additionalProperties": false
}🟢domain_dnssec(domain)
Whether 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.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"maxLength": 253,
"description": "A bare domain name, e.g. example.com"
}
},
"required": [
"domain"
],
"additionalProperties": false
}🟢domain_email_auth(domain)
SPF, 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.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"maxLength": 253,
"description": "A bare domain name, e.g. example.com"
}
},
"required": [
"domain"
],
"additionalProperties": false
}🟢domain_security_score(domain)
A 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.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"maxLength": 253,
"description": "A bare domain name, e.g. example.com"
}
},
"required": [
"domain"
],
"additionalProperties": false
}🟢domain_blacklist(domain)
Whether 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.
Input Schema
{
"type": "object",
"properties": {
"domain": {
"type": "string",
"maxLength": 253,
"description": "A bare domain name, e.g. example.com"
}
},
"required": [
"domain"
],
"additionalProperties": false
}🟢ip_lookup(ip)
Network 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.
Input Schema
{
"type": "object",
"properties": {
"ip": {
"type": "string",
"description": "An IPv4 or IPv6 address"
}
},
"required": [
"ip"
],
"additionalProperties": false
}🟢site_status(sites)
Live 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.
Input Schema
{
"type": "object",
"properties": {
"sites": {
"type": "array",
"maxItems": 10,
"items": {
"type": "string",
"format": "uri"
},
"description": "Up to 10 http(s):// URLs"
}
},
"additionalProperties": false
}🟢site_screenshot(url, full_page)
See 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.
Input Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri",
"maxLength": 2000,
"description": "A public http(s) URL"
},
"full_page": {
"type": "boolean",
"description": "Capture the whole page, not just the first screen"
}
},
"required": [
"url"
],
"additionalProperties": false
}🟡page_watch(url)
Has 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.
Input Schema
{
"type": "object",
"properties": {
"url": {
"type": "string",
"format": "uri",
"description": "An http(s):// URL on the public internet"
}
},
"required": [
"url"
],
"additionalProperties": false
}🟢bot_observatory
Partner 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).
Input Schema
{
"type": "object",
"properties": {},
"additionalProperties": false
}Community
Evidence