Email verification for AI agents: how an MCP verifier works

AI agents can guess an email address, but they can't know whether the mailbox exists. Here's how an email verification MCP server lets them check, and how to set one up.

BounceOwl team6 min read

Email verification for AI agents: an assistant asks if an address is safe, calls verify_email and gets back a valid verdict

An email verification MCP server lets an AI assistant such as Claude, ChatGPT or Cursor check whether an email address exists. The assistant calls a tool like verify_email, the server asks the recipient's mail server about the mailbox without sending anything, and the assistant gets back a verdict (valid, invalid, catch_all or unknown) with the evidence.

AI agents now write outreach, build lead lists and update CRMs. They are good at finding a name and a company. They are bad at knowing whether an email address exists. A model can guess that Maya Chen at Lumenforge is maya.chen@lumenforge.io and sound sure of it, but nothing inside the model can confirm the mailbox is real. Only the recipient's mail server knows.

An email verification MCP server closes that gap. This guide covers what MCP is, how an agent checks an address through it, what the agent gets back, and how to set one up in a few minutes.

What MCP is

The Model Context Protocol (MCP) is an open standard, introduced by Anthropic in November 2024, for connecting AI assistants to outside tools. A service runs an MCP server that lists its tools: their names, what they do and what input they need. Any assistant that speaks MCP, such as Claude, ChatGPT, Cursor or Codex, can read that list and call a tool when a task needs it.

You connect the server once. After that, the assistant decides when to use it.

Why an agent can't verify an email on its own

Checking an address means talking to the mail server for its domain:

  1. Look up the domain's MX records to find the server that receives its mail.
  2. Connect to that server and start a mail conversation.
  3. Ask whether it will accept mail for this exact address, then end the conversation before anything is sent.
  4. Ask about an address that can't exist. If the server accepts that too, the domain is catch-all.

A language model can't open a connection to a mail server, and it has no record of which mailboxes exist. Without a tool, an agent that "verifies" an email is guessing from the name pattern. That is how lists fill up with plausible addresses that bounce.

What happens when an agent calls a verifier

Flow: your assistant calls verify_email on the BounceOwl MCP server, which asks the recipient's mail server with RCPT TO and returns a verdict with evidence
The agent never touches the mail server itself. The verifier does the live check and hands back a verdict.

Say you ask your assistant: "Check whether maya.chen@lumenforge.io is safe to email." With a verifier connected, the agent:

  1. Sees a tool called verify_email whose description matches the task.
  2. Calls it with the address.
  3. Gets back the result of a live check against the mail server.
  4. Answers you, or carries on with its task, for example by dropping the address from a sequence.

The agent gets structured data it can act on. A trimmed result from BounceOwl looks like this:

{
  "email": "maya.chen@lumenforge.io",
  "verdict": "valid",
  "reason": "",
  "mailbox": "accepts_mail",
  "mail_server": "aspmx.l.google.com",
  "provider": "google_workspace",
  "catch_all": false,
  "role": false,
  "disposable": false,
  "charged": 1
}

The verdict is always one of four values:

  • valid: the mailbox exists and accepts mail.
  • invalid: sending would bounce. The reason says why: rejected, disabled, full_inbox, no_mail_server or syntax.
  • catch_all: the domain accepts every address, so a regular check can't tell whether this one exists.
  • unknown: the mail server gave no clear answer, for example a timeout or a block.

The evidence fields matter more for agents than for people. An agent that can see mail_server and provider can explain its decision ("Google Workspace rejected this mailbox") when it drops a lead.

The tools a verification MCP server should offer

Single checks are not enough for real agent work. BounceOwl's MCP server has seven tools:

  • verify_email: check one address live.
  • verify_emails: check up to 20 addresses at once.
  • start_list: verify up to 50,000 addresses in the background and get back a list id.
  • list_status: progress and verdict counts for a list.
  • list_results: page through a list's results, filtered by verdict.
  • catchall_check: a deeper check for addresses that came back catch_all.
  • get_credits: the current balance and prices.

Background lists matter because a conversation shouldn't sit waiting on 10,000 live checks. The agent starts the list, carries on, and reads the results when they are ready.

Catch-all addresses need a second step

On a catch-all domain the mail server says yes to everything, so a regular check returns catch_all instead of valid. On B2B lists this can be a large share of addresses.

A good agent workflow treats them as a separate pile: send to them more carefully, or run a deeper check. BounceOwl's catchall_check costs 5 credits per address and refunds them when it can't reach a clear answer. For how these domains work, see What is a catch-all email.

Set it up in a few minutes

1. Get an API key. Create a free account (100 free credits) and make a key on the API page. Use a separate key for each assistant so you can revoke one without touching the others.

2. Add the server. In Claude Code:

claude mcp add --transport http bounceowl https://api.bounceowl.com/mcp \
  --header "Authorization: Bearer $BOUNCEOWL_API_KEY"

In Cursor, add this to ~/.cursor/mcp.json:

{
  "mcpServers": {
    "bounceowl": {
      "url": "https://api.bounceowl.com/mcp",
      "headers": { "Authorization": "Bearer ${env:BOUNCEOWL_API_KEY}" }
    }
  }
}

In ChatGPT, Claude.ai and grok.com, add a custom connector with the URL https://api.bounceowl.com/mcp?key=YOUR_API_KEY and no sign-in. That URL contains your key, so treat it like a password.

Setup for Codex, VS Code, Zed, Cline, Hermes and others is on the MCP setup page.

3. Ask. Prompts that work well:

  • "Verify these 12 addresses and tell me which ones would bounce."
  • "Clean this list and give me only the valid addresses."
  • "Which of these are catch-all? Run the deeper check on those."
  • "How many verification credits do I have left?"

Keep the agent on a budget

Agents call tools in loops, so cost control matters:

  • A live check with a real answer costs 1 credit. Unknown results, bad syntax and domains with no mail server are free, and so is any address anyone on BounceOwl checked in the last 7 days.
  • Credits are prepaid, so an agent can never spend more than your balance. When credits run out, the tool says so in plain words and the agent can tell you.
  • A separate key per assistant lets you revoke one connection and leave the rest running.

Which email verifiers have an MCP server

Checked in November 2026:

  • BounceOwl: hosted server at https://api.bounceowl.com/mcp.
  • Bouncer: official hosted server at https://api.usebouncer.com/mcp.
  • ZeroBounce: official server published as an npm package, @zerobounce/mcp.
  • MillionVerifier: no official server listed on its site. Third-party wrappers exist.
  • Emailable: no MCP server listed. It offers a CLI and an agent skill instead.

There are also small open-source MCP servers that run the mail-server check from your own machine. They are fine for experiments, but many home and cloud networks block the outgoing connection on port 25 that a mailbox check needs, and a single IP that checks many addresses gets throttled quickly.

Prices, credit rules and catch-all handling side by side: BounceOwl comparisons.

The short version

An AI agent can find a name and guess an address, but it can't know whether the mailbox exists. A verification MCP server gives it a live check, a clear verdict and the evidence behind it, as a tool it can call on its own. Connect one before you let an agent near a send button.

Get an API key with 100 free credits, then follow the MCP setup guide.

FAQ

Can ChatGPT verify an email address on its own?

No. A language model can't connect to a mail server. Add a verification MCP server as a custom connector, and ChatGPT can call it to run a live check.

Does the agent send an email when it verifies an address?

No. The verifier talks to the recipient's mail server and stops before any message is sent.

What does verification through MCP cost on BounceOwl?

1 credit per real answer. Unknown results, bad syntax, domains with no mail server and addresses checked by anyone in the last 7 days are free. New accounts get 100 free credits. See pricing.

Which AI assistants can use it?

Any assistant that supports remote MCP servers, including Claude Code, Claude.ai, ChatGPT, Cursor, Codex, VS Code, Zed and Cline. Setup for each is on the MCP page.

Check a list before you send it.

Live checks with evidence. Unknown results are free, and credits never expire.

Start with 100 free credits

Keep reading