Email deliverability
Diagnose why a domain's email lands in spam: SPF posture, DMARC policy, DKIM key strength, MX targets, and a composite 0–100 score.
6 tools run server-side in one request. You pay once, settle once, and get a single response - no orchestration, no per-step payments, and a partial-success envelope if any step fails. USDC over x402 on any supported chain.
When to use this pack
Marketing or transactional email is landing in spam, or you're rolling out a new sending domain and want to verify the auth posture before the first campaign.
Tools in this pack
All 6 run inside the single $0.009 call above. Each is also callable on its own if you only need one part.
- SPF check POST /api/spf-check Fetch and validate a domain's SPF record (RFC 7208). Parses mechanisms (ip4/ip6/include/a/mx/all), counts DNS lookups against the famous 10-lookup limit, and flags the qualifier on `all` (-/fail, ~/softfail, ?/neutral). The first stop when an email is hitting the spam folder.
- DMARC check POST /api/dmarc-check Fetch and validate a domain's DMARC policy at _dmarc.<domain> (RFC 7489). Surfaces the enforcement policy (none/quarantine/reject), reporting addresses, alignment modes, and common misconfigs (no rua, p=none stuck for months, percent <100). Pair with SPF and DKIM for full Feb-2024 sender-rule compliance.
- DKIM key lookup POST /api/dkim-lookup Fetch and parse a DKIM public-key record at <selector>._domainkey.<domain> (RFC 6376). Returns the parsed key params (algorithm, length, flags) so you can verify rotation status or key strength. Caller must know the selector - use email-deliverability if you don't.
- Email deliverability check POST /api/email-deliverability End-to-end email-auth report for a domain: SPF + DMARC + DKIM (probes common selectors automatically) + MX records + score 0–100. The one call to make when 'why is our mail going to spam?' lands in your inbox.
- Email validate POST /api/email-validate Validate an email address: syntax check plus live MX record lookup on the domain (deliverability signal, not a guarantee).
- DNS lookup POST /api/dns-lookup Resolve any DNS record type for a host: A, AAAA, MX, TXT, CNAME, NS, SOA, CAA, SRV, PTR. Returns the records plus a count. Built on Node's native resolver - no external API.
Bought one at a time, these 6 tools cost $0.009 together; the pack is that sum less a 10% bundle discount, rounded up to the $0.001 settlement floor, which is $0.009.
Workflow
- Parse the SPF record - the tool flags the most common failures (>10 DNS lookups, +all permissive directive, syntax errors).
- Parse the DMARC policy - p=none means receivers ignore SPF/DKIM failures, which usually explains a 'we set it all up but it still goes to spam' problem.
- Probe 14 common DKIM selectors and warn on <1024-bit keys and testing-mode (t=y) records. Most sending platforms publish under a predictable selector this catches.
- Run the composite deliverability score (25 points each for SPF + DMARC + DKIM + MX) for a single integer to report back to the team.
- Validate a single recipient address with email-validate to confirm the MX is actually reachable.
- Spot-check the MX records with dns-lookup type=MX to verify the chain matches the sending platform's documented setup.
Arguments
| Name | Required | Description | Example |
|---|---|---|---|
domain | yes | Sending domain to diagnose (e.g. stripe.com) | example.com |
What one call returns
A JSON object with pack, args, steps, summary; steps holds one entry per tool (spf-check, dmarc-check, dkim-lookup, email-deliverability, email-validate, dns-lookup), each with its own result or error. Full example on the API page.
Call it directly
Any x402 client pays the 402 and gets the whole workflow back in one response. With the agent402-client SDK (npm i agent402-client, an ES module):
import { Agent402 } from "agent402-client";
// payFetch: an x402-wrapped fetch your wallet signs (@x402/fetch).
// Tools on the free tier need no options: new Agent402() pays them by proof-of-work.
// an existing prepaid credits key also works: new Agent402({ creditsKey })
const client = new Agent402({ fetch: payFetch });
const result = await client.call("skill-email-deliverability", {"domain":"example.com"});
Run it in Claude
claude mcp add agent402 -s user -- npx -y agent402-mcp@latest
Then paste this prompt into Claude:
Diagnose email deliverability for sender@example.com. Use Agent402 to check SPF, DMARC, DKIM (probe common selectors), and the composite email-deliverability score. If the score is below 75, explain which auth records are missing or weak and how to fix each one.