Skip to content
Back to search
100
MCP live MCP 2026-07-28 streamable-http

dev.dnsdoctor/dns-doctor

dev.dnsdoctor/dns-doctor

Scan, fix, verify and monitor DNS: SPF, DMARC, DKIM, propagation, health, expiry. Validated fixes.

Watch this dependency

Get before/after evidence when observed tools, schemas, authentication access, availability or the endpoint changes.

Inspect evidence and set up a watch Share public evidence report
Uptime
100.0%
5 direct probes · 30d
Response
458ms
last probe
Tools
27
callable
Resources
2
readable
Prompts
0
available
Score: 100/100
Handshake verified by our own probe.
why this score
pass Answers the MCP handshake 50/50
The handshake and the list calls succeeded on the primary URL.
pass Lists tools, resources or prompts 30/30
27 tools, 2 resources, 0 prompts returned.
pass 3 or more catalogue items 10/10
29 items in total; 3 or more earns these points.
pass Describes itself 10/10
98 characters; more than 30 earns these points.

Tools · 27

scan_domain

Use this when the user asks to check, audit, diagnose or troubleshoot SPF, DKIM, DMARC, email authentication, email deliverability DNS, why their mail lands in spam, MX, DNS health, blacklist status, …

get_report

Use this for the same questions as scan_domain when a recent report is enough (the cheap first look); use scan_domain when the state must be re-read now. Return the stored report for a domain, scannin…

build_dmarc_upgrade

Use this when the user asks how to move DMARC on from p=none, whether it is safe to tighten DMARC, or what the next DMARC policy step is for a domain (a scan can justify quarantine at most; reject nee…

start_monitoring_signup

Use this when the user asks for ongoing DMARC monitoring, RUA report monitoring, new-sender monitoring, email-authentication alerts or ongoing DNS monitoring of a domain they own. Returns signup_url, …

count_spf_lookups

Use this when the user asks about SPF 'too many lookups', the 10-lookup limit, an SPF PermError, or whether an SPF record is valid. Validate an SPF record and count what it costs. Returns `record_vali…

validate_dmarc_record

Use this when the user pastes a DMARC record and asks whether it is valid, correct or safe. Validate a pasted DMARC record: parsed tags, level'd findings, and whether it is valid. No DNS lookup — pass…

generate_dmarc_record

Use this when the user asks to create, generate or write a DMARC record for a domain that has none. Build a DMARC record from scratch for a domain that has none, using a validating engine — never comp…

check_dkim_selector

Use this when the user asks whether DKIM is set up for a sending platform, whether a specific selector exists, or why DKIM fails. Check ONE specific DKIM selector on a domain — the exact selector the …

parse_dmarc_report

Use this when the user uploads or pastes a DMARC aggregate (RUA) XML report and asks what it says. Parse ONE DMARC aggregate (RUA) report into readable per-source aggregates: who sent mail as the doma…

check_record

Use this when the user asks whether a DNS change has landed, wants a DNS record looked up, or wants to verify a record they just published — or whenever answering needs the live value of a record. Rea…

check_reverse_dns

Use this when the user asks about reverse DNS, PTR records, or FCrDNS for a mail server IP. Check one sending IP's forward-confirmed reverse DNS (FCrDNS): reads the IP's PTR record, then resolves that…

audit_spf_includes

Use this when the user asks who can send email as their domain through SPF includes, or wants an SPF supply-chain or third-party sender audit. Audit a domain's SPF supply chain: walks every include an…

build_parked_domain_records

Use this when the user asks how to protect a domain that sends no email from being spoofed. Build the three-record hardening pack that makes a NON-SENDING domain unusable for spoofing: a Null MX, a ha…

check_propagation

Use this when the user asks whether a DNS change has propagated globally, or why a record shows in one place and not another. Check whether a DNS change has propagated GLOBALLY: six vantage points (fi…

lookup_registration

Use this when the user asks who owns a domain, when it expires, which registrar or nameservers it has, whether it is registered, or whether a transfer or delete lock is set — the WHOIS question. Read …

get_alerts

Use this when a signed-in operator asks what changed on a monitored domain, or what the monitoring has flagged. Read the monitoring alert log for the domains the caller's account monitors, newest firs…

get_readiness

Use this when a signed-in operator asks whether a monitored domain is ready for the next DMARC step. Read the DMARC enforcement-readiness verdict for ONE domain the caller's account monitors, computed…

list_my_domains

Use this when a signed-in operator asks which domains their DNS Doctor account monitors, or what to do next on them. Lists every domain on the caller's account with its state — verified, pending (adde…

check_lookalikes

Use this when the user asks about lookalike, look-alike, typosquat or impersonation domains of their domain, or whether someone has registered a name close to theirs. DNS-only: checks the closest vari…

get_lookalikes

Use this when a signed-in operator asks which lookalike domains of a monitored domain the watch has found, how risky they are, or for one's takedown evidence. Requires an API token with monitoring:rea…

start_email_test

Use this when the user wants to know how a real email from them actually authenticates — whether a message from Google Workspace, Microsoft 365, a newsletter tool or an app is SPF/DKIM/DMARC aligned, …

get_email_test

Use this after start_email_test, once the user says they sent the email. Returns status pending | received | expired | error. pending means the message has not arrived (or is still being checked): ask…

list_email_tests

Use this when a signed-in user asks about email tests they ran before, or how a sender's earlier tests scored. Requires an API token with monitoring:read. Returns the account's own tests, newest first…

check_bimi

Use this when the user asks how to get their logo shown in Gmail, Yahoo, Apple Mail or other inboxes (BIMI), whether their BIMI setup works, or why their logo does not show. A live read of one host's …

add_monitored_domain

Add a domain to the signed-in user's DNS Doctor monitoring and return the ownership-check TXT record they must publish, plus where their DNS is hosted, a provider-specific guide link and, when their p…

check_domain_verification

Use this only for DNS Doctor's own ownership TXT challenge on a domain the user already added to their DNS Doctor account (add_monitored_domain). For a TXT record another service asked for (Google Wor…

get_domain_records

Read the records a domain the user monitors still needs: the ownership check while it is unverified, and once verified the DMARC reporting record plus whether we have OBSERVED that record published. R…

Resources · 2

monitored-domains

The token's account's verified monitored domains with each domain's latest per-check statuses. Requires a bearer token.

dnsdoctor://domains
dns-doctor-card ui://dnsdoctor/card-v1.html

How to use

Add to your Claude Desktop / Cursor / Cline MCP config:

{
  "mcpServers": {
    "dev.dnsdoctor/dns-doctor": {
      "url": "https://dnsdoctor.dev/mcp",
      "transport": "streamable-http"
    }
  }
}