Verify emails: syntax, MX, disposable, role, typo fix, optional SMTP probe, SPF/DMARC.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
API key from [email protected] (catalogue and free tools work without it)
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Does the domain accept mail, which MX hosts, is it a disposable or free-mail provider, does it publish SPF and DMARC (and the DMARC policy)? Use before trusting a sender domain or when onboarding a company. Example: domain 'noahsarch.tech'. Response: result with status (deliverable | risky | undeliverable | invalid | unknown), reason, score 0–100, the checks run, plus data_confidence, estimated_items[], sources[], data_version, warnings[] and a disclaimer. No logging of addresses.
Domain (or an address; the domain part is used).
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
claude mcp add --transport http email-verifier https://verify.noahsarch.tech/mcp
Headers
X-API-Key (optional, not in the config above): API key from [email protected] (catalogue and free tools work without it)Does the domain accept mail, which MX hosts, is it a disposable or free-mail provider, does it publish SPF and DMARC (and the DMARC policy)? Use before trusting a sender domain or when onboarding a company. Example: domain 'noahsarch.tech'. Response: result with status (deliverable | risky | undeliverable | invalid | unknown), reason, score 0–100, the checks run, plus data_confidence, estimated_items[], sources[], data_version, warnings[] and a disclaimer. No logging of addresses.
| Argument | Type | Description |
|---|---|---|
| domain* | string | Domain (or an address; the domain part is used). |
{
"type": "object",
"title": "domain_checkArguments",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"title": "Domain",
"description": "Domain (or an address; the domain part is used)."
}
}
}Find every address in a block of text or HTML (deduped by default). Free. Pair with verify_emails. Response: result with status (deliverable | risky | undeliverable | invalid | unknown), reason, score 0–100, the checks run, plus data_confidence, estimated_items[], sources[], data_version, warnings[] and a disclaimer. No logging of addresses.
| Argument | Type | Description |
|---|---|---|
| text* | string | Any text/HTML to pull addresses from. |
| dedupe | boolean |
{
"type": "object",
"title": "extract_emailsArguments",
"required": [
"text"
],
"properties": {
"text": {
"type": "string",
"title": "Text",
"description": "Any text/HTML to pull addresses from."
},
"dedupe": {
"type": "boolean",
"title": "Dedupe",
"default": true,
"description": ""
}
}
}Fix common typos: gmial.com, hotmail.con, yaho.com, stray spaces/dots. Returns the suggestion (or null) and which fixes applied. Free. Example: email '[email protected]'. Response: result with status (deliverable | risky | undeliverable | invalid | unknown), reason, score 0–100, the checks run, plus data_confidence, estimated_items[], sources[], data_version, warnings[] and a disclaimer. No logging of addresses.
| Argument | Type | Description |
|---|---|---|
| email* | string |
{
"type": "object",
"title": "suggest_fixArguments",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"title": "Email",
"description": ""
}
}
}Full check of one address: RFC syntax and normalisation, domain existence and MX records (incl. null-MX and implicit-MX), disposable-provider list (10k+ domains), role account, free-mail provider, typo suggestion; optional SMTP RCPT probe with catch-all detection and optional SPF/DMARC. Example: email '[email protected]', smtp_check false. Response: result with status (deliverable | risky | undeliverable | invalid | unknown), reason, score 0–100, the checks run, plus data_confidence, estimated_items[], sources[], data_version, warnings[] and a disclaimer. No logging of addresses.
| Argument | Type | Description |
|---|---|---|
| email* | string | The address to verify. |
| smtp_check | boolean | Also probe the mailbox with an SMTP RCPT TO handshake (no message is sent). Slower (1–8 s); some servers block it. |
| check_policy | boolean | Also report whether the domain publishes SPF and DMARC. |
{
"type": "object",
"title": "verify_emailArguments",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"title": "Email",
"description": "The address to verify."
},
"smtp_check": {
"type": "boolean",
"title": "Smtp Check",
"default": false,
"description": "Also probe the mailbox with an SMTP RCPT TO handshake (no message is sent). Slower (1–8 s); some servers block it."
},
"check_policy": {
"type": "boolean",
"title": "Check Policy",
"default": false,
"description": "Also report whether the domain publishes SPF and DMARC."
}
}
}Same checks as verify_email for a list, run in parallel with per-domain DNS caching; returns per-address results, a summary by status, and `clean` (the deliverable ones). Charged per unique address. Example: emails ['[email protected]','[email protected]'], smtp_check false. Response: result with status (deliverable | risky | undeliverable | invalid | unknown), reason, score 0–100, the checks run, plus data_confidence, estimated_items[], sources[], data_version, warnings[] and a disclaimer. No logging of addresses.
| Argument | Type | Description |
|---|---|---|
| dedupe | boolean | Drop case-insensitive duplicates before checking (duplicates are not charged). |
| emails* | array | Up to 1,000 addresses. |
| smtp_check | boolean | SMTP RCPT TO probe per mailbox (slower; some servers block it). |
| check_policy | boolean | Report SPF/DMARC presence per domain. |
{
"type": "object",
"title": "verify_emailsArguments",
"required": [
"emails"
],
"properties": {
"dedupe": {
"type": "boolean",
"title": "Dedupe",
"default": true,
"description": "Drop case-insensitive duplicates before checking (duplicates are not charged)."
},
"emails": {
"type": "array",
"items": {
"type": "string"
},
"title": "Emails",
"description": "Up to 1,000 addresses."
},
"smtp_check": {
"type": "boolean",
"title": "Smtp Check",
"default": false,
"description": "SMTP RCPT TO probe per mailbox (slower; some servers block it)."
},
"check_policy": {
"type": "boolean",
"title": "Check Policy",
"default": false,
"description": "Report SPF/DMARC presence per domain."
}
}
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Oct 31, 2026.