Zovo DNS Checker MCP
A remote MCP server that performs live DNS lookups via DNS-over-HTTPS and inspects email authentication records including SPF, DMARC, DKIM, and MX. It parses SPF lookup counts against RFC 7208 limits, reads DMARC policies, checks DKIM keys for specified selectors, and returns pass/warn/fail findings with suggested fixes. The server also supports generic record type lookups (A, AAAA, MX, NS, TXT, CNAME, CAA, SOA) and provides downloadable CSV reports for the results.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://dns-checker.zovo.one/mcpWhat you can do with it
- Check the email DNS records for a domain
- Do an SPF and DMARC check for a domain
- Show the MX and TXT records for a domain
- Check DKIM keys for specific selectors
Source and maintenance
Protocol and capabilities
- Server
- dns-checker 1.0.0
- MCP protocol
- 2025-06-18
- Tools
- 2 advertised
- Resources
- 1 advertised
- Resource templates
- 1 advertised
- Prompts
- Not advertised
{
"tools": {
"listChanged": true
},
"resources": {
"listChanged": true
}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
2 advertised
check_email_dns — Check email DNS
Use this when the user wants an email DNS check, a DMARC checker, an SPF record checker, a DKIM checker, or an MX lookup for a domain. Reads the live public DNS records through DNS-over-HTTPS and returns MX hosts, the SPF record with its DNS-lookup count against the limit of 10, the DMARC policy, reporting and alignment, DKIM keys for the selectors you give, and a pass/warn/fail findings list with a fix and a CSV report. Do not use for internal DNS server visibility, full deliverability tests, or reading or sending mail.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"maxLength": 253,
"minLength": 1,
"description": "The domain to check, without http or a path, e.g. example.com."
},
"dkim_selectors": {
"type": "array",
"items": {
"type": "string",
"maxLength": 63,
"minLength": 1
},
"maxItems": 5,
"description": "Up to 5 DKIM selector names to test, e.g. [\"mail\", \"selector1\"]. Ask the mail provider or check the DKIM signature header if the selector is unknown."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"domain",
"checked_at",
"source",
"sources",
"mx",
"spf",
"dmarc",
"dkim",
"findings",
"summary",
"downloads",
"limits"
],
"properties": {
"mx": {
"type": "object",
"required": [
"count",
"status",
"records"
],
"properties": {
"count": {
"type": "number"
},
"status": {
"type": "string"
},
"records": {
"type": "array",
"items": {
"type": "object",
"required": [
"priority",
"host"
],
"properties": {
"host": {
"type": "string"
},
"priority": {
"type": "number"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
},
"spf": {
"type": "object",
"required": [
"present",
"count",
"record",
"lookup_count",
"qualifier",
"mechanisms",
"ptr",
"complete",
"verdict",
"reason"
],
"properties": {
"ptr": {
"type": "boolean"
},
"count": {
"type": "number"
},
"reason": {
"type": "string"
},
"record": {
"type": "string"
},
"present": {
"type": "boolean"
},
"verdict": {
"type": "string"
},
"complete": {
"type": "boolean"
},
"qualifier": {
"type": [
"string",
"null"
]
},
"mechanisms": {
"type": "array",
"items": {
"type": "object",
"required": [
"type",
"value",
"qualifier"
],
"properties": {
"type": {
"type": "string"
},
"value": {
"type": "string"
},
"qualifier": {
"type": "string"
}
},
"additionalProperties": false
}
},
"lookup_count": {
"type": "number"
}
},
"additionalProperties": false
},
"dkim": {
"type": "array",
"items": {
"type": "object",
"required": [
"selector",
"found",
"key_type",
"key_bits",
"revoked",
"verdict",
"reason"
],
"properties": {
"found": {
"type": "boolean"
},
"reason": {
"type": "string"
},
"revoked": {
"type": "boolean"
},
"verdict": {
"type": "string"
},
"key_bits": {
"type": [
"number",
"null"
]
},
"key_type": {
"type": [
"string",
"null"
]
},
"selector": {
"type": "string"
}
},
"additionalProperties": false
}
},
"dmarc": {
"type": "object",
"required": [
"present",
"count",
"record",
"policy",
"sp",
"pct",
"rua",
"ruf",
"adkim",
"aspf",
"invalid_tags",
"verdict",
"reason",
"np",
"fo",
"rf",
"ri",
"t",
"psd",
"diagnostics"
],
"properties": {
"t": {
"type": "string"
},
"fo": {
"type": "string"
},
"np": {
"type": [
"string",
"null"
]
},
"rf": {
"type": "string"
},
"ri": {
"type": "number"
},
"sp": {
"type": [
"string",
"null"
]
},
"pct": {
"type": [
"number",
"null"
]
},
"psd": {
"type": "string"
},
"rua": {
"type": "array",
"items": {
"type": "string"
}
},
"ruf": {
"type": "array",
"items": {
"type": "string"
}
},
"aspf": {
"type": "string"
},
"adkim": {
"type": "string"
},
"count": {
"type": "number"
},
"policy": {
"type": [
"string",
"null"
]
},
"reason": {
"type": "string"
},
"record": {
"type": "string"
},
"present": {
"type": "boolean"
},
"verdict": {
"type": "string"
},
"diagnostics": {
"type": "array",
"items": {
"type": "object",
"required": [
"level",
"message"
],
"properties": {
"level": {
"enum": [
"warn",
"info"
],
"type": "string"
},
"message": {
"type": "string"
}
},
"additionalProperties": false
}
},
"invalid_tags": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
},
"domain": {
"type": "string"
},
"limits": {
"type": "string"
},
"source": {
"type": "object",
"required": [
"name",
"url"
],
"properties": {
"url": {
"type": "string"
},
"name": {
"type": "string"
}
},
"additionalProperties": false
},
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"url",
"checked_at"
],
"properties": {
"url": {
"type": "string"
},
"name": {
"type": "string"
},
"checked_at": {
"type": "string"
}
},
"additionalProperties": false
}
},
"summary": {
"type": "object",
"required": [
"pass",
"warn",
"fail"
],
"properties": {
"fail": {
"type": "number"
},
"pass": {
"type": "number"
},
"warn": {
"type": "number"
}
},
"additionalProperties": false
},
"findings": {
"type": "array",
"items": {
"type": "object",
"required": [
"level",
"area",
"code",
"message",
"fix"
],
"properties": {
"fix": {
"type": "string"
},
"area": {
"type": "string"
},
"code": {
"type": "string"
},
"level": {
"type": "string"
},
"message": {
"type": "string"
}
},
"additionalProperties": false
}
},
"downloads": {
"type": "object",
"required": [
"csv"
],
"properties": {
"csv": {
"type": "string"
}
},
"additionalProperties": false
},
"checked_at": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Check email DNS",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}lookup_dns_records — Look up DNS records
Use this when the user wants a dns lookup, an mx record check, or a txt record lookup for a domain. Reads live public DNS records through DNS-over-HTTPS and returns A, AAAA, MX, NS, TXT, CNAME, CAA, and SOA records with their TTLs, plus a CSV report. Do not use for internal DNS server visibility, reverse DNS of an IP address, or records outside the supported type list.
{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"domain"
],
"properties": {
"types": {
"type": "array",
"items": {
"enum": [
"A",
"AAAA",
"MX",
"NS",
"TXT",
"CNAME",
"CAA",
"SOA"
],
"type": "string"
},
"description": "Record types to return, a subset of A, AAAA, MX, NS, TXT, CNAME, CAA, SOA, e.g. [\"MX\", \"TXT\"]. Omit for A, AAAA, MX, NS, TXT, CNAME, CAA, and SOA."
},
"domain": {
"type": "string",
"maxLength": 253,
"minLength": 1,
"description": "The domain to look up, e.g. example.com or mail.example.com."
}
}
}{
"type": "object",
"$schema": "http://json-schema.org/draft-07/schema#",
"required": [
"domain",
"checked_at",
"source",
"sources",
"types",
"records",
"counts",
"total",
"findings",
"downloads",
"limits"
],
"properties": {
"total": {
"type": "number"
},
"types": {
"type": "array",
"items": {
"type": "string"
}
},
"counts": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "number"
}
},
"domain": {
"type": "string"
},
"limits": {
"type": "string"
},
"source": {
"type": "object",
"required": [
"name",
"url"
],
"properties": {
"url": {
"type": "string"
},
"name": {
"type": "string"
}
},
"additionalProperties": false
},
"records": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"ttl",
"data"
],
"properties": {
"ttl": {
"type": "number"
},
"data": {
"type": "string"
},
"name": {
"type": "string"
}
},
"additionalProperties": false
}
}
},
"sources": {
"type": "array",
"items": {
"type": "object",
"required": [
"name",
"url",
"checked_at"
],
"properties": {
"url": {
"type": "string"
},
"name": {
"type": "string"
},
"checked_at": {
"type": "string"
}
},
"additionalProperties": false
}
},
"findings": {
"type": "array",
"items": {
"type": "object",
"required": [
"level",
"area",
"code",
"message",
"fix"
],
"properties": {
"fix": {
"type": "string"
},
"area": {
"type": "string"
},
"code": {
"type": "string"
},
"level": {
"type": "string"
},
"message": {
"type": "string"
}
},
"additionalProperties": false
}
},
"downloads": {
"type": "object",
"required": [
"csv"
],
"properties": {
"csv": {
"type": "string"
}
},
"additionalProperties": false
},
"checked_at": {
"type": "string"
}
},
"additionalProperties": false
}{
"title": "Look up DNS records",
"readOnlyHint": true,
"openWorldHint": true,
"idempotentHint": true,
"destructiveHint": false
}Prompts
Not advertised
Resources
1 advertised
dns-checker-widget — Zovo DNS Checker view
Interactive view for Zovo DNS Checker.
ui://widget/dns-checker-v6-1.0.0-f5a5bef0dbba0a981382c5ddf77318a141be5e19dc79573b24f6def7a23ecb39.htmldns-checker-widget-legacy — Zovo DNS Checker view (previous versions)
ui://widget/dns-checker-{version}.html30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 675 ms
- 95th percentile latency
- 675 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 675 ms · metadata changed · 2 tool(s), 1 resource(s), 1 resource template(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http zovo-dns-checker-mcp https://dns-checker.zovo.one/mcpCodex
codex mcp add zovo-dns-checker-mcp --url https://dns-checker.zovo.one/mcpCursor
{
"mcpServers": {
"zovo-dns-checker-mcp": {
"url": "https://dns-checker.zovo.one/mcp"
}
}
}Cline
{
"mcpServers": {
"zovo-dns-checker-mcp": {
"type": "streamableHttp",
"url": "https://dns-checker.zovo.one/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"zovo-dns-checker-mcp": {
"type": "http",
"url": "https://dns-checker.zovo.one/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http zovo-dns-checker-mcp https://dns-checker.zovo.one/mcpClaude Desktop
{
"mcpServers": {
"zovo-dns-checker-mcp": {
"url": "https://dns-checker.zovo.one/mcp"
}
}
}Windsurf
{
"mcpServers": {
"zovo-dns-checker-mcp": {
"serverUrl": "https://dns-checker.zovo.one/mcp"
}
}
}Let your agent find its tools
Find servers like Zovo DNS Checker MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.