Skip to main content
Glama
Panda Web Security Tools

Panda Web Security Tools

SPF, DKIM & DMARC Checker: Bulk Email Domain Security Audit

email_domain_security_checker
Read-only

Audit email authentication for domains with SPF, DKIM, DMARC, MTA-STS and BIMI checks, returning A-F grades, spoofing risk and prioritized fixes.

Instructions

Audit email authentication for a list of domains: SPF, DKIM (about 40 common selectors), DMARC, MX provider, MTA-STS, TLS-RPT and BIMI, graded A-F with spoofing risk and plain-English fixes. Unlike company_website_enricher (firmographics, tech stack, contacts), this only grades mail security posture from public DNS. Use when you need deliverability or spoofing checks, a security prospect list, or a vendor review. Do not use for website SEO or AI-readiness (use ai_search_seo_audit) or for page-level prompt injection (use hidden_ai_instructions_scanner). Parameters: domains accept bare domains, emails or URLs and are normalized and de-duplicated. DKIM is only confirmed when a selector matches; add dkimSelectors you know are in use, otherwise a missing DKIM may be a false negative. Nonexistent or unresolvable domains are returned with a status and not charged. Returns per item: agentSummary, domain, grade, score (0-100), spoofable, mailProvider, spfRecord, spfAll, spfLookups, dmarcRecord, dmarcPolicy, dmarcReporting, dkimSelectorsFound, mtaSts, tlsRpt, bimi, mxHosts, fixes (prioritized), status.

Behavior: read-only; runs the Apify Actor pandadad0214/email-domain-security-checker (https://apify.com/pandadad0214/email-domain-security-checker) on your own Apify account. Price: $0.002 per domain checked. Runs that find nothing are not charged per result, and spending is capped per call by run_max_charge_usd (default $0.50). run_max_items (default 50) limits items returned and fills maxDomains when you leave it unset, so it also limits what is billed; setting maxDomains higher can bill more than is returned. Most calls finish in 5-15 s for a few inputs; large inputs or crawls can take minutes, so raise run_timeout_secs (max 300) or shrink the input after a timeout error. Returns JSON {actor, count, items}; long text output is trimmed to whole items, with all items in structuredContent.

Input Schema

NameRequiredDescriptionDefault
domainsNoDomains, emails or URLs. One per line: example.com, name@example.com or https://www.example.com/page all work (the domain is extracted, www. removed, duplicates dropped). Leave empty for a 3-domain demo.
maxDomainsNoMaximum domains. You pay per checked domain, so this also caps the cost. Whole number, 1 to 10,000; default 1,000.
dkimSelectorsNoExtra DKIM selectors. Optional. About 40 common selectors (google, selector1, selector2, k1, s1, s2, default…) are always tried. Add your own if you sign with a custom one, e.g. 20230601 or mailo.
run_max_itemsNoOptional. Most results to return from this call (default from PANDA_MAX_ITEMS, 50). Also limits how many results the Actor produces and charges for, unless you set its own max field.
run_timeout_secsNoOptional. Seconds to wait for results (default from PANDA_TIMEOUT_SECS, 120; max 300).
run_max_charge_usdNoOptional. Hard spending cap for this call in USD (default from PANDA_MAX_CHARGE_USD, 0.50).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.8/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare read-only/open-world, but the description adds pricing ($0.002 per domain), the spending cap, timeout behavior and remediation advice (raise run_timeout_secs to 300, or shrink input). It also discloses the non-obvious billing quirk that run_max_items fills maxDomains and therefore limits what is charged, and warns that a missing DKIM result may be a false negative.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and differentiation before the mechanics, and the return-field list is a compact enumeration rather than prose. It is dense — the behavior paragraph packs pricing, billing interaction, timeouts and output shape into one block — but nearly every sentence carries information an agent needs to call it correctly.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description compensates by listing the per-item return fields (grade, score, spoofable, spfRecord, dmarcPolicy, fixes, status) and the response envelope {actor, count, items}. Cost, timeout, failure handling for unresolvable domains and the no-charge-for-empty-runs rule are all covered, leaving nothing material an agent would need to guess.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is already 100%, so most parameter meaning is supplied structurally, but the description still adds value: it ties dkimSelectors to the false-negative risk, explains that domains are normalized and de-duplicated across bare domains/emails/URLs, and spells out the cross-parameter interaction between maxDomains and run_max_items that the schema alone does not convey. The remaining parameters are restated rather than deepened.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource (audit email authentication for a list of domains) and enumerates exactly what is checked: SPF, DKIM, DMARC, MX provider, MTA-STS, TLS-RPT and BIMI, graded A-F. It then explicitly separates itself from company_website_enricher, ai_search_seo_audit and hidden_ai_instructions_scanner, so an agent can pick it out of the sibling set without opening a schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives concrete triggers (deliverability or spoofing checks, a security prospect list, a vendor review) and explicit exclusions that route to named alternatives: SEO/AI-readiness goes to ai_search_seo_audit, page-level prompt injection goes to hidden_ai_instructions_scanner. Both when-to-use and when-not-to-use are covered.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.