Email Deliverability Check (SPF, DKIM, DMARC, MX, Blacklists by Domain)
omnial/x402-email-deliverability-check
Given a domain, checks its SPF, DKIM, DMARC, and MX DNS configuration plus common email blacklists, and returns a 0-100 deliverability score with a letter grade, the specific issues found, and plain-language recommendations to fix them. The score checks that the records exist and parse, not that the domain sends mail: in testing a domain with an empty MX host and a reject-all SPF record scored 100, and DKIM is looked up only under common selector names, so a domain signing under another selector reads as having none.
Price
Up to $0.0811 per call; you pay what the call used
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $5.00.
Data source
Data from public DNS records.
Use it
Your AI assistant does the work: it finds this tool, shows you the price first, runs it, and you are charged when the run finishes. There is nothing to set up for this tool in particular.
Connect once and your AI can find and run this tool, and any other it needs.
For developers: the calls your assistant makes
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "omnial/x402-email-deliverability-check" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "omnial/x402-email-deliverability-check" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "omnial/x402-email-deliverability-check", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "omnial/x402-email-deliverability-check", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.0811 |
- Updated
- Oct 27, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string"
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"properties": {
"spf": {
"type": "object",
"properties": {
"valid": {
"type": "boolean"
},
"exists": {
"type": "boolean"
},
"record": {
"type": "string",
"description": "The raw SPF DNS TXT record."
},
"mechanism": {
"type": "string",
"description": "Human-readable summary of the record's terminal mechanism, e.g. '~all (soft fail)', '-all (hard fail)'."
}
},
"additionalProperties": true
},
"dkim": {
"type": "object",
"properties": {
"detected": {
"type": "boolean"
},
"selector_found": {
"type": [
"string",
"null"
],
"description": "The DKIM selector found, or null when no DKIM record was detected."
}
},
"additionalProperties": true
},
"dmarc": {
"type": "object",
"properties": {
"exists": {
"type": "boolean"
},
"policy": {
"type": "string",
"description": "e.g. 'reject'."
},
"record": {
"type": "string",
"description": "The raw DMARC DNS TXT record, published by the domain owner for anyone to query over DNS. May embed a `rua=mailto:` reporting address that the domain owner chose to publish publicly for aggregate-report delivery."
}
},
"additionalProperties": true
},
"grade": {
"type": "string",
"description": "Letter grade derived from score. Observed: 'A', 'B'."
},
"score": {
"type": "number",
"description": "0-100 deliverability score. Observed: 80, 100."
},
"domain": {
"type": "string",
"description": "The domain that was checked."
},
"issues": {
"type": "array",
"items": {
"type": "string"
},
"description": "Plain-language problems found. Empty when the domain has no issues (observed on a fully-configured domain)."
},
"mx_records": {
"type": "array",
"items": {
"type": "object",
"properties": {
"exchange": {
"type": "string"
},
"priority": {
"type": "number"
}
},
"additionalProperties": true
},
"description": "The domain's mail exchange records. A domain may show a single real MX host, or a single entry with an empty exchange string and priority 0 for a domain with no real mail server -- an empty `exchange` does not mean the array itself is empty."
},
"blacklisted": {
"type": "boolean",
"description": "True if the domain appears on any checked blacklist."
},
"recommendations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Plain-language fixes for each issue. Empty when `issues` is empty."
},
"blacklists_checked": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"listed": {
"type": "boolean"
}
},
"additionalProperties": true
},
"description": "3 entries on both real calls observed (zen.spamhaus.org, bl.spamcop.net, b.barracudacentral.org)."
}
},
"description": "The deliverability report.",
"additionalProperties": false
}