Email verifier MCP server

Verify email addresses and check domains from Claude Code, Cursor, or Codex. Connect the hosted Model Context Protocol server with your emailverifier.dev account.

Connect the email verification MCP server

MCP lets an AI agent call verification tools and read their results. emailverifier.dev hosts the server, so you don't need to install a local package or run a container.

Server URL
https://emailverifier.dev/mcp
Transport
Streamable HTTP
Authentication
Sign in with emailverifier.dev and choose a project
API key option
X-API-Key request header

Create an account, confirm your email, and create a project. During OAuth sign-in, select the project whose credits the agent will use. Your API key is optional for clients that support browser authorization.

Set up Claude Code, Cursor, or Codex

Run this command in your terminal to add the remote server for the current project:

claude mcp add --transport http emailverifier https://emailverifier.dev/mcp

Open Claude Code and run /mcp. Select emailverifier, follow the authentication prompt, then sign in and approve your emailverifier.dev project in the browser.

Add this entry to .cursor/mcp.json in your project, preserving any servers you already use:

{
  "mcpServers": {
    "emailverifier": {
      "url": "https://emailverifier.dev/mcp"
    }
  }
}

Open Cursor’s MCP settings, enable emailverifier, and follow the OAuth sign-in prompt. Choose your project on emailverifier.dev and return to Cursor to check the available tools.

Add the server with the Codex CLI. If authorization is still required, run the login command:

codex mcp add emailverifier --url https://emailverifier.dev/mcp
codex mcp login emailverifier

Complete browser sign-in and approve a project. Codex saves the server in ~/.codex/config.toml. Restart your Codex session after adding it, then use /mcp to inspect the connection.

After authorization, confirm that verify_email and check_domain appear in your client's tool list. Other clients need remote Streamable HTTP support and either OAuth or custom request headers.

Use a project API key

For a server or script, send the project's key in X-API-Key on every MCP request. Store it in your client's secret or environment configuration. Keep keys out of prompts, browser code, and committed files. Set EMAILVERIFIER_API_KEY in your shell environment first. This Bash example lists tools without spending credits:

curl https://emailverifier.dev/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "X-API-Key: $EMAILVERIFIER_API_KEY" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Email and domain verification tools

verify_email

Check a complete email address before creating a lead, inviting a user, or updating customer data.

Input
email · string · required
Returns
email · status · action · flagged · signals · suggestion
Cost
1 project credit

JSON-RPC request to POST /mcp

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "verify_email",
    "arguments": {
      "email": "not-an-email"
    }
  }
}

check_domain

Check mail routing and whether a domain is a known disposable or free email provider before applying signup rules.

Input
domain · string · required
Returns
domain · classification · risk · mail_routing
Cost
1 project credit

JSON-RPC request to POST /mcp

{
  "jsonrpc": "2.0",
  "id": 2,
  "method": "tools/call",
  "params": {
    "name": "check_domain",
    "arguments": {
      "domain": "gmail.com"
    }
  }
}

Each call checks one address or domain. For a CSV or TXT list, use the bulk email verifier, which accepts up to 5,000 unique addresses per job. Read the MCP agent workflow guide for examples of using results in an agent.

Read the verification result

Email verification checks syntax, mail routing, disposable and free-provider lists, role-address signals, and mailbox acceptance and catch-all behavior when available. The MCP result includes both text content and structuredContent.

Example: invalid email syntax

For not-an-email, result.structuredContent contains:

{
  "email": "not-an-email",
  "status": "undeliverable",
  "action": "block",
  "flagged": true,
  "signals": [
    "invalid_syntax"
  ],
  "suggestion": null
}
status
deliverable, risky, undeliverable, or unknown describes the verification evidence.
action
allow, review, or block recommends how to handle the address. Your application decides what happens next.
flagged
True when the recommended action is block. Review results can still contain risk signals.
signals / suggestion
Signals explain the result. A suggestion is a possible typo correction; ask the user to confirm it before replacing an address.

Timeouts, mail-server restrictions, and inconclusive mailbox checks remain unknown. An allow recommendation can accompany an unknown delivery status. Verification doesn't prove inbox ownership or guarantee delivery. Preserve the returned status and signals when your agent summarizes a result.

A domain result reports classification, risk, and mail_routing. Available mail routing means the domain can receive mail; it does not confirm a particular mailbox. See the REST API docs for the shared response fields.

MCP pricing and free credits

Your account receives 1,000 non-expiring starter credits on its first project, once per account. Each authenticated email verification or domain check uses one project credit, including risky, undeliverable, and unknown results. Initialization and tool discovery use no credits.

Add 20,000 non-expiring credits for a one-time $10 USD payment. MCP and REST calls share the selected project's balance. The no-key website demo is limited to 10 checks per hour; MCP requires authorization or a project API key.

Troubleshoot an MCP connection

401 or authentication required
An unauthenticated connection receives an OAuth challenge. Finish browser authorization, or send a valid project API key in X-API-Key. Reconnect if access was revoked or the authorized project was deleted.
Server connects but tools are missing
Use the /mcp server URL, not /docs/mcp. Confirm Streamable HTTP support, complete sign-in, and refresh the client’s tool list. A browser GET to the endpoint is not a tool-discovery test.
402: project has no credits
Add credits to the project selected during authorization. Another project’s balance is separate. A completed check uses a credit even when its result is unknown.
429: rate limit exceeded
Wait until the X-RateLimit-Reset time before trying again. Avoid immediate retry loops and check that other integrations are not using the same project’s request allowance.

Contact support with your client name and a redacted error message if the connection still fails.