Skip to content
tutorial

Validate emails from Claude with the botoi MCP server

| 5 min read
Email inbox with messages flagged for validation
Photo by Stephen Phillips on Unsplash

You're reviewing a CSV of 500 user signups in Claude. Half the email addresses look suspicious; temp domains, misspellings, addresses that smell like bots. You could export the file, write a Python script, install a validation library, run it, and paste the results back. Or you could ask Claude to check them using an MCP tool that's already connected to a validation API.

That second option takes about ten seconds. This tutorial shows you how to set it up and three ways to use it.

Connect the MCP server

The Botoi MCP server runs at api.botoi.com/mcp and exposes 49 developer tools, including email validation, disposable email detection, and DNS lookups. No installation required. Add the server URL to your client config and restart.

Claude Desktop

Open claude_desktop_config.json (Settings > Developer > Edit Config) and add the server:

{
  "mcpServers": {
    "botoi": {
      "type": "streamable-http",
      "url": "https://api.botoi.com/mcp"
    }
  }
}

Claude Code

Run this in your terminal:

claude mcp add botoi --transport streamable-http https://api.botoi.com/mcp

Cursor

Create or edit .cursor/mcp.json in your project root:

{
  "mcpServers": {
    "botoi": {
      "url": "https://api.botoi.com/mcp",
      "type": "streamable-http"
    }
  }
}

Restart your client after saving. Claude discovers all 49 tools on first connection.

Email inbox with multiple messages, some flagged as suspicious
MCP tools let Claude validate email addresses without leaving the conversation Photo by Stephen Phillips on Unsplash

Use case 1: check a single email

Ask Claude a plain question: "Check if user@tempmail.org is a real email." Claude picks the lookup_email tool, sends the request, and returns the results inline.

You: "Check if user@tempmail.org is a real email."

Tool call: lookup_email
Input: { "email": "user@tempmail.org" }

Result:
{
  "email": "user@tempmail.org",
  "is_valid": true,
  "is_disposable": true,
  "is_free": false,
  "mx_found": true,
  "suggestion": null
}

Claude: "The address is syntactically valid and has working MX
records, but it belongs to a disposable email provider. This
signup is likely throwaway."

The response includes four signals: format validity, whether MX records exist for the domain, whether the provider is a known disposable service, and a spelling suggestion if the domain looks like a typo (e.g., gmial.comgmail.com).

Use case 2: batch validation from a CSV

Hand Claude a CSV file and tell it what to look for. "Read users.csv and flag any rows where the email is disposable." Claude reads the file, extracts the email column, and calls check_disposable_email for each unique domain.

You: "Read users.csv and flag any rows where the email is disposable."

Claude reads the file, extracts the email column, and calls
disposable_email_check for each unique domain:

Tool call: check_disposable_email
Input: { "email": "alice@guerrillamail.com" }
Result: { "email": "alice@guerrillamail.com", "is_disposable": true }

Tool call: check_disposable_email
Input: { "email": "bob@gmail.com" }
Result: { "email": "bob@gmail.com", "is_disposable": false }

Tool call: check_disposable_email
Input: { "email": "charlie@yopmail.com" }
Result: { "email": "charlie@yopmail.com", "is_disposable": true }

Claude: "3 of 500 rows use disposable email providers:
  Row 12: alice@guerrillamail.com (Guerrilla Mail)
  Row 87: charlie@yopmail.com (YOPmail)
  Row 341: dana@throwaway.email (Throwaway)
The rest look clean."

For 500 rows with 14 unique domains, Claude only needs 14 API calls since it deduplicates by domain. On the free tier (5 req/min), that takes under three minutes. With an API key, it finishes in seconds.

Use case 3: domain-level MX check

Sometimes you want to go deeper than disposable detection. An email address can be syntactically valid and not disposable, but the domain might have no MX records, meaning it can't receive email at all. Ask Claude to check MX records for every unique domain in your list.

You: "Check the MX records for all unique domains in this email list."

Claude extracts 14 unique domains and calls dns_lookup for each:

Tool call: lookup_dns
Input: { "domain": "acme-corp.io", "type": "MX" }
Result:
{
  "domain": "acme-corp.io",
  "type": "MX",
  "records": [
    { "value": "aspmx.l.google.com", "priority": 1, "ttl": 300 }
  ]
}

Tool call: lookup_dns
Input: { "domain": "defunct-startup.xyz", "type": "MX" }
Result:
{
  "domain": "defunct-startup.xyz",
  "type": "MX",
  "records": []
}

Claude: "12 of 14 domains have valid MX records. Two domains
have no MX records and can't receive email:
  - defunct-startup.xyz (0 MX records)
  - old-agency.co (0 MX records)
Emails to these domains will bounce."

This catches domains that have expired, were never configured for email, or are parked. These are addresses that will hard-bounce if you send to them.

How it works

The MCP server at api.botoi.com/mcp exposes 49 tools as callable functions. When you connect it to Claude, the client fetches the tool manifest on startup. Claude sees each tool's name, description, and input schema.

When you ask about email validation, Claude selects the right tool based on your question:

  • Questions about a specific email address → lookup_email
  • Questions about disposable providers → check_disposable_email
  • Questions about MX, SPF, or DMARC records → lookup_dns

Claude sends the request, gets structured JSON back, and interprets the result in context. No API key is required for the free tier at 5 requests per minute and 100 per day. Add a key in the Authorization header for higher limits.

Other email-related MCP tools

The same MCP connection gives you access to these related tools:

  • lookup_email: full validation including syntax, format, MX records, and disposable detection
  • check_disposable_email: focused check for disposable providers like Mailinator, Guerrilla Mail, and YOPmail
  • lookup_dns: query MX, SPF, DMARC, and other DNS records for any domain
  • detect_pii: scan a block of text and find email addresses (plus phone numbers, SSNs, and other PII) embedded in it

All four work through the same MCP server. No extra configuration needed.

Browse the full list of 49 tools at api.botoi.com/v1/mcp/tools.json, or visit the MCP setup page for configs for every supported client.

Frequently asked questions

How do I validate an email address using Claude and MCP?
Connect the Botoi MCP server to Claude Desktop or Claude Code, then ask Claude to check any email address. Claude calls the email_validate tool automatically, returning format validity, MX record status, and disposable provider detection in seconds.
Can Claude validate a batch of emails from a CSV file?
Yes. Ask Claude to read your CSV file and flag disposable or invalid emails. Claude loops through the rows, calls the disposable_email_check or email_validate tool for each address, and reports which rows have problems.
What email validation tools are available through the Botoi MCP server?
Four tools cover email validation: email_validate (syntax, format, MX, disposable check), disposable_email_check (detects disposable providers like Mailinator and Guerrilla Mail), dns_lookup (MX, SPF, DMARC record checks), and pii_detect (finds email addresses embedded in text).
Do I need an API key to validate emails through MCP?
No. The Botoi MCP server works without an API key at 5 requests per minute and 100 per day. For higher limits, get a free key for 1,000 requests per day or a paid plan starting at $9/month.
Which MCP clients support email validation with Botoi?
Claude Desktop, Claude Code, Cursor, VS Code, and Windsurf all support the Botoi MCP server. Add the server URL (https://api.botoi.com/mcp) to your client config and start asking about email addresses.

Try this API

Email Validation API — interactive playground and code examples

More tutorial posts

Start building with botoi

150+ API endpoints for lookup, text processing, image generation, and developer utilities. Free tier, no credit card.