{"$schema":"https://verifymcp.io/schemas/trust-report.json","schemaVersion":1,"license":{"name":"CC BY-NC 4.0","url":"https://creativecommons.org/licenses/by-nc/4.0/"},"generatedAt":"2026-11-05T15:52:30.512Z","url":"https://verifymcp.io/servers/com-dnsai-dnsai-free/mcp","markdownUrl":"https://verifymcp.io/servers/com-dnsai-dnsai-free/mcp.md","server":{"slug":"com-dnsai-dnsai-free","name":"DNSai Free DNS Tools","registryName":"com.dnsai/dnsai-free","description":"Free live DNS, SPF/DMARC/MX, DKIM and WHOIS lookups for any domain. No key needed to start.","registryStatus":"active","deletedAt":null,"statusMessage":null,"liveness":"live","publisher":{"class":"unknown","claimed":false}},"component":{"slug":"mcp","type":"remote","identifier":"https://mcp.dnsai.com/mcp","withdrawn":false,"url":"https://verifymcp.io/servers/com-dnsai-dnsai-free/mcp","version":"1.1.0","transport":null,"scoredAt":"2026-11-05T07:02:56.199Z"},"score":{"total":72,"tier":"medium","status":"scored","weekDelta":null,"history":[{"date":"2026-11-05","total":72},{"date":"2026-11-04","total":72},{"date":"2026-11-03","total":71},{"date":"2026-11-02","total":71}]},"categories":[{"name":"Endpoint Security","score":74,"verdict":"fail","reasons":["The endpoint's TLS certificate is valid, in date, and uses a strong key.","No authorisation is required to call this server. Nothing on it is marked destructive, but we can't show that an anonymous caller can only read: full credit needs the server to list at least one tool and every tool to be verifiably read-only. We use a best-effort check of tool names and descriptions to tell read-only tools from tools that change things, so some genuinely read-only tools may not get full credit. Names that start with a read verb (get, list, read, search and similar) and accurate readOnlyHint annotations help. Meet that to earn full credit, or require authorisation.","HTTPS is enforced; there's no plaintext access path.","HSTS check failed: the Strict-Transport-Security header is absent.","DNSSEC check failed: this domain isn't protected by DNSSEC."],"codes":[{"code":"tls.valid","args":{}},{"code":"auth.none_no_destructive","args":{}},{"code":"https.enforced","args":{}},{"code":"headers.hsts_absent","args":{}},{"code":"dnssec.absent","args":{}}]},{"name":"Transport & Reachability","score":100,"verdict":"pass","reasons":["Verified streamable-http transport via a live MCP handshake."],"codes":[{"code":"transport.verified","args":{"transport":"streamable-http"}}]},{"name":"Schema Quality & AI Usability","score":72,"verdict":"fail","reasons":["AI-judged instruction clarity (excellent).","Context-footprint check failed: tool/resource definitions use about 1925 tokens (~175/item across 11 items; 11 tools + 0 resources), over budget; trim descriptions and params.","Usage-examples check failed: none of the tools include examples."],"codes":[{"code":"schema.ai_quality","args":{"band":"excellent"}},{"code":"schema.footprint_heavy","args":{"avg":"175","items":"11","tools":"11","tokens":"1925","resources":"0"}},{"code":"schema.examples_absent","args":{}}]},{"name":"Stability & Change Management","score":10,"verdict":"partial","reasons":["Stability observed for 3 of 30 days with no destabilising changes; credit accrues until the full window elapses."],"codes":[{"code":"stability.building_history","args":{"days":"3"}}]},{"name":"Tool Coverage","score":100,"verdict":"pass","reasons":["100% of tools have a non-trivial description (not blank, and not just the tool's name).","100% of tool parameters carry a description.","Structured output schemas are declared (73% of tools); any adoption earns full credit."],"codes":[{"code":"toolquality.descriptions","args":{"pct":"100"}},{"code":"toolquality.param_docs","args":{"pct":"100"}},{"code":"toolquality.output_present","args":{"pct":"73"}}]},{"name":"Tool Safety","score":100,"verdict":"pass","reasons":["No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.","We read all 11 captured tool definition(s), and no name or description among them implies an irreversible operation.","An AI judge read all 12 captured unit(s) of tool text and found none that tries to manipulate the model reading it."],"codes":[{"code":"toolsafety.injection_clean","args":{}},{"code":"toolsafety.destructive_none","args":{"tools":"11"}},{"code":"toolsafety.manipulation_clean","args":{"units":"12","judged":"12"}}]},{"name":"Capabilities","score":100,"verdict":"pass","reasons":["Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28."],"codes":[{"code":"protocol.supported","args":{"latest":"2026-07-28","version":"2025-11-25"}}]}],"inconclusive":[],"malware":[],"components":[{"slug":"mcp","type":"remote","identifier":"https://mcp.dnsai.com/mcp","withdrawn":false,"score":72,"current":true,"url":"https://verifymcp.io/servers/com-dnsai-dnsai-free/mcp","markdownUrl":"https://verifymcp.io/servers/com-dnsai-dnsai-free/mcp.md"}],"facts":[{"label":"Endpoint","value":"https://mcp.dnsai.com/mcp"},{"label":"Transports","value":"streamable-http"},{"label":"Auth","value":"none"},{"label":"Version","value":"1.1.0"}],"install":{"available":true,"bundleSha256":null},"tools":[{"name":"dns_lookup","title":"DNS Lookup","description":"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\").","inputs":[{"name":"detail","type":"string","required":false,"description":"Output detail. Default (omit, or \"full\") returns the COMPLETE lookup: every record untruncated, plus network/ASN/geolocation, TTLs and resolver details — present the records the user asks for verbati…"},{"name":"domain","type":"string","required":true,"description":"The single domain to look up, e.g. \"acme.com\"."},{"name":"resolver","type":"string","required":false,"description":"Upstream resolver. Default google."},{"name":"type","type":"string","required":false,"description":"DNS record type to return. Default \"common\" returns the standard set (A, AAAA, MX, NS, TXT, SOA, CNAME, CAA + DNSSEC verdict); it does NOT query DNSKEY/RRSIG/NSEC* — those appear under not_queried an…"}],"outputs":[{"name":"data","type":"object","required":false,"description":"Clean machine values (DNS/WHOIS tools)."},{"name":"result","type":"object","required":false,"description":"Raw engine data."},{"name":"source","type":"string","required":true,"description":"Deep link on dnsai.com."},{"name":"summary","type":"string","required":true,"description":null},{"name":"usage","type":"object","required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":444},{"name":"email_security_check","title":"Email Security Check","description":"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.","inputs":[{"name":"detail","type":"string","required":false,"description":"Output detail. Default (omit, or \"full\") returns the graded posture PLUS every underlying DNS record untruncated. \"concise\" returns the grade, checks, fixes and the MX/SPF/DMARC records only."},{"name":"domain","type":"string","required":true,"description":"The single domain to assess, e.g. \"acme.com\"."}],"outputs":[{"name":"data","type":"object","required":false,"description":"Clean machine values (DNS/WHOIS tools)."},{"name":"result","type":"object","required":false,"description":"Raw engine data."},{"name":"source","type":"string","required":true,"description":"Deep link on dnsai.com."},{"name":"summary","type":"string","required":true,"description":null},{"name":"usage","type":"object","required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":227},{"name":"whois_lookup","title":"WHOIS Lookup","description":"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.","inputs":[{"name":"query","type":"string","required":true,"description":"A single domain or IP address, e.g. \"acme.com\" or \"8.8.8.8\"."}],"outputs":[{"name":"data","type":"object","required":false,"description":"Clean machine values (DNS/WHOIS tools)."},{"name":"result","type":"object","required":false,"description":"Raw engine data."},{"name":"source","type":"string","required":true,"description":"Deep link on dnsai.com."},{"name":"summary","type":"string","required":true,"description":null},{"name":"usage","type":"object","required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":102},{"name":"spf_analyze","title":"SPF Analyzer","description":"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.","inputs":[{"name":"domain","type":"string","required":true,"description":"The single domain to analyze, e.g. \"acme.com\"."}],"outputs":[{"name":"data","type":"object","required":false,"description":"Clean machine values (DNS/WHOIS tools)."},{"name":"result","type":"object","required":false,"description":"Raw engine data."},{"name":"source","type":"string","required":true,"description":"Deep link on dnsai.com."},{"name":"summary","type":"string","required":true,"description":null},{"name":"usage","type":"object","required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":98},{"name":"dmarc_check","title":"DMARC Check","description":"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.","inputs":[{"name":"domain","type":"string","required":true,"description":"The single domain to check, e.g. \"acme.com\"."}],"outputs":[{"name":"data","type":"object","required":false,"description":"Clean machine values (DNS/WHOIS tools)."},{"name":"result","type":"object","required":false,"description":"Raw engine data."},{"name":"source","type":"string","required":true,"description":"Deep link on dnsai.com."},{"name":"summary","type":"string","required":true,"description":null},{"name":"usage","type":"object","required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":103},{"name":"validate","title":"SPF/DMARC Record Validator","description":"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?\".","inputs":[{"name":"record","type":"string","required":true,"description":"The raw SPF or DMARC record to validate, e.g. \"v=spf1 include:_spf.google.com ~all\"."},{"name":"type","type":"string","required":false,"description":"Record type. Default auto-detect."}],"outputs":[{"name":"data","type":"object","required":false,"description":"Clean machine values (DNS/WHOIS tools)."},{"name":"result","type":"object","required":false,"description":"Raw engine data."},{"name":"source","type":"string","required":true,"description":"Deep link on dnsai.com."},{"name":"summary","type":"string","required":true,"description":null},{"name":"usage","type":"object","required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":109},{"name":"dkim_discover","title":"DKIM Discovery","description":"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.","inputs":[{"name":"domain","type":"string","required":true,"description":"The single domain to check, e.g. \"acme.com\"."}],"outputs":[{"name":"data","type":"object","required":false,"description":"Clean machine values (DNS/WHOIS tools)."},{"name":"result","type":"object","required":false,"description":"Raw engine data."},{"name":"source","type":"string","required":true,"description":"Deep link on dnsai.com."},{"name":"summary","type":"string","required":true,"description":null},{"name":"usage","type":"object","required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":115},{"name":"blacklist_check","title":"Blacklist Check","description":"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.","inputs":[{"name":"query","type":"string","required":true,"description":"A single domain or IP address, e.g. \"acme.com\" or \"8.8.8.8\"."}],"outputs":[{"name":"data","type":"object","required":false,"description":"Clean machine values (DNS/WHOIS tools)."},{"name":"result","type":"object","required":false,"description":"Raw engine data."},{"name":"source","type":"string","required":true,"description":"Deep link on dnsai.com."},{"name":"summary","type":"string","required":true,"description":null},{"name":"usage","type":"object","required":false,"description":null}],"hasOutputSchema":true,"hasExamples":false,"tokenEstimate":139},{"name":"search","title":"DNSai Search","description":"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.","inputs":[{"name":"query","type":"string","required":true,"description":"A natural-language query or a bare domain."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":68},{"name":"fetch","title":"DNSai Fetch","description":"Fetch a DNSai result document by id (from search). Runs the lookup and returns the data plus a summary.","inputs":[{"name":"id","type":"string","required":true,"description":"A result id from search, e.g. \"email_security_check:acme.com\"."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":54},{"name":"request_api_key","title":"Request Free API Key","description":"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_…).","inputs":[{"name":"email","type":"string","required":true,"description":"The user's email address to send the verification link to."}],"outputs":[],"hasOutputSchema":false,"hasExamples":false,"tokenEstimate":130}],"toolsTruncatedAtCapture":false,"diagnostics":{"capturedAt":"2026-11-05T07:02:56.000Z","track":"remote","endpoint":"https://mcp.dnsai.com/mcp","declaredUrl":null,"truncated":false,"tls":{"outcome":"valid","label":"Valid","version":"TLS 1.3","cipherSuite":"TLS_AES_128_GCM_SHA256","chainError":null,"certificates":[{"subject":"CN=dnsai.com","issuer":"CN=WE1,O=Google Trust Services,C=US","notBefore":"2026-10-14T21:12:14Z","notAfter":"2027-01-12T22:12:10Z","keyType":"ECDSA","keyBits":256,"isCa":false},{"subject":"CN=WE1,O=Google Trust Services,C=US","issuer":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","notBefore":"2023-12-13T09:00:00Z","notAfter":"2029-02-20T14:00:00Z","keyType":"ECDSA","keyBits":256,"isCa":true},{"subject":"CN=GTS Root R4,O=Google Trust Services LLC,C=US","issuer":"CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE","notBefore":"2023-11-15T03:43:21Z","notAfter":"2028-01-28T00:00:42Z","keyType":"ECDSA","keyBits":384,"isCa":true}]},"dnssec":{"result":"insecure","label":"Not signed","name":"mcp.dnsai.com.","steps":[{"zone":".","outcome":"verified","label":"Verified"},{"zone":"com.","outcome":"verified","label":"Verified"},{"zone":"dnsai.com.","outcome":"insecure_proven","label":"Unsigned (proven)"}]},"auth":{"outcome":"none","label":"No authorisation required","gate":null,"gateLabel":null,"status":200,"authorizationServers":[]},"httpsRedirect":{"outcome":"https_enforced","label":"HTTPS enforced","status":301},"transports":[{"transport":"streamable-http","outcome":"verified","label":"Verified","status":200,"followed":false}],"provenance":null,"installScripts":[],"installScriptsTotal":null,"vulnerabilities":[],"vulnerabilitiesTotal":null,"dependencies":null},"mismatches":[],"changelog":{"trackingSince":"2026-11-02","recent":[{"id":"chg_01a1a55d-bf17-7bb2-b96b-e88d405fa626","kind":"score.total_changed","summary":"Trust score (71 → 72)","materiality":"functional","direction":"improvement","scoreDelta":1,"occurredOn":"2026-11-04","url":"https://verifymcp.io/servers/com-dnsai-dnsai-free/mcp#chg-chg_01a1a55d-bf17-7bb2-b96b-e88d405fa626"},{"id":"chg_01a1a036-b98e-788d-a4e9-4134ca0c167c","kind":"check.reverified","summary":"Stability (unverified → 0.03)","materiality":"functional","direction":"improvement","scoreDelta":null,"occurredOn":"2026-11-03","url":"https://verifymcp.io/servers/com-dnsai-dnsai-free/mcp#chg-chg_01a1a036-b98e-788d-a4e9-4134ca0c167c"},{"id":"chg_01a19a35-5018-7afd-ae57-43367d80620e","kind":"score.first_scored","summary":"First indexed and scored","materiality":"functional","direction":"neutral","scoreDelta":null,"occurredOn":"2026-11-02","url":"https://verifymcp.io/servers/com-dnsai-dnsai-free/mcp#chg-chg_01a19a35-5018-7afd-ae57-43367d80620e"}],"truncated":false,"feedUrl":"https://verifymcp.io/servers/com-dnsai-dnsai-free/mcp/changelog.json"},"links":{"html":"https://verifymcp.io/servers/com-dnsai-dnsai-free/mcp","markdown":"https://verifymcp.io/servers/com-dnsai-dnsai-free/mcp.md","changelogJson":"https://verifymcp.io/servers/com-dnsai-dnsai-free/mcp/changelog.json","changelogRss":"https://verifymcp.io/servers/com-dnsai-dnsai-free/mcp.xml","external":[{"label":"Remote endpoint","href":"https://mcp.dnsai.com/mcp"},{"label":"Website","href":"https://dnsai.com/api/"}]}}