---
title: "Domain checks"
description: "The public mail records of any domain."
url: "https://nextmail.sh/docs/mcp/tools/domain-checks"
area: "MCP server"
category: "Tools"
---

# Domain checks

The public mail records of any domain.

## Domain checks tools

| Tool | What it does |
| --- | --- |
| checkDmarc | What the DMARC record of any domain says: how strict it is, every tag, the parent domain it inherits from and what is wrong with it. |
| checkBimi | Whether inboxes can draw the logo a domain publishes, with the logo, its mark certificate, the DMARC policy beside it and what stops it showing. |
| checkDeliverability | MX, SPF, DKIM, DMARC and BIMI for any domain, each pass, warn, fail or absent with a verdict, weighed into a score out of 100 and a grade from A to F. |
| checkAddress | Whether an email address is worth sending to: its syntax, whether the domain takes mail, throwaway and shared addresses, a likely typo, and what this workspace already knows about it. |

> These are the free checkers on the Nextmail website. They read public DNS and nothing in the workspace, so they need no permission and work on any domain, not only yours.

> Every answer is what DNS said at that moment. A result that starts `Refused (unreachable):` means DNS did not answer, and is worth trying again.

## Reference

### `checkDmarc`

Read any domain's DMARC record from public DNS, as the DMARC checker on the Nextmail website does: how strict it is (missing, invalid, monitor for p=none, quarantine or reject), every tag, the parent domain it inherits from, and what is wrong with it.

- No scope.
- The app's assistant runs it without asking.
- Toolkit: `workspace`.

**Inputs**

- `domain` (`string`, required, 1 to 320 characters): The domain, such as acme.com. An email address or a URL is read as its domain.

Also available in: API [`GET /tools/dmarc`](https://nextmail.sh/docs/api/reference/tools#get-tools-dmarc); TypeScript [`nextmail.tools.checkDmarc()`](https://nextmail.sh/docs/sdk/reference/tools#checkDmarc); Python [`tools.check_dmarc()`](https://nextmail.sh/docs/python/reference/tools#checkDmarc); Ruby [`tools.check_dmarc`](https://nextmail.sh/docs/ruby/reference/tools#checkDmarc); PHP [`tools->checkDmarc`](https://nextmail.sh/docs/php/reference/tools#checkDmarc); Go [`Tools.CheckDmarc`](https://nextmail.sh/docs/go/reference/tools#checkDmarc); Java [`tools().checkDmarc`](https://nextmail.sh/docs/java/reference/tools#checkDmarc); C# [`Tools.CheckDmarcAsync`](https://nextmail.sh/docs/csharp/reference/tools#checkDmarc).

### `checkBimi`

Read any domain's BIMI record, fetch the logo it names and check the DMARC policy beside it, as the BIMI checker on the Nextmail website does. Inboxes draw a logo only at p=quarantine or p=reject, and the issues say what stops it showing.

- No scope.
- The app's assistant runs it without asking.
- Toolkit: `workspace`.

**Inputs**

- `domain` (`string`, required, 1 to 320 characters): The domain, such as acme.com. An email address or a URL is read as its domain.

Also available in: API [`GET /tools/bimi`](https://nextmail.sh/docs/api/reference/tools#get-tools-bimi); TypeScript [`nextmail.tools.checkBimi()`](https://nextmail.sh/docs/sdk/reference/tools#checkBimi); Python [`tools.check_bimi()`](https://nextmail.sh/docs/python/reference/tools#checkBimi); Ruby [`tools.check_bimi`](https://nextmail.sh/docs/ruby/reference/tools#checkBimi); PHP [`tools->checkBimi`](https://nextmail.sh/docs/php/reference/tools#checkBimi); Go [`Tools.CheckBimi`](https://nextmail.sh/docs/go/reference/tools#checkBimi); Java [`tools().checkBimi`](https://nextmail.sh/docs/java/reference/tools#checkBimi); C# [`Tools.CheckBimiAsync`](https://nextmail.sh/docs/csharp/reference/tools#checkBimi).

### `checkDeliverability`

Check whether mail from any domain is set up to be trusted, as the deliverability checker on the Nextmail website does: MX, SPF, DKIM, DMARC and BIMI, each pass, warn, fail or absent with a verdict, weighed into a score out of 100 and a grade from A to F.

- No scope.
- The app's assistant runs it without asking.
- Toolkit: `workspace`.

**Inputs**

- `domain` (`string`, required, 1 to 320 characters): The domain, such as acme.com. An email address or a URL is read as its domain.

Also available in: API [`GET /tools/deliverability`](https://nextmail.sh/docs/api/reference/tools#get-tools-deliverability); TypeScript [`nextmail.tools.checkDeliverability()`](https://nextmail.sh/docs/sdk/reference/tools#checkDeliverability); Python [`tools.check_deliverability()`](https://nextmail.sh/docs/python/reference/tools#checkDeliverability); Ruby [`tools.check_deliverability`](https://nextmail.sh/docs/ruby/reference/tools#checkDeliverability); PHP [`tools->checkDeliverability`](https://nextmail.sh/docs/php/reference/tools#checkDeliverability); Go [`Tools.CheckDeliverability`](https://nextmail.sh/docs/go/reference/tools#checkDeliverability); Java [`tools().checkDeliverability`](https://nextmail.sh/docs/java/reference/tools#checkDeliverability); C# [`Tools.CheckDeliverabilityAsync`](https://nextmail.sh/docs/csharp/reference/tools#checkDeliverability).

### `checkAddress`

Check whether email addresses are worth sending to, up to 100 at a time. Each comes back valid, risky, invalid or unknown with the reasons: bad syntax, a domain that takes no mail, a throwaway domain, a role address such as info@, a likely typo with a suggestion, and whether this workspace suppressed it or saw it bounce. deep also asks whether the mailbox exists, which is billed per address through pay as you go.

- No scope.
- The app's assistant runs it without asking.
- Toolkit: `workspace`.

**Inputs**

- `emails` (`string[]`, required, 1 to 100 items)
- `deep` (`boolean`): Also ask whether each mailbox exists. Billed per address, so off by default.

Also available in: API [`GET /tools/address`](https://nextmail.sh/docs/api/reference/tools#get-tools-address); TypeScript [`nextmail.tools.checkAddress()`](https://nextmail.sh/docs/sdk/reference/tools#checkAddress); Python [`tools.check_address()`](https://nextmail.sh/docs/python/reference/tools#checkAddress); Ruby [`tools.check_address`](https://nextmail.sh/docs/ruby/reference/tools#checkAddress); PHP [`tools->checkAddress`](https://nextmail.sh/docs/php/reference/tools#checkAddress); Go [`Tools.CheckAddress`](https://nextmail.sh/docs/go/reference/tools#checkAddress); Java [`tools().checkAddress`](https://nextmail.sh/docs/java/reference/tools#checkAddress); C# [`Tools.CheckAddressAsync`](https://nextmail.sh/docs/csharp/reference/tools#checkAddress).
