Email Deliverability Checker

io.github.kryptoscanPublished by GitHub account kryptoscanv0.1.0Updated Oct 29, 2026

Check SPF, DKIM, DMARC, blocklists, reverse DNS and email headers against Gmail/Yahoo sender rules.

VerifiedStreamable HTTPWeb executableCommunication & CollaborationSecurity & Monitoring

Overview

AI-generated overview

Read-only MCP server that diagnoses email deliverability: SPF, DKIM, DMARC, blocklists, reverse DNS and received headers.

What you can do
  • Check a domain's SPF record and lookup count, DMARC policy and reporting, DKIM keys on common selectors, and MX records, with problems ranked by severity and a fix for each, plus the email services detected.
  • Check a sending IP's reverse DNS and whether it resolves back, and its listings on several blocklists.
  • Check a pasted message's headers against Gmail and Yahoo bulk sender rules: SPF, DKIM, DMARC, From alignment, one-click unsubscribe, TLS, reverse DNS and Message-ID.
When to use it
Useful when mail from a domain or server lands in spam, when setting up SPF, DKIM and DMARC, or when checking whether a sent message meets Gmail and Yahoo bulk sender requirements before a campaign.
Requirements
A hosted copy runs as a remote HTTP endpoint with no account or API key; it is rate-limited per IP. Running your own copy needs Node.js 20 or later, or Docker. Optional BLOCKLIST_DNS and DNS_SERVERS variables point lookups at your own resolvers.
Before you install
Read-only: it reads public DNS or the header text you paste, and stores nothing. The hosted copy uses public resolvers, so Spamhaus answers come back as refused (unknown) rather than a real listing; a private resolver is needed for a real answer. Alignment uses a simplified rule, so unusual suffixes may be misjudged. The README promotes the vendor's paid email sending service.

Installation

In SourceWeft

  1. Open Email Deliverability Checker in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.kryptoscan%2Femail-deliverability-mcp/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "email-deliverability-checker": {
      "type": "http",
      "url": "https://api.ownmailserver.com/tools/mcp"
    }
  }
}

README

email-deliverability-mcp

An MCP server that lets Claude (or any MCP client) diagnose email deliverability:

  • check_domain: SPF (including the 10-DNS-lookup limit), DMARC policy and reporting, DKIM keys on common selectors, and MX records, with a ranked list of problems and the fix for each. It also names the email services a domain uses (Google Workspace, SendGrid, Amazon SES and others).
  • check_sending_ip: reverse DNS (PTR) and whether it resolves back to the IP, plus listings on Spamhaus ZEN, Barracuda, SpamCop, PSBL, Mailspike and UCEPROTECT level 1.
  • check_email_headers: paste a received message's headers and check them against Gmail's and Yahoo's sender requirements: SPF, DKIM, DMARC, From alignment, one-click unsubscribe (and whether DKIM covers it), TLS, reverse DNS and Message-ID.

Every tool is read-only: it reads public DNS or the text you give it. Nothing is sent anywhere else, and no account or API key is needed.

Use it without installing

A hosted copy runs at:

https://api.ownmailserver.com/tools/mcp

Add it to Claude as a custom connector (Settings → Connectors → Add custom connector), or in Claude Code:

sh
claude mcp add --transport http email-deliverability https://api.ownmailserver.com/tools/mcp

It's free and needs no account. It's rate-limited per IP, uses public DNS resolvers (so Spamhaus results show as "refused"; see below), and stores nothing. For heavy use or a real Spamhaus answer, run your own copy.

Install

Requires Node.js 20 or later.

Claude Code

sh
claude mcp add email-deliverability -- npx -y email-deliverability-mcp

Claude Desktop (claude_desktop_config.json)

json
{  "mcpServers": {    "email-deliverability": {      "command": "npx",      "args": ["-y", "email-deliverability-mcp"]    }  }}

Docker

sh
docker build -t email-deliverability-mcp .docker run -i --rm email-deliverability-mcp

Things to ask

  • "Check example.com's email setup and tell me what to fix first."
  • "Why might our emails from shop.example be going to spam?" (then paste a message's headers)
  • "Is 192.0.2.25 on any blocklists? Does its reverse DNS look right?"
  • "Does this email meet Gmail's bulk sender rules?"
  • "Our SPF record fails sometimes. Are we over the lookup limit?"

Configuration

VariableDefaultWhat it does
BLOCKLIST_DNSthe system resolverComma-separated IPs of a recursive resolver you run, used for blocklist lookups.
DNS_SERVERSthe system resolverComma-separated resolver IPs for all other lookups.

Why BLOCKLIST_DNS matters

Spamhaus refuses queries that arrive through big public resolvers (8.8.8.8, 1.1.1.1 and the like) and answers 127.255.255.x instead. Many blocklist checkers misread that as "listed". This server reports it as refused, meaning unknown, and says so. To get a real Spamhaus answer, point BLOCKLIST_DNS at a recursive resolver of your own, such as unbound on 127.0.0.1.

How the checks work

  • SPF lookups follow include: and redirect= recursively and count every include, a, mx, ptr, exists and redirect term, as RFC 7208 does. More than 10 is a permanent error at most receivers.
  • DKIM keys sit under selectors that only the sender knows, so the server probes about 30 common ones. Pass your own with dkim_selectors (find it in the s= value of a message's DKIM-Signature header). Domains that answer every name (wildcard DNS) are detected and not reported as having keys.
  • Header checks read the topmost Authentication-Results header, which is what the recipient's mailbox provider concluded, and the newest Received hop that names the sending server.
  • Alignment compares organizational domains with a simple rule (the last two labels, or three for names like example.co.uk). It's not a full Public Suffix List lookup, so unusual suffixes may be misjudged.

Development

sh
npm installnpm test          # unit tests with a fake DNS resolvernpm run build     # compiles to dist/npm run start:http  # the HTTP version (PORT, MCP_PATH, TRUST_PROXY, RATE_LIMIT, GLOBAL_LIMIT)

About

Built by OwnMailServer, which runs dedicated email sending for businesses that send 250,000 to 1,000,000 emails a month: your own server and IP, a Resend-style API and SMTP, managed warm-up and daily monitoring. OwnMailServer accounts also get a Claude connector for their own sending data: delivery stats, bounces, complaints and message history.

The same checks are available as free web tools: the email health checker and the bulk sender checker.

License

MIT

Source: README.md at commit 5981484

Tools

3

check_domain

Check a domain's email DNS

Check a domain's SPF (including the 10-DNS-lookup limit), DMARC policy and reporting, DKIM keys on common selectors, and MX records. Returns problems ranked by severity with the fix for each, plus the email services the domain uses.

Parametersdomainrequireddkim_selectors

check_sending_ip

Check a sending IP

Check a mail server's IP: reverse DNS (PTR) and whether it resolves back to the IP, and listings on Spamhaus ZEN, Barracuda, SpamCop, PSBL, Mailspike and UCEPROTECT level 1. A refused Spamhaus query is reported as unknown, never as a listing.

Parametersiprequired

check_email_headers

Check email headers

Check a received email's headers against Gmail's and Yahoo's bulk sender requirements: SPF, DKIM and DMARC results, From domain alignment, one-click unsubscribe (and whether DKIM covers it), TLS, reverse DNS and Message-ID. Use the full headers as the recipient got them (Gmail: Show original).

Parametersheadersrequired

Version history

1
  1. v0.1.0LatestOct 29, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts