MailVeri MCP v2

Official Model Context Protocol (MCP) v2 server for MailVeri. Connect your AI assistants (Claude Desktop, Claude Code, Codex, Cursor, Windsurf, Antigravity, OpenCode, Pi, Oh My Pi, VS Code Cline) via instant Hosted Streamable HTTP (/mcp), local uvx (stdio), or legacy SSE (/sse).

Package: mailveri-mcp v2.0.0
Protocol: MCP 2025-11-25
AI / Markdown: View as Markdown (.md)
Summarize with AI: ChatGPT ยท Claude ยท Perplexity ยท Markdown (.md)

1. Overview

The Model Context Protocol (MCP) is an open standard that lets LLMs and AI Agents securely invoke external tools and query live data. The MailVeri MCP Server bridges LLMs directly with MailVeri's infrastructure without requiring manual API calls.

โšก Real-Time Email Validation

Verify mailbox deliverability, catch-all domains, role accounts, and 100,000+ disposable providers in real time with zero credits charged on unknowns.

๐Ÿ“ฆ Asynchronous Bulk Verification

Submit lists of emails from within chat sessions, monitor batch completion percentages, and retrieve filtered CSV or ZIP download URLs.

๐Ÿ›ก๏ธ Native MCP v2 ToolAnnotations

Every tool declares explicit read-only, idempotent, and destructive safety hints so AI clients auto-approve safe balance/status checks while guarding billed or delete actions.

๐Ÿš€ Hosted HTTP & Local uvx

Connect instantly over Streamable HTTP (https://mcp.mailveri.com/mcp) with zero local setup, or run locally via uvx mailveri-mcp directly from PyPI.

2. Prerequisites & Authentication

Connect instantly to our hosted remote Streamable HTTP endpoint using only your MailVeri API key, or install uv to run the local stdio server on your workstation.

MailVeri API Key: Retrieve or create your key in the MailVeri Console at app.mailveri.com/api-keys/ or visit app.mailveri.com/mcp/ for interactive configuration.

Option A: Hosted Streamable HTTP (Zero Install โ€” MCP v2)

Point any Streamable HTTP MCP client directly to https://mcp.mailveri.com/mcp with your API key in the Authorization: Bearer or X-API-Key header (in Claude Code .mcp.json / ~/.claude.json, also include "type": "http"; legacy SSE clients remain supported at https://mcp.mailveri.com/sse):

Hosted Remote MCP Configuration (Streamable HTTP)
{
  "mcpServers": {
    "mailveri": {
      "url": "https://mcp.mailveri.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_MAILVERI_API_KEY"
      }
    }
  }
}

Option B: Install uv (Local CLI Runner)

uv enables instantaneous tool execution without creating global Python environments:

Install uv (macOS / Linux / Windows)
# macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows PowerShell
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

3. One-Click AI Setup Prompt

Paste this prompt directly into your AI assistant (e.g. Claude Desktop, Claude Code, Codex, Cursor, OpenCode, Pi, Oh My Pi, Antigravity) to let it automatically set up MailVeri MCP for you.

Prompt for AI Assistant
Please configure the MailVeri MCP (Model Context Protocol) email verification tool for me.

Configuration JSON (Hosted Streamable HTTP โ€” no local install required):
{
  "mcpServers": {
    "mailveri": {
      "url": "https://mcp.mailveri.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_API_KEY"
      }
    }
  }
}

(In Claude Code `.mcp.json` / `~/.claude.json`, include `"type": "http"` inside `"mailveri"` or run `claude mcp add --transport http mailveri https://mcp.mailveri.com/mcp --header "Authorization: Bearer YOUR_API_KEY"`. For stdio-only clients like `claude_desktop_config.json`, run `uvx mailveri-mcp` with `MAILVERI_API_KEY=YOUR_API_KEY` instead.)

Once configured, verify single emails using mailveri_verify_email or check balance using mailveri_get_balance.

4. Client Configurations

Configure MailVeri MCP across your favorite AI assistants and IDEs.

CLIENT Claude Desktop
macOS & Windows

Add the server definition to your Claude Desktop configuration file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
claude_desktop_config.json
{
  "mcpServers": {
    "mailveri": {
      "command": "uvx",
      "args": [
        "mailveri-mcp"
      ],
      "env": {
        "MAILVERI_API_KEY": "YOUR_MAILVERI_API_KEY"
      }
    }
  }
}
CLIENT Claude Code
CLI Agent

Add MailVeri MCP to Anthropic's Claude Code CLI via Hosted Streamable HTTP (recommended, zero local install) or local uvx:

  • Project-scoped (shared via repo): .mcp.json (at project root)
  • User-scoped (global for all projects): ~/.claude.json
CLI Command โ€” Hosted Streamable HTTP (Recommended)
claude mcp add --transport http --scope project \
  mailveri https://mcp.mailveri.com/mcp \
  --header "Authorization: Bearer YOUR_MAILVERI_API_KEY"

Or configure Hosted Streamable HTTP directly in .mcp.json / ~/.claude.json (include "type": "http"):

.mcp.json / ~/.claude.json (Hosted HTTP)
{
  "mcpServers": {
    "mailveri": {
      "type": "http",
      "url": "https://mcp.mailveri.com/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_MAILVERI_API_KEY"
      }
    }
  }
}

Alternatively, run locally via uvx (stdio):

CLI Command โ€” Local uvx (stdio)
claude mcp add \
  --scope project \
  --env MAILVERI_API_KEY=YOUR_MAILVERI_API_KEY \
  mailveri -- \
  uvx mailveri-mcp
CLIENT Codex
CLI & Agent

Configure MailVeri MCP in your Codex assistant or agent configuration file. The official Codex CLI uses TOML format:

  • Global CLI config: ~/.codex/config.toml
  • Project CLI config: .codex/config.toml
  • Alternative / GUI integrations: ~/.codex/config.json
~/.codex/config.toml
[mcp_servers.mailveri]
command = "uvx"
args = ["mailveri-mcp"]

[mcp_servers.mailveri.env]
MAILVERI_API_KEY = "YOUR_MAILVERI_API_KEY"

If using JSON configuration:

~/.codex/config.json
{
  "mcpServers": {
    "mailveri": {
      "command": "uvx",
      "args": [
        "mailveri-mcp"
      ],
      "env": {
        "MAILVERI_API_KEY": "YOUR_MAILVERI_API_KEY"
      }
    }
  }
}
CLIENT Cursor IDE
Project & Global

Add MailVeri MCP via GUI under Cursor Settings > Features > MCP, or add directly to your configuration files:

  • Project-level: .cursor/mcp.json
  • Global user-level: ~/.cursor/mcp.json
.cursor/mcp.json
{
  "mcpServers": {
    "mailveri": {
      "command": "uvx",
      "args": [
        "mailveri-mcp"
      ],
      "env": {
        "MAILVERI_API_KEY": "YOUR_MAILVERI_API_KEY"
      }
    }
  }
}
CLIENT Windsurf (Codeium)
mcp_config.json

Configure via GUI in Windsurf Settings > Cascade > MCP Servers, or directly edit the configuration file:

  • Configuration path: ~/.codeium/windsurf/mcp_config.json
~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": {
    "mailveri": {
      "command": "uvx",
      "args": [
        "mailveri-mcp"
      ],
      "env": {
        "MAILVERI_API_KEY": "YOUR_MAILVERI_API_KEY"
      }
    }
  }
}
CLIENT Google Antigravity
mcp_config.json / settings

Configure under global user settings or per-workspace settings:

  • Global config: ~/.gemini/antigravity/mcp_config.json
  • Workspace config: .gemini/antigravity/mcp_config.json
mcp_config.json
{
  "mcpServers": {
    "mailveri": {
      "command": "uvx",
      "args": [
        "mailveri-mcp"
      ],
      "env": {
        "MAILVERI_API_KEY": "YOUR_MAILVERI_API_KEY"
      }
    }
  }
}
CLIENT OpenCode
CLI Terminal

OpenCode discovers configuration files in the following precedence order:

  • Global (Home): ~/.opencode.json
  • Global (XDG): ~/.config/opencode/.opencode.json
  • Project directory: ./.opencode.json
.opencode.json
{
  "mcpServers": {
    "mailveri": {
      "command": "uvx",
      "args": [
        "mailveri-mcp"
      ],
      "env": {
        "MAILVERI_API_KEY": "YOUR_MAILVERI_API_KEY"
      }
    }
  }
}
CLIENT Pi
CLI & Agent

Configure MailVeri MCP in your Pi AI assistant settings:

  • Global Agent config: ~/.pi/agent/mcp.json or ~/.pi/config.json
  • Project config: .pi/mcp.json
~/.pi/agent/mcp.json
{
  "mcpServers": {
    "mailveri": {
      "command": "uvx",
      "args": [
        "mailveri-mcp"
      ],
      "env": {
        "MAILVERI_API_KEY": "YOUR_MAILVERI_API_KEY"
      }
    }
  }
}
CLIENT Oh My Pi
CLI Terminal

Configure in Oh My Pi MCP registry:

  • Global config: ~/.omp/mcp.json
  • Project config: ./.omp/mcp.json
~/.omp/mcp.json
{
  "mcpServers": {
    "mailveri": {
      "command": "uvx",
      "args": [
        "mailveri-mcp"
      ],
      "env": {
        "MAILVERI_API_KEY": "YOUR_MAILVERI_API_KEY"
      }
    }
  }
}
CLIENT VS Code / Cline / Roo-Code
Extension Config

Configure via the Cline extension MCP settings tab, or edit cline_mcp_settings.json directly:

  • macOS: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
  • Windows: %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json
  • Linux: ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
cline_mcp_settings.json
{
  "mcpServers": {
    "mailveri": {
      "command": "uvx",
      "args": [
        "mailveri-mcp"
      ],
      "env": {
        "MAILVERI_API_KEY": "YOUR_MAILVERI_API_KEY"
      },
      "disabled": false,
      "autoApprove": [
        "mailveri_verify_email",
        "mailveri_get_balance"
      ]
    }
  }
}

5. MCP Tools Reference

Detailed parameter definitions, response schemas, deliverability status indicators, and MCP v2 ToolAnnotations safety hints (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) for all 6 tools exposed by the MailVeri MCP Server.

TOOL mailveri_verify_email
1 Credit

Verifies the existence and deliverability of a single target email address. Checks MX existence, connects to the destination mail exchanger via SMTP handshake, evaluates catch-all configurations, disposable email providers, and role accounts.

Input Arguments

Field Type Required Description
email string Required Target email address (e.g. [email protected]).

Output JSON Schema

Tool Result Response
{
  "mail": "[email protected]",
  "email": "[email protected]",
  "status": "VALID",
  "is_deliverable": true,
  "balance": 999,
  "credits_used": 1,
  "quality_score": 98,
  "is_forwarding": false,
  "message": "Verified [email protected] successfully"
}

Deliverability Status Enum

Status Meaning Deliverability Advice
VALID Mailbox verified successfully. SMTP 250 OK accepted. Safe to send. Lowest bounce probability.
INVALID Recipient address does not exist, syntax is invalid, or domain has no MX. Do not send. Hard bounce guaranteed.
DISPOSABLE Temporary, burnable email provider (e.g. GuerrillaMail, 10MinuteMail). Block or filter out to preserve sender reputation.
ROLE_ACCOUNT Functional company address (e.g. support@, info@, sales@). Higher complaint risk; proceed with care.
CATCH_ALL Domain server accepts all incoming emails regardless of username. Proceed cautiously; deliverability cannot be guaranteed.
FULL_INBOX Recipient mailbox storage quota is exceeded. Do not send. Soft bounce expected.
UNKNOWN Remote mail server greylisted, timed out, or connection refused. Temporary issue. Retry verification later.
TOOL mailveri_get_balance
Free

Checks the current verification credits remaining in your MailVeri account. Takes no arguments.

Output JSON Schema

Tool Result Response
{
  "balance": 4820,
  "message": "You have 4820 credits"
}
TOOL mailveri_verify_batch
1 Credit / Email

Queues a list of emails (minimum 2 unique email addresses) for asynchronous, distributed bulk verification. Returns an identifier id to monitor job progress.

Input Arguments

Field Type Required Description
emails array<string> Required Array of email strings (at least 2 unique items).
filename string Optional Optional label filename for the batch archive (default: batch.csv).

Output JSON Schema

Tool Result Response
{
  "id": "sample_batch_id_9x8y7z",
  "job_id": "sample_batch_id_9x8y7z",
  "count": 250,
  "status": "QUEUED",
  "message": "Batch submitted successfully"
}
TOOL mailveri_get_batch_status
Free

Polls progress percentage, status state, and download links for an active or completed bulk verification job.

Input Arguments

Field Type Required Description
job_id string Required The batch identifier returned from mailveri_verify_batch.

Output JSON Schema

Tool Result Response
{
  "id": "sample_batch_id_9x8y7z",
  "job_id": "sample_batch_id_9x8y7z",
  "status": "DONE",
  "percent": 100,
  "download_link": "https://api.mailveri.com/v1/download-zip/?id=sample_batch_id_9x8y7z",
  "is_finished": true
}
TOOL mailveri_download_batch_result
Free

Returns the direct authenticated download URL for batch verification results. Supports downloading the full ZIP archive (via /v1/download-zip/) or a custom filtered CSV file (via /v1/download-result/?format=csv).

Input Arguments

Field Type Required Description
job_id string Required The completed batch ID.
format string Optional Result file format: zip (default) or csv.
status string Optional Comma-separated deliverability statuses for CSV export (e.g. VALID,ROLE_ACCOUNT, VALID, INVALID).
columns string Optional Column layout for CSV export: original (default), compact (Email, Status), or email (Email only).

Output JSON Schema (ZIP Archive - Default)

Tool Result Response (ZIP)
{
  "id": "bX9K3LwZqP2YtR8vN4mQ",
  "job_id": "bX9K3LwZqP2YtR8vN4mQ",
  "format": "zip",
  "download_url": "https://api.mailveri.com/v1/download-zip/?id=bX9K3LwZqP2YtR8vN4mQ",
  "message": "Download result ZIP archive at: https://api.mailveri.com/v1/download-zip/?id=bX9K3LwZqP2YtR8vN4mQ (requires API key header)"
}

Output JSON Schema (Filtered CSV Export)

Tool Result Response (Filtered CSV)
{
  "id": "bX9K3LwZqP2YtR8vN4mQ",
  "job_id": "bX9K3LwZqP2YtR8vN4mQ",
  "format": "csv",
  "download_url": "https://api.mailveri.com/v1/download-result/?id=bX9K3LwZqP2YtR8vN4mQ&format=csv&status=VALID%2CROLE_ACCOUNT&columns=original",
  "message": "Download result CSV (VALID,ROLE_ACCOUNT) at: https://api.mailveri.com/v1/download-result/?id=bX9K3LwZqP2YtR8vN4mQ&format=csv&status=VALID%2CROLE_ACCOUNT&columns=original (requires API key header)"
}
TOOL mailveri_delete_batch
Free • Destructive

Deletes a finished or canceled verification batch and its associated result files (destructiveHint: true). Batches that are still queued or processing cannot be deleted; wait for completion or cancel them from the MailVeri Dashboard first.

Input Arguments

Field Type Required Description
job_id string Required Completed or canceled batch ID to delete.

Output JSON Schema

Tool Result Response
{
  "id": "bX9K3LwZqP2YtR8vN4mQ",
  "job_id": "bX9K3LwZqP2YtR8vN4mQ",
  "message": "List leads.csv was deleted successfully"
}

6. Transports & Execution Modes

MailVeri MCP v2 supports Hosted Streamable HTTP (/mcp), standard I/O (stdio), and backward-compatible Server-Sent Events (/sse).

Transport Endpoint / CLI Flag Best Used For
streamable-http (Hosted) https://mcp.mailveri.com/mcp Instant zero-install cloud agents, IDEs, and web MCP clients authenticating via Authorization: Bearer or X-API-Key.
stdio (Default CLI) --transport stdio Desktop and CLI clients like Claude Desktop, Claude Code, Codex, Cursor, OpenCode, Pi, Antigravity where the host process manages the local server lifecycle.
streamable-http / sse (Self-Hosted) --transport streamable-http --port 8000 Self-hosted local HTTP deployments serving both /mcp (Streamable HTTP) and /sse (legacy SSE) on 127.0.0.1.

Environment Variables

Variable Default Description
MAILVERI_API_KEY None Required for local CLI execution. Your MailVeri API key.
MAILVERI_BASE_URL https://api.mailveri.com Optional custom MailVeri REST API base URL.

7. Troubleshooting & FAQ

Q: uvx: command not found error

Make sure uv is installed and available in your shell's PATH, or switch to the zero-install hosted Streamable HTTP endpoint (https://mcp.mailveri.com/mcp). If Claude Desktop doesn't find uvx, provide the full absolute path in your config (e.g. /usr/local/bin/uvx or /Users/<user>/.local/bin/uvx).

Q: Rate limit warnings on single verification

Single email verification (mailveri_verify_email) allows up to 10 requests per second (up to 5 concurrent checks) per account. For lists containing 50 or more emails, instruct your AI agent to use mailveri_verify_batch for asynchronous bulk processing.

Q: Tool call returns {"error": 1, "message": "Invalid API key"}

Verify that your MAILVERI_API_KEY environment variable is correctly set in your client's config file and that your key is active in your MailVeri Dashboard.