madaburns avatar

BlackVeil DNS & Email Security Scanner

madaburns/bv-mcp

Comprehensive DNS and email security scanner that connects Claude to 78 tools covering SPF, DMARC, DKIM, DNSSEC, SSL/TLS, MTA-STS, subdomain takeover, and brand monitoring. Runs entirely over public Cloudflare DNS-over-HTTPS with no API keys required. Ships with fix plan generation, compliance mapping to NIST 800-177 and PCI DSS, attack path simulation, and supply chain dependency graphing. Available as a one-click Claude Desktop extension, hosted Streamable HTTP endpoint, or self-hosted via npm. Useful when you need to audit domain security posture, investigate email deliverability issues, or assess third-party DNS trust surfaces without touching production infrastructure.

tools
80
transport
HTTP
last updated
Nov 13, 2026

Install

From registry metadata
$ npx add-mcp https://dns-mcp.blackveilsecurity.com/mcp --name dns

Run in your terminal. add-mcp asks which agents to add it to (Claude Code, Codex, Cursor and more). Add -g to install it for every project.

Review the command, arguments and environment values before installing. MCP servers run with your local permissions.

Other ways

Claude Code

$ claude mcp add --transport http dns https://dns-mcp.blackveilsecurity.com/mcp

Run in your terminal. Add --scope user to make it available in every project.

Tools

Verified live · 80 tools

Verified live against the running server on Nov 6, 2026.

check_mxLook up MX records for a domain. Identifies which mail servers receive inbound email for the domain and which email hosting provider is used (Google Workspace, Microsoft 365, Proofpoint, etc.). Use when asked which email provider hosts inbound mail for a domain, or to see MX r...3 params

Look up MX records for a domain. Identifies which mail servers receive inbound email for the domain and which email hosting provider is used (Google Workspace, Microsoft 365, Proofpoint, etc.). Use when asked which email provider hosts inbound mail for a domain, or to see MX r...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_spfLook up and validate the SPF record for a domain. Lists all IP addresses and third-party senders authorised to send email on behalf of the domain, flags syntax errors, and shows the trust surface (which mail servers are whitelisted). Use when you need to know who is permitted...3 params

Look up and validate the SPF record for a domain. Lists all IP addresses and third-party senders authorised to send email on behalf of the domain, flags syntax errors, and shows the trust surface (which mail servers are whitelisted). Use when you need to know who is permitted...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_dmarcLook up and validate the DMARC record for a domain. Shows the enforcement level (none/quarantine/reject), alignment mode (strict/relaxed), and aggregate/forensic reporting destinations. Use to determine a domain's DMARC enforcement level, whether it sends aggregate reports, or...3 params

Look up and validate the DMARC record for a domain. Shows the enforcement level (none/quarantine/reject), alignment mode (strict/relaxed), and aggregate/forensic reporting destinations. Use to determine a domain's DMARC enforcement level, whether it sends aggregate reports, or...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_dkimLook up DKIM records for a domain. Probes common selectors, validates the signing algorithm used for outgoing email (RSA-1024/2048, Ed25519), and reports key strength. Use to verify that outbound email signatures are cryptographically sound. Part of the scan_domain audit.4 params

Look up DKIM records for a domain. Probes common selectors, validates the signing algorithm used for outgoing email (RSA-1024/2048, Ed25519), and reports key strength. Use to verify that outbound email signatures are cryptographically sound. Part of the scan_domain audit.

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
selectorstring
DKIM selector. Omit to probe common ones.
check_dnssecCheck DNSSEC status for a domain. Verifies whether DNS is tamper-proof and protected against cache poisoning and DNS spoofing attacks by validating DNSKEY and DS records. Reports whether DNSSEC is enabled and validating. Part of the scan_domain audit.3 params

Check DNSSEC status for a domain. Verifies whether DNS is tamper-proof and protected against cache poisoning and DNS spoofing attacks by validating DNSKEY and DS records. Reports whether DNSSEC is enabled and validating. Part of the scan_domain audit.

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_sslCheck the HTTPS/TLS posture of a domain: HTTPS reachability, HSTS policy, and HTTP-to-HTTPS redirect. Also returns certificate metadata (issuer, expiry date, days remaining, SAN count) read from public Certificate Transparency logs — this describes the most recently LOGGED cer...3 params

Check the HTTPS/TLS posture of a domain: HTTPS reachability, HSTS policy, and HTTP-to-HTTPS redirect. Also returns certificate metadata (issuer, expiry date, days remaining, SAN count) read from public Certificate Transparency logs — this describes the most recently LOGGED cer...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_mta_stsCheck whether a domain enforces SMTP TLS for inbound mail via MTA-STS, protecting against downgrade attacks. Queries _mta-sts.<domain> and fetches the policy file, reports mode (enforce/testing/none) and MX coverage. Use to verify whether inbound SMTP is protected against TLS...3 params

Check whether a domain enforces SMTP TLS for inbound mail via MTA-STS, protecting against downgrade attacks. Queries _mta-sts.<domain> and fetches the policy file, reports mode (enforce/testing/none) and MX coverage. Use to verify whether inbound SMTP is protected against TLS...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_nsAudit a domain’s nameserver delegation and redundancy. Identifies the DNS hosting provider and, when the infrastructure probe is available, directly compares parent and child NS sets, verifies authoritative AA responses, and checks required glue addresses. Use to detect stale...3 params

Audit a domain’s nameserver delegation and redundancy. Identifies the DNS hosting provider and, when the infrastructure probe is available, directly compares parent and child NS sets, verifies authoritative AA responses, and checks required glue addresses. Use to detect stale...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_caaLook up CAA records for a domain. Shows which Certificate Authorities are authorized to issue certificates. Part of the scan_domain audit.3 params

Look up CAA records for a domain. Shows which Certificate Authorities are authorized to issue certificates. Part of the scan_domain audit.

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_bimiCheck the BIMI brand-logo record at default._bimi.<domain>. Validates the logo URL (l=) and the presence of mark-certificate authority evidence (a=) — the a= tag is a bare URL, so the certificate type (VMC or CMC) is not determined — and verifies the DMARC enforcement prerequi...3 params

Check the BIMI brand-logo record at default._bimi.<domain>. Validates the logo URL (l=) and the presence of mark-certificate authority evidence (a=) — the a= tag is a bare URL, so the certificate type (VMC or CMC) is not determined — and verifies the DMARC enforcement prerequi...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_tlsrptCheck whether a domain has SMTP TLS Reporting (TLS-RPT) configured. Queries _smtp._tls.<domain> for the v=TLSRPTv1 record and validates its reporting destination (rua= mailto:/https:), flagging a missing record, duplicate records, or an invalid/absent reporting URI. Complement...3 params

Check whether a domain has SMTP TLS Reporting (TLS-RPT) configured. Queries _smtp._tls.<domain> for the v=TLSRPTv1 record and validates its reporting destination (rua= mailto:/https:), flagging a missing record, duplicate records, or an invalid/absent reporting URI. Complement...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_http_securityAudit a domain's browser-facing HTTP security headers over HTTPS. Inspects Content-Security-Policy (flagging unsafe-inline/unsafe-eval/wildcards), X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, and the cross-origin isolation headers (COOP/COEP/CO...3 params

Audit a domain's browser-facing HTTP security headers over HTTPS. Inspects Content-Security-Policy (flagging unsafe-inline/unsafe-eval/wildcards), X-Frame-Options, X-Content-Type-Options, Referrer-Policy, Permissions-Policy, and the cross-origin isolation headers (COOP/COEP/CO...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_daneCheck DANE/TLSA certificate pinning for SMTP at port 25. Resolves the domain's MX hosts and looks up TLSA records at _25._tcp.<mx-host>, validating their syntax, usage/selector/matching-type fields and DNSSEC backing on the MX host's zone. The record is reported as present but...3 params

Check DANE/TLSA certificate pinning for SMTP at port 25. Resolves the domain's MX hosts and looks up TLSA records at _25._tcp.<mx-host>, validating their syntax, usage/selector/matching-type fields and DNSSEC backing on the MX host's zone. The record is reported as present but...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_ptrVerify forward-confirmed reverse DNS (PTR/FCrDNS) for mail servers. Part of the scan_domain audit.3 params

Verify forward-confirmed reverse DNS (PTR/FCrDNS) for mail servers. Part of the scan_domain audit.

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_dane_httpsVerify DANE certificate pinning for HTTPS connections. Looks up TLSA records at _443._tcp.{domain} (port 443) and validates their syntax, usage/selector/matching-type fields and DNSSEC backing. The record is reported as present but UNVERIFIED in every deployment: comparison ag...3 params

Verify DANE certificate pinning for HTTPS connections. Looks up TLSA records at _443._tcp.{domain} (port 443) and validates their syntax, usage/selector/matching-type fields and DNSSEC backing. The record is reported as present but UNVERIFIED in every deployment: comparison ag...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_svcb_httpsValidate HTTPS/SVCB records (RFC 9460) for modern transport capability advertisement. Part of the scan_domain audit.3 params

Validate HTTPS/SVCB records (RFC 9460) for modern transport capability advertisement. Part of the scan_domain audit.

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_lookalikesDetect active typosquat and lookalike/homoglyph domains that impersonate your brand and could be used in phishing. Identifies character-substitution and visual-confusion domains registered by attackers. Distinct from check_shadow_domains (TLD variants with auth gaps) and disco...3 params

Detect active typosquat and lookalike/homoglyph domains that impersonate your brand and could be used in phishing. Identifies character-substitution and visual-confusion domains registered by attackers. Distinct from check_shadow_domains (TLD variants with auth gaps) and disco...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_subdomailingDetect SubdoMailing risk: analyzes the SPF include chain for dangling or hijackable subdomains that could let an attacker send email as the domain. Use when you want to know if an SPF include chain can be hijacked through a dangling domain, or to detect subdomain mailing risk...3 params

Detect SubdoMailing risk: analyzes the SPF include chain for dangling or hijackable subdomains that could let an attacker send email as the domain. Use when you want to know if an SPF include chain can be hijacked through a dangling domain, or to detect subdomain mailing risk...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
scan_domainRun a full DNS and email security audit for a single domain. Aggregates every scan-included check in parallel (SPF, DKIM, DMARC, DNSSEC, TLS/SSL, MTA-STS, CAA, BIMI, subdomain takeover, and more) and returns an overall security score, NIST-aligned letter grade (6-band A+/A/B/C...4 params

Run a full DNS and email security audit for a single domain. Aggregates every scan-included check in parallel (SPF, DKIM, DMARC, DNSSEC, TLS/SSL, MTA-STS, CAA, BIMI, subdomain takeover, and more) and returns an overall security score, NIST-aligned letter grade (6-band A+/A/B/C...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh scan. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
profilestring
Scoring profile. Default "auto" detects.one of auto · mail_enabled · enterprise_mail · non_mail · web_only · minimal
batch_scanBulk-scan up to 10 domains in parallel. Runs a full security audit on each domain in the list and returns score, NIST-aligned letter grade (6-band A+/A/B/C/D/F), and finding counts per domain. Use when you want to audit multiple domains at once or do a bulk scan of several dom...3 params

Bulk-scan up to 10 domains in parallel. Runs a full security audit on each domain in the list and returns score, NIST-aligned letter grade (6-band A+/A/B/C/D/F), and finding counts per domain. Use when you want to audit multiple domains at once or do a bulk scan of several dom...

Parameters* required
domains*array
Domains to scan (max 10 per request)
force_refreshboolean
Bypass cache and run fresh scans.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
batch_scan_startStart a durable asynchronous scan of 1–10 domains. Returns a stable job ID; replaying the same idempotency key with the same principal, normalized inputs, and scoring versions returns the same job.4 params

Start a durable asynchronous scan of 1–10 domains. Returns a stable job ID; replaying the same idempotency key with the same principal, normalized inputs, and scoring versions returns the same job.

Parameters* required
domains*array
Domains to scan (max 10 per request)
force_refreshboolean
Bypass cache and run fresh scans.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
idempotency_key*string
Caller-stable replay key for this exact batch request.
batch_scan_statusRead the owner-scoped status of an asynchronous batch scan.2 params

Read the owner-scoped status of an asynchronous batch scan.

Parameters* required
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
job_id*string
Job ID returned by batch_scan_start.
batch_scan_findingsFetch owner-scoped findings for a completed asynchronous batch scan.2 params

Fetch owner-scoped findings for a completed asynchronous batch scan.

Parameters* required
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
job_id*string
Job ID returned by batch_scan_start.
compare_domainsSide-by-side security comparison of 2–5 domains. Shows relative scores, category gaps, and unique weaknesses for each domain. Use when comparing your security posture against a competitor, or doing a head-to-head comparison between multiple domains.3 params

Side-by-side security comparison of 2–5 domains. Shows relative scores, category gaps, and unique weaknesses for each domain. Use when comparing your security posture against a competitor, or doing a head-to-head comparison between multiple domains.

Parameters* required
domains*array
Domains to compare (2–5 domains)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
compare_baselineCompare a domain's current security configuration against a fixed policy baseline to determine compliance. Use to check whether a domain meets a policy requirement — not for tracking improvement/regression over time (use analyze_drift) and not for comparing multiple domains (u...4 params

Compare a domain's current security configuration against a fixed policy baseline to determine compliance. Use to check whether a domain meets a policy requirement — not for tracking improvement/regression over time (use analyze_drift) and not for comparing multiple domains (u...

Parameters* required
baseline*object
Policy/requirements baseline OBJECT for compliance enforcement — "does this domain meet these required controls?" (grade/score floors, require_* flags, max_*_findings). NOT a prior scan. For drift-...
domain*string
Domain to scan and compare.
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_shadow_domainsFind alternate TLD variants of a domain (e.g. example.net, example.co) that have weak or missing email authentication and could be used to spoof email. Use when asked about TLD variants with email auth gaps — distinct from check_lookalikes which detects typosquat/homoglyph imp...3 params

Find alternate TLD variants of a domain (e.g. example.net, example.co) that have weak or missing email authentication and could be used to spoof email. Use when asked about TLD variants with email auth gaps — distinct from check_lookalikes which detects typosquat/homoglyph imp...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_txt_hygieneAudit TXT records for stale entries and SaaS exposure.3 params

Audit TXT records for stale entries and SaaS exposure.

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_mx_reputationCheck whether the mail server (MX) IP addresses are listed on spam blocklists (Spamhaus, Barracuda, SORBS, and other RBLs). Also verifies reverse DNS for MX hosts. Use when you want to know if your mail server IP is blacklisted, or if your MX is on any blocklist — distinct fro...3 params

Check whether the mail server (MX) IP addresses are listed on spam blocklists (Spamhaus, Barracuda, SORBS, and other RBLs). Also verifies reverse DNS for MX hosts. Use when you want to know if your mail server IP is blacklisted, or if your MX is on any blocklist — distinct fro...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_srvMap a domain's DNS-visible service footprint by probing 19 common SRV record prefixes (email, calendar, messaging, directory, web) in parallel. Returns discovered services and flags insecure service advertisements — e.g. plaintext IMAP/POP3/LDAP without an encrypted variant. A...3 params

Map a domain's DNS-visible service footprint by probing 19 common SRV record prefixes (email, calendar, messaging, directory, web) in parallel. Returns discovered services and flags insecure service advertisements — e.g. plaintext IMAP/POP3/LDAP without an encrypted variant. A...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_zone_hygieneAudit DNS zone hygiene: identifies sensitive or forgotten subdomains exposed in DNS, stale SOA records, and zone propagation issues. Use to find any sensitive subdomains that should not be publicly visible, or to audit overall DNS zone cleanliness.3 params

Audit DNS zone hygiene: identifies sensitive or forgotten subdomains exposed in DNS, stale SOA records, and zone propagation issues. Use to find any sensitive subdomains that should not be publicly visible, or to audit overall DNS zone cleanliness.

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
generateGenerate a DNS/email security remediation artifact. Artifact types: spf_record (build a new SPF record), dmarc_record (create a DMARC policy), dkim_config (DKIM key setup), mta_sts_policy (generate an MTA-STS policy file), fix_plan (prioritized remediation plan for all finding...11 params

Generate a DNS/email security remediation artifact. Artifact types: spf_record (build a new SPF record), dmarc_record (create a DMARC policy), dkim_config (DKIM key setup), mta_sts_policy (generate an MTA-STS policy file), fix_plan (prioritized remediation plan for all finding...

Parameters* required
artifact*string
Which artifact to generate (e.g., "dmarc_record", "fix_plan").one of fix_plan · spf_record · dmarc_record · dkim_config · mta_sts_policy · rollout_plan
domain*string
Domain (e.g., example.com)
force_refreshboolean
fix_plan: bypass cache and run a fresh scan.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
include_providersarray
spf_record: providers to include (e.g., ["google"]).
mx_hostsarray
mta_sts_policy: MX hosts. Omit to detect from DNS.
policystring
dmarc_record: policy (default "reject").one of none · quarantine · reject
providerstring
dkim_config: provider (e.g., "google"). Omit for generic.
rua_emailstring
dmarc_record: report email. Default: dmarc-reports@{domain}.
target_policystring
rollout_plan: target DMARC policy (default: reject).one of quarantine · reject
timelinestring
rollout_plan: rollout speed (default: standard).one of aggressive · standard · conservative
get_domain_rankRank a domain against its country or global cohort using the GSI benchmark corpus. Accepts a domain score (from scan_domain) and optional country/sector; returns a percentile: "scores better than X% of peers". Owner-gate exempt — public cohort data only.5 params

Rank a domain against its country or global cohort using the GSI benchmark corpus. Accepts a domain score (from scan_domain) and optional country/sector; returns a percentile: "scores better than X% of peers". Owner-gate exempt — public cohort data only.

Parameters* required
countrystring
ISO 3166-1 alpha-2 country code to use the country cohort (e.g., "NZ"). Omit for global cohort.
domain*string
Domain to rank against its cohort (e.g., example.com)
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
score*number
Domain score (0–100) from scan_domain. Used to compute the cohort percentile.
sectorstring
Sector label (e.g., "finance"). Forwarded to the cohort endpoint; sector filtering is planned for a future release.
get_benchmarkGet industry benchmark data: shows what percentile a domain's security score ranks at within its sector or country cohort, the mean score, and the most common DNS security failures across the industry. Use when asked how a score compares to the industry average, what percentil...2 params

Get industry benchmark data: shows what percentile a domain's security score ranks at within its sector or country cohort, the mean score, and the most common DNS security failures across the industry. Use when asked how a score compares to the industry average, what percentil...

Parameters* required
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
profilestring
Profile to benchmark (default "mail_enabled").one of mail_enabled · enterprise_mail · non_mail · web_only · minimal · authoritative_dns_infra
get_provider_insightsGet security benchmarks and common configuration issues for a specific email or DNS service-provider cohort (e.g. Google Workspace customers, Microsoft 365 customers). Use when asked how an email service provider compares to competitors on security posture, or to see typical m...3 params

Get security benchmarks and common configuration issues for a specific email or DNS service-provider cohort (e.g. Google Workspace customers, Microsoft 365 customers). Use when asked how an email service provider compares to competitors on security posture, or to see typical m...

Parameters* required
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
profilestring
Profile (default "mail_enabled").one of mail_enabled · enterprise_mail · non_mail · web_only · minimal · authoritative_dns_infra
provider*string
Provider (e.g., "google workspace").
assess_spoofabilityCompute a composite email spoofability risk score (0–100, higher = more spoofable) by combining SPF trust surface, DMARC enforcement, and DKIM coverage. Returns a risk level (minimal→critical), per-control sub-scores, and plain-language summary of how easy it would be to spoof...3 params

Compute a composite email spoofability risk score (0–100, higher = more spoofable) by combining SPF trust surface, DMARC enforcement, and DKIM coverage. Returns a risk level (minimal→critical), per-control sub-scores, and plain-language summary of how easy it would be to spoof...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_resolver_consistencyCheck DNS consistency across 4 public resolvers.3 params

Check DNS consistency across 4 public resolvers.

Parameters* required
domain*string
Domain to check (e.g., example.com)
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
record_typestring
Record type. Omit for A/AAAA/MX/TXT/NS.one of A · AAAA · MX · TXT · NS · CNAME
explain_findingExplain a finding with impact and remediation.4 params

Explain a finding with impact and remediation.

Parameters* required
checkType*string
Check type (e.g., 'SPF', 'DMARC').
detailsstring
Additional detail from check result.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
status*string
Finding severity or status.one of pass · fail · warning · critical · high · medium
map_supply_chainMap DNS-visible third-party service dependencies for a domain. Correlates SPF, NS, TXT verifications, SRV services, and CAA records to reveal which third-party vendors can send email as the domain, control DNS, or access integrated services. Use when asked to map third-party o...3 params

Map DNS-visible third-party service dependencies for a domain. Correlates SPF, NS, TXT verifications, SRV services, and CAA records to reveal which third-party vendors can send email as the domain, control DNS, or access integrated services. Use when asked to map third-party o...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
analyze_driftMeasure whether a domain's DNS security posture improved or regressed by comparing the current state against a prior scan snapshot. Returns a drift classification (improving/stable/regressing/mixed), score delta, and lists of improvements and regressions. Use to answer "did ou...4 params

Measure whether a domain's DNS security posture improved or regressed by comparing the current state against a prior scan snapshot. Returns a drift classification (improving/stable/regressing/mixed), score delta, and lists of improvements and regressions. Use to answer "did ou...

Parameters* required
baseline*string
Prior scan reference for drift-over-time analysis: a previous ScanScore JSON STRING, or the literal "cached" to reuse the last cached scan (the default when omitted). NOT a policy/requirements obje...default: cached
domain*string
Domain to analyze drift for
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
validate_fixRe-check a specific security control after applying a fix, to confirm the finding is now resolved. Use only when a fix has already been applied and you want to verify or confirm the remediation was successful — not for initial inspection of a record.4 params

Re-check a specific security control after applying a fix, to confirm the finding is now resolved. Use only when a fix has already been applied and you want to verify or confirm the remediation was successful — not for initial inspection of a record.

Parameters* required
check*string
Check name to re-run (e.g., "dmarc", "spf")one of spf · dmarc · dkim · dnssec · ssl · mta_sts
domain*string
Domain to validate the fix for
expectedstring
Expected DNS record value to verify against
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
resolve_spf_chainTrace the full SPF include chain for a domain. Recursively resolves all includes, shows lookup count, tree depth, and flags circular includes or exceeding the 10-lookup limit.3 params

Trace the full SPF include chain for a domain. Recursively resolves all includes, shows lookup count, tree depth, and flags circular includes or exceeding the 10-lookup limit.

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
discover_subdomainsFind subdomains of a domain using Certificate Transparency logs. Reveals shadow IT, forgotten services, and unauthorized certificate issuance. Returns a CT SAMPLE, not an asset inventory: the count is a lower bound, a host with no publicly-logged certificate never appears, and...3 params

Find subdomains of a domain using Certificate Transparency logs. Reveals shadow IT, forgotten services, and unauthorized certificate issuance. Returns a CT SAMPLE, not an asset inventory: the count is a lower bound, a host with no publicly-logged certificate never appears, and...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
map_complianceMap scan findings to compliance frameworks: NIST 800-177, PCI DSS 4.0, SOC 2, CIS Controls. Shows pass/fail/partial status per control.3 params

Map scan findings to compliance frameworks: NIST 800-177, PCI DSS 4.0, SOC 2, CIS Controls. Shows pass/fail/partial status per control.

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
sge_quickscanAnswer, for ONE domain, whether it meets the New Zealand Secure Government Email (SGE) requirements agencies must satisfy by October 2026. Reports all seven SGE controls — DMARC p=reject, SPF -all, DKIM, SMTP transport TLS, MTA-STS enforce, TLS-RPT, full sub-domain coverage —...3 params

Answer, for ONE domain, whether it meets the New Zealand Secure Government Email (SGE) requirements agencies must satisfy by October 2026. Reports all seven SGE controls — DMARC p=reject, SPF -all, DKIM, SMTP transport TLS, MTA-STS enforce, TLS-RPT, full sub-domain coverage —...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
prioritize_portfolio_leadsRank a brand’s portfolio (or an explicit domain set) into prioritized registrar-partner sales leads by product-gap value × severity. Multi-domain, paid. Reuses map_registrar_products per domain, then ranks. Distinct from map_registrar_products (per-domain product mapping) and...4 params

Rank a brand’s portfolio (or an explicit domain set) into prioritized registrar-partner sales leads by product-gap value × severity. Multi-domain, paid. Reuses map_registrar_products per domain, then ranks. Distinct from map_registrar_products (per-domain product mapping) and...

Parameters* required
brandstring
Brand seed apex; discovers the portfolio, derives ownership buckets, then ranks the top candidates.
domainsarray
Explicit domain set to rank (max 10). Ownership bucket = "unknown".
force_refreshboolean
Bypass cache and run fresh scans.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
simulate_attack_pathsAnalyze current DNS posture and enumerate specific attack paths an adversary could exploit, with severity, feasibility, steps, and mitigations.3 params

Analyze current DNS posture and enumerate specific attack paths an adversary could exploit, with severity, feasibility, steps, and mitigations.

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_dblCheck domain reputation against DNS-based Domain Block Lists (Spamhaus DBL, URIBL, SURBL). Returns listing status with decoded return codes.3 params

Check domain reputation against DNS-based Domain Block Lists (Spamhaus DBL, URIBL, SURBL). Returns listing status with decoded return codes.

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_rblCheck MX server IP reputation against 6 DNS-based Real-time Blocklists (SpamCop, UCEProtect, Mailspike, Barracuda, PSBL). Resolves MX hosts to IPs first.3 params

Check MX server IP reputation against 6 DNS-based Real-time Blocklists (SpamCop, UCEProtect, Mailspike, Barracuda, PSBL). Resolves MX hosts to IPs first.

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
cymru_asnMap domain IPs to Autonomous System Numbers via Team Cymru DNS. Returns ASN, prefix, country, registry, and organization for each IP. Flags high-risk hosting ASNs.3 params

Map domain IPs to Autonomous System Numbers via Team Cymru DNS. Returns ASN, prefix, country, registry, and organization for each IP. Flags high-risk hosting ASNs.

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
rdap_lookupFetch domain registration data via RDAP (modern WHOIS replacement). Returns the domain registrar (the company the domain was registered with), registrant contact, creation/expiration dates, EPP status codes, and domain age. Use when asked who registered the domain, who the reg...3 params

Fetch domain registration data via RDAP (modern WHOIS replacement). Returns the domain registrar (the company the domain was registered with), registrant contact, creation/expiration dates, EPP status codes, and domain age. Use when asked who registered the domain, who the reg...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_realtime_threat_feedCheck a domain against BlackVeil real-time threat intelligence (curated intel-gateway feed). Distinct from DNSBL checks. Operator-deploy only; degrades to info when unprovisioned.3 params

Check a domain against BlackVeil real-time threat intelligence (curated intel-gateway feed). Distinct from DNSBL checks. Operator-deploy only; degrades to info when unprovisioned.

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_nsec_walkabilityAssess zone walkability risk by analyzing NSEC3PARAM configuration. Detects plain NSEC zones, weak NSEC3 parameters, and opt-out flags.3 params

Assess zone walkability risk by analyzing NSEC3PARAM configuration. Detects plain NSEC zones, weak NSEC3 parameters, and opt-out flags.

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_dnssec_chainWalk the full DNSSEC chain of trust from the DNS root down to the target domain, tracing DS/DNSKEY records and algorithm usage at each zone level. Use when asked to trace the chain of trust from the DNS root, or to see the full DNSSEC delegation path step by step.3 params

Walk the full DNSSEC chain of trust from the DNS root down to the target domain, tracing DS/DNSKEY records and algorithm usage at each zone level. Use when asked to trace the chain of trust from the DNS root, or to see the full DNSSEC delegation path step by step.

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_agent_discoveryAssess the security posture of IETF BANDAID agent-discovery records (draft-mozleywilliams-dnsop-dnsaid). Detects SVCB agent records under _agents, _index._{protocol}._agents and _{protocol}._agents, reports whether the discovery zone is DNSSEC-anchored (unsigned = spoofable ag...6 params

Assess the security posture of IETF BANDAID agent-discovery records (draft-mozleywilliams-dnsop-dnsaid). Detects SVCB agent records under _agents, _index._{protocol}._agents and _{protocol}._agents, reports whether the discovery zone is DNSSEC-anchored (unsigned = spoofable ag...

Parameters* required
domain*string
Domain to check for published agent-discovery records (e.g., example.com).
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
namestring
Resolve a single named agent ({name}.{domain}) instead of enumerating the zone.
protocolstring
Scope discovery to a single agent protocol (_index._{protocol}._agents and _{protocol}._agents). Omit to sweep every protocol.one of a2a · mcp · https
verify_capboolean
Fetch each declared capability document (cap=) over HTTPS via safeFetch and verify it against the cap-sha256 integrity pin. Default false (declaration/existence check only).
check_llms_txtInspect a domain's published /llms.txt and /llms-full.txt for links and install instructions an AI agent could inherit from someone else. Parses and dedupes the links (same-origin vs external), sweeps external link hosts for dangling CNAMEs and deprovisioned-service fingerprin...3 params

Inspect a domain's published /llms.txt and /llms-full.txt for links and install instructions an AI agent could inherit from someone else. Parses and dedupes the links (same-origin vs external), sweeps external link hosts for dangling CNAMEs and deprovisioned-service fingerprin...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_dnskey_strengthAudit the cryptographic strength of DNSKEY signing algorithms used for DNSSEC. Reports which algorithm is used for DNSSEC signing keys (RSA/SHA-1, RSA/SHA-256, ECDSA P-256, Ed25519, etc.), flags deprecated algorithms (RSA/SHA-1, DSA), independent of whether the DNSSEC chain va...3 params

Audit the cryptographic strength of DNSKEY signing algorithms used for DNSSEC. Reports which algorithm is used for DNSSEC signing keys (RSA/SHA-1, RSA/SHA-256, ECDSA P-256, Ed25519, etc.), flags deprecated algorithms (RSA/SHA-1, DSA), independent of whether the DNSSEC chain va...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_fast_fluxDetect fast-flux DNS behavior: performs multiple rounds of A/AAAA queries and checks whether IP addresses are rotating rapidly on each DNS query (a sign of botnet or malicious infrastructure). Compares IP answer sets and TTLs across rounds to identify rapidly rotating infrastr...4 params

Detect fast-flux DNS behavior: performs multiple rounds of A/AAAA queries and checks whether IP addresses are rotating rapidly on each DNS query (a sign of botnet or malicious infrastructure). Compares IP answer sets and TTLs across rounds to identify rapidly rotating infrastr...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
roundsinteger
Number of query rounds (3-5, default 3).
check_subdomain_takeoverSweep subdomains for dangling CNAMEs pointing to deprovisioned cloud services that could be claimed by an attacker (subdomain takeover vulnerabilities). Detects 16 provider families (AWS S3/CloudFront, Azure Front Door/CDN/Blob/App Service, GCP Cloud Storage, Heroku, GitHub Pa...4 params

Sweep subdomains for dangling CNAMEs pointing to deprovisioned cloud services that could be claimed by an attacker (subdomain takeover vulnerabilities). Detects 16 provider families (AWS S3/CloudFront, Azure Front Door/CDN/Blob/App Service, GCP Cloud Storage, Heroku, GitHub Pa...

Parameters* required
domain*string
Domain to check (e.g., example.com).
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
subdomainsarray
Optional explicit subdomain list (full FQDNs or short labels). When provided (deduped, capped at 1000), this list is swept instead of the 15-name built-in. Source from Certificate-Transparency enum...
check_authoritative_dns_infraMeasure authoritative DNS infrastructure posture for a hostname over direct DNS-over-TCP/53 from a single vantage: TCP/53 reachability, the authoritative AA flag, recursion exposure, SOA serial consistency across nameservers, DNSKEY/RRSIG presence (not validation), IPv4/IPv6 a...3 params

Measure authoritative DNS infrastructure posture for a hostname over direct DNS-over-TCP/53 from a single vantage: TCP/53 reachability, the authoritative AA flag, recursion exposure, SOA serial consistency across nameservers, DNSKEY/RRSIG presence (not validation), IPv4/IPv6 a...

Parameters* required
domain*string
Domain to check (e.g., example.com)
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
check_root_server_setQuery a rotating sample of 3 root servers per call and compare the priming NS set, glue, SOA serials, and cross-root consistency against the embedded official root hints. Uses BV_INFRA_PROBE when available; without it, returns the embedded hints as reference data only.1 params

Query a rotating sample of 3 root servers per call and compare the priming NS set, glue, SOA serials, and cross-root consistency against the embedded official root hints. Uses BV_INFRA_PROBE when available; without it, returns the embedded hints as reference data only.

Parameters* required
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
discover_brand_domainsDiscover all domains that belong to a brand's portfolio by aggregating certificate, DNS, redirect, and mail-policy signals. Use when asked what domains are part of a brand portfolio, or to find all domains related to a brand. Pass the EXACT seed domain verbatim — do NOT normal...12 params

Discover all domains that belong to a brand's portfolio by aggregating certificate, DNS, redirect, and mail-policy signals. Use when asked what domains are part of a brand portfolio, or to find all domains related to a brand. Pass the EXACT seed domain verbatim — do NOT normal...

Parameters* required
brand_aliasesarray
Optional public brand aliases to seed, such as product or legal-entity labels.
candidate_domainsarray
Optional candidate domains supplied by the caller for corroboration.
depthstring
Discovery depth. standard is default; deep expands candidate seeding and enrichment fanout.one of standard · deep
discovery_mode*string
Discovery mode. "classic" (default, BSL-licensed) runs the public signal-sweep pipeline. "tiered" layers Tier 0 (tenant-declared portfolio), Tier 1 (infrastructure-graph), and Tier 2 (declared-evid...one of classic · tiereddefault: classic
dkim_selectorsarray
Optional DKIM selectors to probe. Defaults to a built-in common-selector list.
domain*string
The exact seed domain to expand, scanned verbatim (e.g., example.com). Do NOT normalize, resolve, or substitute a brand's canonical/main domain — pass the literal domain the user named (e.g. pass `...
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
min_confidencenumber
Drop candidates whose combined confidence falls below this threshold (0-1, default 0.5).
ownership_verifiedboolean
Caller attests that the seed domain is owned or authorized for scanning. Required when discovery_mode is "tiered" and the caller is not an enterprise/owner/partner principal. Prevents unauthorized...
planner_modestring
Planner mode for staged discovery fanout. observe emits metrics; enforce applies candidate-backed signal caps.one of off · observe · enforce
signalsarray
Signal modules to invoke. Defaults to all 12 discovery/enrichment signals.
discover_brand_domains_startStart an async brand-domain discovery for the EXACT seed domain provided (the async sibling of discover_brand_domains, which can run ~24s and time out interactive clients). Same args as discover_brand_domains. Returns { auditId, queuedAt, etaSeconds } immediately; poll with di...12 params

Start an async brand-domain discovery for the EXACT seed domain provided (the async sibling of discover_brand_domains, which can run ~24s and time out interactive clients). Same args as discover_brand_domains. Returns { auditId, queuedAt, etaSeconds } immediately; poll with di...

Parameters* required
brand_aliasesarray
Optional public brand aliases to seed, such as product or legal-entity labels.
candidate_domainsarray
Optional candidate domains supplied by the caller for corroboration.
depthstring
Discovery depth. standard is default; deep expands candidate seeding and enrichment fanout.one of standard · deep
discovery_mode*string
Discovery mode. "classic" (default, BSL-licensed) runs the public signal-sweep pipeline. "tiered" layers Tier 0 (tenant-declared portfolio), Tier 1 (infrastructure-graph), and Tier 2 (declared-evid...one of classic · tiereddefault: classic
dkim_selectorsarray
Optional DKIM selectors to probe. Defaults to a built-in common-selector list.
domain*string
The exact seed domain to expand, scanned verbatim (e.g., example.com). Do NOT normalize, resolve, or substitute a brand's canonical/main domain — pass the literal domain the user named (e.g. pass `...
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
min_confidencenumber
Drop candidates whose combined confidence falls below this threshold (0-1, default 0.5).
ownership_verifiedboolean
Caller attests that the seed domain is owned or authorized for scanning. Required when discovery_mode is "tiered" and the caller is not an enterprise/owner/partner principal. Prevents unauthorized...
planner_modestring
Planner mode for staged discovery fanout. observe emits metrics; enforce applies candidate-backed signal caps.one of off · observe · enforce
signalsarray
Signal modules to invoke. Defaults to all 12 discovery/enrichment signals.
discover_brand_domains_statusPoll the status of an async brand-domain discovery started with discover_brand_domains_start. Returns status (queued | running | completed | failed) and progress. Owner-scoped — operationIds owned by other principals surface as notFound.2 params

Poll the status of an async brand-domain discovery started with discover_brand_domains_start. Returns status (queued | running | completed | failed) and progress. Owner-scoped — operationIds owned by other principals surface as notFound.

Parameters* required
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
operationId*string
Operation ID returned by discover_brand_domains_start.
discover_brand_domains_findingsFetch the ranked candidate domains (the discovery CheckResult) for an async run started with discover_brand_domains_start. Returns notReady while the discovery is still in-flight; the discovery result once complete. Owner-scoped.2 params

Fetch the ranked candidate domains (the discovery CheckResult) for an async run started with discover_brand_domains_start. Returns notReady while the discovery is still in-flight; the discovery result once complete. Owner-scoped.

Parameters* required
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
operationId*string
Operation ID returned by discover_brand_domains_start.
brand_audit_singleRun a full brand audit on a single target with optional standard/deep discovery depth, brand aliases, and caller-supplied candidate domains. Discovers brand-related domains, looks up registrar + registrant for each candidate, and classifies each into consolidated, real registr...11 params

Run a full brand audit on a single target with optional standard/deep discovery depth, brand aliases, and caller-supplied candidate domains. Discovers brand-related domains, looks up registrar + registrant for each candidate, and classifies each into consolidated, real registr...

Parameters* required
brand_aliasesarray
Optional public brand aliases to seed, such as product or legal-entity labels.
candidate_domainsarray
Optional candidate domains supplied by the caller for corroboration.
depthstring
Discovery depth. standard is default; deep expands candidate seeding and enrichment fanout.one of standard · deep
discovery_modestring
Brand-discovery pipeline mode. classic = legacy sweep; tiered = tenant/graph/evidence wrappers first (BlackVeil-internal).one of classic · tiered
domain*string
Target domain to audit (e.g., apple.com).
force_refreshboolean
Bypass cache and run a fresh check. Useful after DNS changes.
formatvalue
Inline output mode. Defaults to "both".
min_confidencenumber
Drop candidates whose combined confidence falls below this threshold (0-1, default 0.5).
ownership_verifiedboolean
Caller attests that the target domain is owned or authorized for scanning. Required when discovery_mode is "tiered" and the caller is not an enterprise/owner/partner principal.
planner_modestring
Planner mode for staged discovery fanout. observe emits metrics; enforce applies candidate-backed signal caps.one of off · observe · enforce
viewstring
Output view mode. 'registrar_complement' produces a registrar-complement payload; requires enterprise tier. Default 'standard'.one of standard · registrar_complement
brand_audit_batch_startEnqueue an async brand audit across up to 50 target domains with optional standard/deep discovery depth, brand aliases, and caller-supplied candidate domains. Returns { auditId, queuedAt, targetCount, etaSeconds } immediately; poll with brand_audit_status and fetch results wit...10 params

Enqueue an async brand audit across up to 50 target domains with optional standard/deep discovery depth, brand aliases, and caller-supplied candidate domains. Returns { auditId, queuedAt, targetCount, etaSeconds } immediately; poll with brand_audit_status and fetch results wit...

Parameters* required
brand_aliasesarray
Optional public brand aliases to seed, such as product or legal-entity labels.
candidate_domainsarray
Optional candidate domains supplied by the caller for corroboration.
depthstring
Discovery depth. standard is default; deep expands candidate seeding and enrichment fanout.one of standard · deep
discovery_modestring
Brand-discovery pipeline mode. classic = legacy sweep; tiered = tenant/graph/evidence wrappers first (BlackVeil-internal).one of classic · tiered
domains*array
Domains to audit (max 50 per batch). Duplicates are merged.
formatvalue
Inline output mode. Defaults to "both".
min_confidencenumber
Drop candidates whose combined confidence falls below this threshold (0-1, default 0.5).
ownership_verifiedboolean
Caller attests that the target domains are owned or authorized for scanning. Required when discovery_mode is "tiered" and the caller is not an enterprise/owner/partner principal.
planner_modestring
Planner mode for staged discovery fanout. observe emits metrics; enforce applies candidate-backed signal caps.one of off · observe · enforce
viewstring
Output view mode. 'registrar_complement' produces a registrar-complement payload; requires enterprise tier. Default 'standard'.one of standard · registrar_complement
brand_audit_statusPoll the status of an enqueued brand audit. Returns audit-level status (queued | running | completed | failed), progress 'N/M', and per-target statuses. Owner-scoped — auditIds owned by other principals surface as notFound.2 params

Poll the status of an enqueued brand audit. Returns audit-level status (queued | running | completed | failed), progress 'N/M', and per-target statuses. Owner-scoped — auditIds owned by other principals surface as notFound.

Parameters* required
auditId*string
Audit ID returned by brand_audit_batch_start.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
brand_audit_get_reportFetch the result JSON for a completed brand audit. With `target` set, returns the per-target CheckResult; without, returns the audit-level aggregate. Returns notReady when polling an in-flight audit. When a rendered PDF sidecar exists, metadata includes pdfUrl — an authenticat...3 params

Fetch the result JSON for a completed brand audit. With `target` set, returns the per-target CheckResult; without, returns the audit-level aggregate. Returns notReady when polling an in-flight audit. When a rendered PDF sidecar exists, metadata includes pdfUrl — an authenticat...

Parameters* required
auditId*string
Audit ID returned by brand_audit_batch_start.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
targetstring
Specific target domain. Omit for audit-level aggregate.
list_brand_audit_watchesReturns the caller's recurring brand-audit watches: watchId, domain, interval, webhook presence, last-run time, and active state. Owner-scoped. Read-only.1 params

Returns the caller's recurring brand-audit watches: watchId, domain, interval, webhook presence, last-run time, and active state. Owner-scoped. Read-only.

Parameters* required
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
register_brand_audit_watchCreates a recurring brand-audit watch for a domain on a daily/weekly/monthly cadence. Each run enqueues a fresh brand_audit_batch_start and (when a webhook is configured) POSTs a diff webhook on classification drift. Returns the new watchId. Owner-scoped; per-principal cap of...4 params

Creates a recurring brand-audit watch for a domain on a daily/weekly/monthly cadence. Each run enqueues a fresh brand_audit_batch_start and (when a webhook is configured) POSTs a diff webhook on classification drift. Returns the new watchId. Owner-scoped; per-principal cap of...

Parameters* required
domain*string
Domain to watch.
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
interval*string
Recurrence interval.one of daily · weekly · monthly
webhook_urlstring
Optional webhook URL — POSTed on classification drift. Re-validated for SSRF at both register and delivery time.
delete_brand_audit_watchPermanently removes a recurring brand-audit watch by watchId. Owner-scoped — a watchId owned by another principal surfaces as notFound. Returns confirmation of deletion.2 params

Permanently removes a recurring brand-audit watch by watchId. Owner-scoped — a watchId owned by another principal surfaces as notFound. Returns confirmation of deletion.

Parameters* required
formatstring
Output verbosity. Auto-detected if omitted.one of full · compact
watchId*string
Watch ID returned by register_brand_audit_watch.
scan_buckets_startStart an async cloud-bucket discovery scan for a target domain. Operator-deploy only; targets must be operator-authorized on the recon watchlist; degrades to info when unprovisioned. Returns a scanId immediately — poll progress with scan_buckets_status and retrieve results wit...2 params

Start an async cloud-bucket discovery scan for a target domain. Operator-deploy only; targets must be operator-authorized on the recon watchlist; degrades to info when unprovisioned. Returns a scanId immediately — poll progress with scan_buckets_status and retrieve results wit...

Parameters* required
providersarray
Cloud providers to scan (max 8, e.g. aws, gcp, azure). All providers if omitted.
target*string
Domain whose cloud buckets to discover (e.g. example.com).
scan_buckets_statusPoll the status of a cloud-bucket discovery scan by scanId. Operator-deploy only; targets must be operator-authorized on the recon watchlist; degrades to info when unprovisioned. Returns scan status (running | completed | failed) and progress metadata.1 params

Poll the status of a cloud-bucket discovery scan by scanId. Operator-deploy only; targets must be operator-authorized on the recon watchlist; degrades to info when unprovisioned. Returns scan status (running | completed | failed) and progress metadata.

Parameters* required
scanId*string
Scan ID returned by scan_buckets_start.
scan_buckets_findingsRetrieve findings from a completed cloud-bucket discovery scan by scanId. Operator-deploy only; targets must be operator-authorized on the recon watchlist; degrades to info when unprovisioned. The scanId is required so reads can be owner-scoped; target and provider filters are...3 params

Retrieve findings from a completed cloud-bucket discovery scan by scanId. Operator-deploy only; targets must be operator-authorized on the recon watchlist; degrades to info when unprovisioned. The scanId is required so reads can be owner-scoped; target and provider filters are...

Parameters* required
providersarray
Restrict findings to these cloud providers (max 8). All providers if omitted.
scanId*string
Scan ID returned by scan_buckets_start.
targetstring
Restrict findings to this domain. All scanned targets if omitted.
osint_investigate_domain_startStart an async OSINT investigation for a domain. Operator-deploy only; targets must be operator-authorized on the recon watchlist; degrades to info when unprovisioned. Returns an investigationId immediately — poll with osint_investigation_status and retrieve results with osint...1 params

Start an async OSINT investigation for a domain. Operator-deploy only; targets must be operator-authorized on the recon watchlist; degrades to info when unprovisioned. Returns an investigationId immediately — poll with osint_investigation_status and retrieve results with osint...

Parameters* required
query*string
Investigation subject, per tool: a domain, public IP, organisation name, email address or username.
osint_investigate_infrastructure_startStart an async deep-infrastructure OSINT investigation for a query (domain, IP, or org). Operator-deploy only; targets must be operator-authorized on the recon watchlist; degrades to info when unprovisioned. Returns an investigationId immediately — poll with osint_investigatio...1 params

Start an async deep-infrastructure OSINT investigation for a query (domain, IP, or org). Operator-deploy only; targets must be operator-authorized on the recon watchlist; degrades to info when unprovisioned. Returns an investigationId immediately — poll with osint_investigatio...

Parameters* required
query*string
Investigation subject, per tool: a domain, public IP, organisation name, email address or username.
osint_investigate_supply_chain_startStart an async supply-chain OSINT investigation for a query. Operator-deploy only; targets must be operator-authorized on the recon watchlist; degrades to info when unprovisioned. Returns an investigationId immediately — poll with osint_investigation_status.1 params

Start an async supply-chain OSINT investigation for a query. Operator-deploy only; targets must be operator-authorized on the recon watchlist; degrades to info when unprovisioned. Returns an investigationId immediately — poll with osint_investigation_status.

Parameters* required
query*string
Investigation subject, per tool: a domain, public IP, organisation name, email address or username.
osint_investigate_username_startStart an async OSINT investigation for a username (cross-platform presence, breach correlation). Owner/enterprise tier only — people-centric OSINT is restricted to prevent misuse. Returns an investigationId immediately — poll with osint_investigation_status and retrieve result...1 params

Start an async OSINT investigation for a username (cross-platform presence, breach correlation). Owner/enterprise tier only — people-centric OSINT is restricted to prevent misuse. Returns an investigationId immediately — poll with osint_investigation_status and retrieve result...

Parameters* required
query*string
Investigation subject, per tool: a domain, public IP, organisation name, email address or username.
osint_investigate_email_startStart an async OSINT investigation for an email address (breach exposure, account correlation). Owner/enterprise tier only — people-centric OSINT is restricted to prevent misuse. Returns an investigationId immediately — poll with osint_investigation_status and retrieve results...1 params

Start an async OSINT investigation for an email address (breach exposure, account correlation). Owner/enterprise tier only — people-centric OSINT is restricted to prevent misuse. Returns an investigationId immediately — poll with osint_investigation_status and retrieve results...

Parameters* required
query*string
Investigation subject, per tool: a domain, public IP, organisation name, email address or username.
osint_investigation_statusPoll the status of an OSINT investigation by investigationId. Operator-deploy only; targets must be operator-authorized on the recon watchlist; degrades to info when unprovisioned. Returns current status (running | completed | failed) and progress metadata.1 params

Poll the status of an OSINT investigation by investigationId. Operator-deploy only; targets must be operator-authorized on the recon watchlist; degrades to info when unprovisioned. Returns current status (running | completed | failed) and progress metadata.

Parameters* required
investigationId*string
Investigation ID returned by an osint_investigate_*_start tool.

Sponsors

Readme

BLACKVEIL DNS

Know where you stand.

Source-available DNS & email security scanner for Claude, Cursor, VS Code, and MCP clients across Streamable HTTP, stdio, and legacy HTTP+SSE.


View the full README on GitHub

Details

Repository
github.com/madaburns/bv-mcp
Website
www.blackveilsecurity.com/dns
Categories
Communication & Messaging, Security & Pentesting
Transport
HTTP
Registry
MCP registry, active
Resources
6
Prompts
7
Tools verified
Nov 6, 2026

Related Communication & Messaging MCP servers

View all
1theastraway avatarMINDtheastraway/mind-mcp-serverMIND knowledge-graph memory for agents. 44 tools: CRM, Life, MoneyMIND, Budget, Sheets, Email, Sign.7stars
2puffo-ai avatarHuddopuffo-ai/huddo-mcpGroup chat for people and AI agents: join a room by invite link, read, reply, whisper, wait.6stars
3frontsail-ai avatarAspiciofrontsail-ai/aspicioDXF and PDF/X-4 for AI agents: structured facts, PNG renders, an interactive in-chat viewer.6stars
4gabrielmahia avatarMpesa Mcpgabrielmahia/mpesa-mcpM-Pesa Daraja and Africa's Talking MCP server: 24 tools; live payments and SMS need confirmation.6stars
5continuum-ai-corp avatarOrcaRoutercontinuum-ai-corp/orcarouter-mcp-serverBrowse 160+ LLM models and live pricing — no API key needed for catalog. Add key to route chat.6stars
6vivid-money avatarVivid MCPvivid-money/vivid-mcpOpen a Vivid Business account from your AI chat via MCP.6stars