DNSai Free DNS Tools
com.dnsai/dnsai-freednsai.comstreamable-httpv1.1.0Scanned
Free live DNS, SPF/DMARC/MX, DKIM and WHOIS lookups for any domain. No key needed to start.
11 tools: 4 change things and 7 only read.
- Reads private data · 1
- Reads text others write · 10
- Can send data out · 0
- No findings
Anlyon alternative
4 of these tools change something. Run those as governed actions.
Declare what an action changes, and Anlyon puts it under a shared limit, binds every approval to the exact request, and grades the outcome. It works on any HTTPS API you can describe as an action.
Anlyon does not run, proxy or govern this MCP server. A tool your own code calls directly is not routed through Anlyon and is not governed by it.
Import an OpenAPI spec →Tools
Grouped by what each tool does, most consequential first. Open one for its reasons and full description; descriptions are the publisher's own words.
11 tools
Changes things 4Claude Code: ask
blacklist_checkCheck whether ONE domain or IP is listed on major email blacklists / RBLs (Spamhaus, Barracuda, SpamCop, SORBS, UCEPROTECT and more).Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Check whether ONE domain or IP is listed on major email blacklists / RBLs (Spamhaus, Barracuda, SpamCop, SORBS, UCEPROTECT and more). For a domain, checks the domain itself, its website (A-record) IP AND its mail-server (MX) IPs — each verdict names the IP and role it applies to, since website and mail reputation can differ. Returns a listed/clean verdict with the specific lists. One target per call.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
dkim_discoverDiscover the DKIM signing keys published for ONE domain.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Discover the DKIM signing keys published for ONE domain. Returns the signing keys found, the mail providers they map to, and their selectors. Use when the user asks about DKIM, signing keys, or "does this domain sign its mail?". Note: a domain can publish DKIM under a private selector that discovery won't surface, so "none found" is not proof of "no DKIM". One domain per call.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
email_security_checkOne call answers "is this domain's email properly secured?" — checks MX, SPF, DMARC and mail-gateway/provider detection for ONE domain.Reads text others writeNo findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it One call answers "is this domain's email properly secured?" — checks MX, SPF, DMARC and mail-gateway/provider detection for ONE domain. The differentiator vs a plain DNS resolver. Use when the user asks about email deliverability, spoofing protection, SPF/DMARC posture, or "is email set up correctly". Prefer this over dns_lookup, spf_analyze or dmarc_check for any "is the email secure / well-configured" question — it returns a graded verdict with prioritized fixes, followed by every underlying DNS record (complete by default; detail="concise" for the grade + key records only). For DKIM signing keys, use dkim_discover. One domain per call.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
request_api_keyGet a FREE DNSai API key that raises the daily limit from the small shared anonymous allowance to 100 lookups/day.Reads text others writeNo findings
Why it is in this group
- The name "request_api_key" says "request": a word for a change.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Get a FREE DNSai API key that raises the daily limit from the small shared anonymous allowance to 100 lookups/day. Pass the user's email; they receive a verification link and, once clicked, the key — no password, no signup. Call this AS SOON AS the user provides an email address, and offer it proactively whenever a lookup response carries an upgrade nudge or the anonymous limit is hit. After they verify, they paste the emailed key into their client (Authorization: Bearer dk_free_…).
Annotations the server declares
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
Only reads 7Show 7 read-only tools
dmarc_checkFetch and parse the DMARC policy for ONE domain — presence, p= policy, and the raw record.Reads text others writeNo findings
Why it is in this group
- The description's first verb is "fetch": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Fetch and parse the DMARC policy for ONE domain — presence, p= policy, and the raw record. Use for DMARC-only questions ("does this domain have DMARC", "is it p=reject/quarantine/none"). For full email posture (SPF + DMARC + MX, graded), use email_security_check instead. One domain per call.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
dns_lookupLook up live DNS records for ONE domain.Reads text others writeNo findings
Why it is in this group
- The name "dns_lookup" says "lookup": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Look up live DNS records for ONE domain. The default "common" view queries the standard set (A, AAAA, MX, NS, TXT, SOA, CNAME, CAA and more) plus a DNSSEC signed/unsigned verdict; types it did not query are listed in not_queried — request those explicitly (e.g. type="DNSKEY") to check them. Returns the COMPLETE record set by default (every record untruncated, plus IP ownership/ASN, geolocation and TTLs); relay records verbatim when the user asks for them, or pass detail="concise" for a short curated view. Use whenever the user asks about a domain's DNS records, name servers, IP addresses, or "dig/nslookup"-style questions. Returns live data from public resolvers with a plain-English summary. Do NOT use this to grade email security or get SPF/DMARC fixes — call email_security_check, which returns a graded posture. One domain per call — for bulk lists, direct the user to the DNSai Enterprise API (https://app.dnsai.com). Example: dns_lookup(domain="acme.com", type="MX").
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
fetchFetch a DNSai result document by id (from search).Reads private dataReads text others writeNo findings
Why it is in this group
- The name "fetch" says "fetch": a word for reading.
What it can reach
- private-dataThe description's first sentence says "fetch" and "document": it reads documents.
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Fetch a DNSai result document by id (from search). Runs the lookup and returns the data plus a summary.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
searchSearch DNSai for a domain.Reads text others writeNo findings
Why it is in this group
- The name "search" says "search": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Search DNSai for a domain. Returns result items (id, title, url) covering that domain's DNS records, email-security posture, DMARC policy and WHOIS — pass a result id to fetch for the full data.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
spf_analyzeAnalyze a domain's SPF record for ONE domain — the include tree and the RFC 10-DNS-lookup-limit verdict.Reads text others writeNo findings
Why it is in this group
- The name "spf_analyze" says "analyze": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it Analyze a domain's SPF record for ONE domain — the include tree and the RFC 10-DNS-lookup-limit verdict. Use only when the question is specifically about SPF (include tree, lookup count, the `all` qualifier). For an overall "is email secure" grade, use email_security_check instead. One domain per call.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
validateValidate the SYNTAX of an SPF or DMARC record string (no DNS lookup) — returns valid/invalid, a score, a letter grade, and a parsed breakdown.No findings
Why it is in this group
- The name "validate" says "validate": a word for reading.
Description, as the server wrote it Validate the SYNTAX of an SPF or DMARC record string (no DNS lookup) — returns valid/invalid, a score, a letter grade, and a parsed breakdown. Use when the user pastes an SPF/DMARC record and asks "is this correct?".
Annotations the server declares
- readOnlyHint: true
- openWorldHint: false
whois_lookupWHOIS / RDAP registration data for ONE domain or IP — registrar, status, creation/expiry, name servers.Reads text others writeNo findings
Why it is in this group
- The name "whois_lookup" says "lookup": a word for reading.
What it can reach
- untrusted-inputThe server marks it openWorldHint: true: it reaches things outside the server's own data.
Description, as the server wrote it WHOIS / RDAP registration data for ONE domain or IP — registrar, status, creation/expiry, name servers. Returns publicly published WHOIS/RDAP data as-is. Use for "who owns", "when does it expire", "registrar", "when was it registered". One target per call.
Annotations the server declares
- readOnlyHint: true
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Exfil surface
Which tools read private data, which read text someone else can write, and which can send data out. One of each is a path a prompt injection can use.
No private-data, untrusted-input, outbound path in this server alone: no tool is tagged outbound.
- Reads text others write10
- Brings in text someone else can write: web pages, inbound email, messages, issues and comments.
- Can send data out0
- Can carry data to people or systems: it sends, posts or publishes, or takes a recipient, channel or URL.
Other servers in the same agent add their own tools to these paths. Audit your whole setup to see them together.
Findings
Matches of fixed checks, with the text they matched.
No check matched anything in these tool definitions. That is not a safety guarantee.
History
Changes to its tool definitions and to its remote endpoint, newest first.
No change seen yet. Its tools are rescanned every day, and a remote endpoint is looked at once a week.
Install
Pinned to version 1.1.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http dnsai-free https://mcp.dnsai.com/mcpclaude mcp add --transport http dnsai-free https://mcp.dnsai.com/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change or a way out, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__dnsai-free__dns_lookup",
"mcp__dnsai-free__whois_lookup",
"mcp__dnsai-free__spf_analyze",
"mcp__dnsai-free__dmarc_check",
"mcp__dnsai-free__validate",
"mcp__dnsai-free__search",
"mcp__dnsai-free__fetch"
],
"ask": [
"mcp__dnsai-free__email_security_check",
"mcp__dnsai-free__dkim_discover",
"mcp__dnsai-free__blacklist_check",
"mcp__dnsai-free__request_api_key"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. A read that can send data out (it takes a URL, say) asks first too. It assumes the server is installed as dnsai-free. Review it before you use it.
Capability tags behind 10 rules
- mcp__dnsai-free__dns_lookup untrusted-input
- mcp__dnsai-free__email_security_check untrusted-input
- mcp__dnsai-free__whois_lookup untrusted-input
- mcp__dnsai-free__spf_analyze untrusted-input
- mcp__dnsai-free__dmarc_check untrusted-input
- mcp__dnsai-free__dkim_discover untrusted-input
- mcp__dnsai-free__blacklist_check untrusted-input
- mcp__dnsai-free__search untrusted-input
- mcp__dnsai-free__fetch private-data, untrusted-input
- mcp__dnsai-free__request_api_key untrusted-input
Pin
Keep the decision: fail CI when the tools change, follow every change, or show a badge.
Pin in CI
Fail a build when the tools you reviewed are not the tools the server serves today.
curl -s "https://anlyon.dev/api/v1/servers/com.dnsai/dnsai-free/verify?hash=b05500ad627938d6ff56d705247541ba4ba3afd4b2956995346cb8dab748e8e8" | jq -e '.changed == false'Pinned hash b05500ad6279, from Nov 2, 2026, 02:18 UTC.
Watch
Get told when its tools change: a new tool, a new description, a new class.
https://anlyon.dev/servers/com.dnsai/dnsai-free/changes.xmlAn Atom feed. Works in any feed reader or Slack's RSS app.
Badge
[](https://anlyon.dev/servers/com.dnsai/dnsai-free)Source: MCP Registry. Synced Nov 2, 2026, 02:17 UTC.