Skip to content
Eden Engine

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.

activeper callv5

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

Public DNS records

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
agent
// 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 do

Not 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.

ChargePrice
Per call
$0.0811
Updated
Oct 27, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "required": [
    "domain"
  ],
  "properties": {
    "domain": {
      "type": "string"
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "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
}