{"id":"f340924f-fb50-476f-89d1-c92c64e72d25","slug":"email-deliverability-mcp","kind":"mcp","name":"email-deliverability-mcp","summary":"MCP server that checks email deliverability: SPF, DKIM, DMARC, blocklists and Gmail/Yahoo sender requirements.","owner":"kryptoscan","repoUrl":"https://github.com/kryptoscan/email-deliverability-mcp","license":"MIT","licenseTier":"permissive","trust":"community","stars":0,"match":null,"fewStars":true,"format":"mcp","createdAt":"2026-10-27T03:29:50.000Z","addedAt":"2026-10-27T04:02:45.962Z","logoUrl":"https://avatars.githubusercontent.com/u/29898589?v=4","linkOnly":false,"collection":null,"skillPath":null,"categories":["productivity","cloud-infra"],"tags":["claude","deliverability","dkim","dmarc","email","spf"],"runtime":"remote","local":false,"cloudCapable":false,"cloudCapability":"unknown","cloudReadyOnPlatform":false,"needsApiKey":false,"reviewed":false,"syncedAt":"2026-10-27T04:03:13.688Z","sample":false,"url":"https://conduits.dev/tools/email-deliverability-mcp","language":"TypeScript","transports":["http"],"install":{"remoteUrl":"https://api.ownmailserver.com/tools/mcp"},"requirements":{"env":[],"upstreamMayCharge":false},"tools":null,"readme":"# email-deliverability-mcp\n\nAn MCP server that lets Claude (or any MCP client) diagnose email deliverability:\n\n- **`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).\n- **`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.\n- **`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.\n\nEvery 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.\n\n## Use it without installing\n\nA hosted copy runs at:\n\n```\nhttps://api.ownmailserver.com/tools/mcp\n```\n\nAdd it to Claude as a custom connector (Settings → Connectors → Add custom connector), or in Claude Code:\n\n```sh\nclaude mcp add --transport http email-deliverability https://api.ownmailserver.com/tools/mcp\n```\n\nIt'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.\n\n## Install\n\nRequires Node.js 20 or later.\n\n**Claude Code**\n\n```sh\nclaude mcp add email-deliverability -- npx -y email-deliverability-mcp\n```\n\n**Claude Desktop** (`claude_desktop_config.json`)\n\n```json\n{\n  \"mcpServers\": {\n    \"email-deliverability\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"email-deliverability-mcp\"]\n    }\n  }\n}\n```\n\n**Docker**\n\n```sh\ndocker build -t email-deliverability-mcp .\ndocker run -i --rm email-deliverability-mcp\n```\n\n## Things to ask\n\n- \"Check example.com's email setup and tell me what to fix first.\"\n- \"Why might our emails from shop.example be going to spam?\" (then paste a message's headers)\n- \"Is 192.0.2.25 on any blocklists? Does its reverse DNS look right?\"\n- \"Does this email meet Gmail's bulk sender rules?\"\n- \"Our SPF record fails sometimes. Are we over the lookup limit?\"\n\n## Configuration\n\n| Variable | Default | What it does |\n|---|---|---|\n| `BLOCKLIST_DNS` | the system resolver | Comma-separated IPs of a recursive resolver **you run**, used for blocklist lookups. |\n| `DNS_SERVERS` | the system resolver | Comma-separated resolver IPs for all other lookups. |\n\n### Why `BLOCKLIST_DNS` matters\n\nSpamhaus 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](https://nlnetlabs.nl/projects/unbound/) on `127.0.0.1`.\n\n## How the checks work\n\n- **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.\n- **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.\n- **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.\n- **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.\n\n## Development\n\n```sh\nnpm install\nnpm test          # unit tests with a fake DNS resolver\nnpm run build     # compiles to dist/\nnpm run start:http  # the HTTP version (PORT, MCP_PATH, TRUST_PROXY, RATE_LIMIT, GLOBAL_LIMIT)\n```\n\n## About\n\nBuilt by [OwnMailServer](https://ownmailserver.com), 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](https://ownmailserver.com/claude-email-connector) for their own sending data: delivery stats, bounces, complaints and message history.\n\nThe same checks are available as free web tools: the [email health checker](https://ownmailserver.com/tools/email-checker) and the [bulk sender checker](https://ownmailserver.com/tools/bulk-sender-checker).\n\n## License\n\nMIT\n"}