com.warminboxes/deliverability-tools · v1.0.0 · communication
WarmInboxes Free Deliverability Tools is healthy: it completed an MCP handshake in 1737 ms and exposes 50 tools.
Free cold email deliverability checks, list tools, inbox planning and original placement research.
Endpoint: https://warminboxes.com/mcp (streamable-http)
No repository listed · Website · JSON · Add to my inventory
| Users (last 30 days) | 0 |
| Handshake | Healthy |
| Auth needed | None |
| Tool count | 50 |
| Latency | 1737 ms |
| Last checked (UTC) | 2026-10-22T22:55:15.132Z |
| Checked (UTC) | Status | Latency | Error |
|---|---|---|---|
| 2026-10-22T22:55:15.132Z | Healthy | 1737 |
check_deliverability | Grade a domain A-F for cold email readiness. Checks SPF, DKIM, DMARC, MX, blacklists and domain age together and returns a weighted score with a per-check breakdown and what to fix. Start here for open-ended "is this domain any good" questions. |
check_spf | Look up a domain's SPF record and validate it, including the recursive DNS lookup count that silently breaks SPF past 10. |
check_dkim | Find and validate a domain's DKIM signing key, including key strength. Leave selector empty to auto-scan 26 common selectors (google, selector1, k1, and the rest). When no key is found, reports whether the selectors are delegated by CNAME to a provider that has not published one — the usual Microsof |
check_dmarc | Look up and parse a domain's DMARC record: policy, subdomain policy, percentage, alignment and reporting tags, each explained. p=none (monitoring) passes: it meets Google and Yahoo's requirement and is fine for broad cold email. p=quarantine is the step for stricter enforcement; do not tell someone |
check_bimi | Validate a domain's BIMI record, the logo SVG, the VMC, and the DMARC enforcement level Gmail requires before it will show a brand logo. |
check_mta_sts | Validate a domain's _mta-sts DNS record and its published policy file: mode, MX patterns, max_age and TLS-RPT. |
check_ssl | Read a host's TLS certificate: issuer, validity dates and days remaining, subject alternative names, key type and size, signature algorithm, chain, negotiated protocol and whether the chain is trusted and covers the hostname. Use it on an MTA-STS policy host (mta-sts.<domain>) or a click-tracking do |
check_dns | Query any DNS record type for a domain: MX, TXT, A, AAAA, CNAME, NS, SOA, CAA. |
lookup_txt | Every TXT record on a domain, with each one identified (SPF, DKIM, DMARC, MTA-STS, TLS-RPT, BIMI, or which service's ownership token it is), plus the four underscore names a receiver reads — _dmarc, _mta-sts, _smtp._tls and default._bimi — in the same lookup. Names the three mistakes that are invisi |
check_rdns | The PTR record for an IPv4 or IPv6 address, and the forward lookup that decides whether it counts. Reverse DNS is delegated to whoever holds the address block, so a PTR alone proves nothing — the operator of an IP can point it at any hostname, including one they do not own. Only the round trip is ev |
check_blacklist | Check a domain or IP against 20+ major email blacklists (Spamhaus, Barracuda, SORBS and others) and report which list it appears on. |
check_surbl | Check domains against the SURBL URI blacklist in bulk. URI blacklists list the domains that appear inside a message body, so a listed tracking or landing domain sends the whole email to spam however clean the sender is. Up to 100 domains per call. |
check_nameservers | Get the NS records and the DNS provider behind one domain or a whole list. Useful for working out who actually controls a domain's DNS before trying to fix its records. |
check_domain_expiry | Get a domain's registrar, creation date, expiry date and days remaining, over RDAP with a WHOIS fallback for ccTLDs that publish no RDAP service. Domain age is one of the strongest cold-email risk signals. |
check_google_domain | Tell whether a domain is already attached to a Google Workspace account, or is clear for a fresh Google tenant. |
check_cname | Follow a host's full CNAME chain and flag the mistakes that break a cold-email tracking domain. Pass expected to assert where the chain should end up. |
verify_email | Check email addresses for syntax, live MX records, disposable providers and role prefixes (info@, sales@). Does not open SMTP connections, so catch-all domains come back valid. |
lookup_mx | Look up a domain's MX records with priorities and resolved IPs, and identify the mailbox provider (Google Workspace, Microsoft 365, Zoho, Fastmail and others) and any security gateway in front of it (Mimecast, Proofpoint, Barracuda and others). Pass `domains` instead of `domain` for up to 100 at onc |
segment_esp | Split a list of domains by the email provider behind them (Google, Microsoft, or a security gateway) from their MX records. Sending Google-to-Google and Microsoft-to-Microsoft is one of the larger levers on inbox placement. |
plan_from_list | From a list of recipient domains (or addresses) and a daily sending target to a costed, split fleet in one call: the Google/Microsoft/unmatched mix of the list, a Google Workspace pool for the Google recipients, an Azure pool for the Microsoft recipients (microsoftEsp switches it to Microsoft 365), |
plan_infrastructure | Work out how many inboxes and domains a daily cold email volume needs, and what it costs per month. Use this for "how many inboxes do I need for N a day". Give dealValue to get the revenue and ROI math as well. |
expand_spintax | Expand a spintax template such as "{Hi|Hey} there" and render its Liquid merge tags, returning the total number of variations, every variable the template references, any variable with no value and no default, and a set of rendered samples. Use it to check a sequence before it sends. |
generate_unsubscribe | Build a CAN-SPAM and GDPR compliant opt-out footer in plain text and HTML, with a checklist saying which compliance requirements the details given actually satisfy. A footer with no postal address is the usual failure. |
check_email_authentication | SPF, DKIM, DMARC, MX, BIMI and MTA-STS for one domain in one call, each judged pass, weak, fail or not set, with the essentials separated from the optional records. BIMI and MTA-STS are optional and come back "absent", never failed. Use it when someone has been told to "fix their email authenticatio |
check_domain_reputation | For "this domain used to land and now it does not". Checks the domain against SURBL, its authentication, its age and the address its website resolves to, and returns a verdict by elimination (listed, broken, young, clean or unknown) with what it rules out. No reputation score: receivers hold that pr |
check_tracking_domain | Check the domain a campaign's tracked links point at: whether it resolves, serves a valid certificate, is listed on SURBL, sits on a listed address, belongs under the sending domain, and whether it is a platform's shared tracking host. A listed tracking domain is in the body of every message, which |
check_bulk_sender_requirements | The bulk sender requirements, sorted honestly: SPF, DKIM, DMARC and MX checked from DNS; forward and reverse DNS when given the sending IP; one-click unsubscribe and From alignment when given a received message's raw headers; and the requirements no outside tool can see (complaint rate, per-connecti |
analyze_headers | Read a received message's raw headers. Returns the SPF, DKIM and DMARC verdicts the receiver recorded, which domains authenticated and whether they align with the From domain (why DMARC failed on a message that "passed"), the relay hops and delays, the sending IP, plain-English issues, and whether t |
analyze_email_html | Read an email's HTML. Returns its size against Gmail's ~102 KB clipping limit with what is taking the room, every link and image host, tracking pixels, URL shorteners, and each linked domain checked against SURBL. Parsed inertly: nothing loads, no pixel fires, no link is followed. The SURBL lookups |
analyze_dmarc_report | Read DMARC aggregate (rua) reports and say who is sending as the domain and what fails: messages passing and failing, failures that are alignment only, quarantined and rejected counts, and each sending IP with its SPF and DKIM outcome, failing senders first. Takes the report XML, several of them, or |
analyze_cold_email | Score a cold email's copy 0-100 for spam risk before it is sent: weighted trigger words by category and severity (subject hits weigh extra), ALL-CAPS, links and shorteners, currency and percent-off offers, obfuscated spellings, missing personalisation or opt-out, length. Returns each finding with ho |
audit_campaign | Audit a cold email campaign before launch: the lead CSV and the sequence checked together for merge tags with no column or empty values, variable syntax the sequencer will not parse, role and disposable addresses, duplicates and too many contacts per company, plus a send forecast from the sending se |
analyze_bounces | Classify bounce messages (NDRs): invalid address, full or disabled mailbox, reputation block, authentication failure, throttling, content block or configuration, each with whether it is hard, soft or a block, why it happened and what to do. Separate several bounces with a blank line. |
analyze_microsoft_headers | Read the spam verdict Microsoft 365 or Outlook stamped on a delivered message: SCL (spam confidence), BCL (bulk), PCL, SFV, the category, and the SPF, DKIM, DMARC and composite authentication results, each explained. Use it when mail lands in Outlook junk. For Gmail or any provider's routing and ali |
preview_inbox | Show how a cold email's sender name, subject line and preview text are cut off in Gmail desktop, Gmail mobile and Outlook, with warnings (no sender name, all caps, empty preview, etc.). Use it to check a subject line fits before sending. |
generate_dns_records | Write an SPF record from the providers that send for a domain (with an estimate of its DNS lookups against the limit of 10), a DMARC record from a policy, and where a provider publishes DKIM. Returns host, type and value to publish. It writes records; to check what is published, use check_spf, check |
plan_rotation | Plan a two-batch inbox rotation: the fleet split in half, one batch sending while the other rests, swapped every 1, 2 or 4 weeks. Returns batch sizes, the per-inbox daily load on the active batch against the 15/day house pace, how many inboxes the volume needs, and an eight-week schedule. |
plan_verification_waterfall | Price an email verification waterfall: the list run through verifiers in sequence with unknowns passed down the chain, every order compared, cheapest cost per usable email first. Uses typical figures for three verifiers unless you pass your own prices and resolve rates (POST JSON for verifiers). |
clean_csv | Clean a lead CSV: malformed, duplicate, role-based (info@, sales@) and disposable addresses removed, with a count for each reason. Returns the cleaned CSV when it is 500 rows or fewer; a larger file is summarised and the person is sent to the page to download the full result. Does not verify mailbox |
convert_csv | Rename a lead CSV's columns to the fields a sequencer imports (Instantly, Smartlead, EmailBison, or generic snake_case). Every row and column is kept; only the header changes, and columns with no standard field keep a snake_case name for custom variables. Returns the mapping, and the converted CSV w |
combine_csvs | Merge several lead CSVs into one, matching columns that mean the same thing (Email, email_address, E-mail), optionally removing duplicate emails and adding a column for the file each row came from. Returns the combined CSV when it is 500 rows or fewer. POST JSON: files is an array. |
check_suppression | Check a campaign list against a do-not-contact list before sending: exact email matches and, optionally, whole suppressed domains, with a per-company cap. Returns what was removed and why, and the clean CSV when it is 500 rows or fewer. |
check_spamhaus_dbl | The Spamhaus Domain Block List needs a paid query key and is NOT queried by this server. Call this when someone asks about Spamhaus: it says plainly that nothing was checked, names the blocklists that do run here (check_surbl, check_blacklist), and gives Spamhaus's own free lookup to check by hand. |
check_burned_inbox | The Burned Inbox Checker runs on its own free site, burnedinbox.com, not on this server. Call it when someone asks whether a domain or inbox is burned: it sends them there and names the checks here that answer part of the question (check_domain_reputation, check_deliverability). |
write_cold_email | Cold Email AI, WarmInboxes' free custom GPT for writing cold email copy, runs on ChatGPT at warminboxes.com/AI, not on this server. Call it when someone wants help writing cold emails: it sends them there and names the checks here for a draft (analyze_cold_email, preview_inbox, expand_spintax). |
find_lead_lists | Search the WarmInboxes free leads database (about 1,000 B2B lead lists by industry, role and country) and return the best matches with lead counts, verified email counts and each list's page. For questions about finding leads or a prospect list. Lists are free and are emailed to the person from each |
find_tools | Find the WarmInboxes free tool for a task ("check my email headers", "clean a CSV", "will this land in spam") and say how to use it: the MCP tool to call here, or the page to send the person to when it runs only in the browser. Call with no task to list every tool. |
find_resources | Search what WarmInboxes publishes: cold email guides, deliverability playbooks, original studies and their datasets, costed infrastructure recipes, tool demo videos, inbox guides per sequencer and AI agent, provider comparisons, Claude skills, the changelog, and the offer and about pages. Searches t |
read_resource | Read a WarmInboxes guide, study, playbook, dataset, recipe, comparison or changelog entry in full, as markdown. Long pages come in parts split at headings: the first call says how many, and nextPart gives the one to ask for. Datasets also return their data as JSON. Use the url find_resources gave yo |
get_pricing | The WarmInboxes price list as data: prewarmed and fresh inboxes on Google Workspace, Microsoft 365 and Azure, every billing cycle, the safe daily send pace per inbox, and delivery time. For a costed fleet for a volume, use plan_infrastructure. |