Skip to main content
Glama
mailveri

Mailveri MCP Server

Official
by mailveri

Mailveri MCP Server šŸš€

Official Model Context Protocol (MCP) server for Mailveri — Fast, accurate, and privacy-friendly email verification.

This server enables AI assistants (Claude Desktop, Cursor, Antigravity, Windsurf, etc.) to verify email deliverability, check mailbox existence, check credit balances, and manage bulk verification batches directly from chat.


Features & Tools

Tool

Description

mailveri_verify_email

Verifies a single email address (returns VALID, INVALID, DISPOSABLE, ROLE_ACCOUNT, CATCH_ALL, FULL_INBOX, etc.).

mailveri_get_balance

Retrieves remaining verification credits for your Mailveri account.

mailveri_verify_batch

Queues a list of emails (minimum 2) for background distributed verification.

mailveri_get_batch_status

Checks progress percentage, status, and download links for a batch job.

mailveri_download_batch_result

Gets the download link for the completed verification result zip.

mailveri_delete_batch

Cancels or deletes a verification batch.


Related MCP server: mcp-emailable

Quick Start

1. Get Your Mailveri API Key

Sign up or log in to Mailveri and copy your Auth-Token at: šŸ‘‰ https://mailveri.com/api-key/


2. Configuration for Claude Desktop

Add this configuration to your Claude Desktop config file:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "mailveri": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/mailveri/mailveri-mcp",
        "mailveri-mcp"
      ],
      "env": {
        "MAILVERI_API_KEY": "YOUR_MAILVERI_AUTH_TOKEN_HERE"
      }
    }
  }
}

Note: Requires uv installed on your system (curl -LsSf https://astral.sh/uv/install.sh | sh or brew install uv).


3. Configuration for Cursor

In Cursor, open Settings > Features > MCP Servers > Add New MCP Server:

  • Name: mailveri

  • Type: command

  • Command: uvx --from git+https://github.com/mailveri/mailveri-mcp mailveri-mcp

  • Environment Variables:

    • MAILVERI_API_KEY: YOUR_MAILVERI_AUTH_TOKEN_HERE

Or add to .cursor/mcp.json:

{
  "mcpServers": {
    "mailveri": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/mailveri/mailveri-mcp",
        "mailveri-mcp"
      ],
      "env": {
        "MAILVERI_API_KEY": "YOUR_MAILVERI_AUTH_TOKEN_HERE"
      }
    }
  }
}

4. Configuration for Antigravity / Other MCP Clients

Add to your MCP config (e.g. .gemini/settings.json, .mcp.json, or equivalent):

{
  "mcpServers": {
    "mailveri": {
      "command": "uvx",
      "args": [
        "--from",
        "git+https://github.com/mailveri/mailveri-mcp",
        "mailveri-mcp"
      ],
      "env": {
        "MAILVERI_API_KEY": "YOUR_MAILVERI_AUTH_TOKEN_HERE"
      }
    }
  }
}

Environment Variables

Variable

Required

Default

Description

MAILVERI_API_KEY

Yes

—

Your Mailveri API Key (Auth-Token).

MAILVERI_BASE_URL

No

https://api.mailveri.com

Base API endpoint (useful for staging or self-hosted instances).


Transport Options

By default the server uses stdio transport (recommended for Claude Desktop / Cursor).

For SSE transport (useful for remote or multi-client setups):

export MAILVERI_API_KEY="your_api_token"
mailveri-mcp --transport sse --host 127.0.0.1 --port 8000

āš ļø Security: The SSE transport has no built-in authentication. Never bind to 0.0.0.0 or a public interface without placing an authenticating reverse proxy in front.

Flag

Default

Description

--transport

stdio

Transport type: stdio or sse

--host

127.0.0.1

Host to bind for SSE transport

--port

8000

Port to bind for SSE transport

--api-key

—

API key (alternative to env var)

--base-url

https://api.mailveri.com

Base API URL


Rate Limits

  • Single email verification: 1 request per second

  • Batch verification: No per-request limit (emails are queued server-side)


Credit Exhaustion

If your account runs out of verification credits, mailveri_verify_email will return an error with message "Not enough credits to verify email". Check your balance with mailveri_get_balance and top up at mailveri.com.


Local Development & Testing

Clone this repository and run locally:

git clone https://github.com/mailveri/mailveri-mcp.git
cd mailveri-mcp

# Install dependencies
pip install -e .

# Run unit tests
python -m unittest discover -s tests

# Test running the MCP server locally (stdio)
export MAILVERI_API_KEY="your_api_token"
python -m mailveri_mcp.server

Example Prompts for AI

Once connected, you can ask Claude or Cursor:

  • "Check if alex@gmail.com and support@stripe.com are valid and deliverable."

  • "How many email verification credits do I have left in Mailveri?"

  • "Verify this list of 20 lead emails and let me know the batch status."

  • "Get the result download link for my verification batch."


License

MIT License Ā© 2026 Mailveri

Available Tools

6 tools
mailveri_delete_batchC

Cancel or delete a bulk email verification job from your account.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, and it does not disclose that this is destructive, whether it is reversible, whether results are recoverable after deletion, or any auth/permission requirements. For a deletion tool with zero annotation coverage, this is a substantial gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short sentence with no filler, and the operation is front-loaded. It is efficient, though the 'cancel or delete' hedge adds minor ambiguity rather than precision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described, but a destructive operation with no annotations, no reversibility/permission context, and an undocumented parameter is under-specified for safe invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0% for the single required job_id, and the description adds no format, source, or constraint information about it. The name is fairly self-explanatory, but neither schema nor description explains where a valid job_id comes from (presumably a prior verify_batch call).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource: 'Cancel or delete a bulk email verification job'. This clearly distinguishes it from siblings like mailveri_verify_batch, mailveri_get_batch_status, and mailveri_download_batch_result. The dual verb 'cancel or delete' is slightly imprecise about which semantic applies, but the operation is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this versus alternatives (e.g., check mailveri_get_batch_status first), no prerequisites, and no indication that this is irreversible or what happens to in-flight jobs. The agent is left to infer usage entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mailveri_download_batch_resultA

Get download URL for completed batch verification results.

Returns the download URL for the result zip file. The batch job must be completed (status = DONE) before results are available. Use the returned URL with an Auth-Token header to download the file.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It does disclose a real prerequisite (status = DONE) and an auth requirement (Auth-Token header), which is useful, but it omits failure behavior when the job is incomplete and whether the URL expires or is single-use.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Short and front-loaded, with the core action in the first line and prerequisites and auth following. The second sentence restates the first line's content, a minor redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need no explanation, and the description covers the key prerequisite and auth requirement. Only error handling for an incomplete job is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, and the description adds no meaning about job_id beyond its self-evident name. The single parameter is obvious enough that the gap is minor, but the description does no work here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: retrieving a download URL for completed batch verification results. It is clearly distinct in kind from siblings like get_batch_status and verify_batch, though it never names an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a clear precondition (the job must be DONE before results are available) and tells the caller how to use the returned URL. It does not state what to do when the job is not done or point to a sibling for that case.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mailveri_get_balanceA

Check your current verification credit balance on Mailveri.

Returns the number of remaining credits available for verification.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the burden. It discloses that this is a non-mutating query returning remaining credits, which is helpful, but nothing about auth requirements, rate limits, or whether the balance is global or account-scoped. It is a read-only query by implication but this is never stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, front-loaded with the purpose and followed by what is returned. Every sentence earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given zero parameters, no annotations, and the existence of an output schema (which presumably documents the return value), the description is nearly complete. It could add when-to-use context or note that the balance is needed before batch verification, but it covers what the tool does and what it returns.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters, so the baseline is 4. There are no parameters to explain and the description correctly reflects that no inputs are required.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Check') and resource ('verification credit balance on Mailveri'), and the second sentence clarifies exactly what is returned. An agent can tell this apart from the sibling tools, all of which perform verification or batch operations rather than account queries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage (checking remaining credits before verifying) but offers no explicit when-to-use guidance or alternatives. No context is given about when an agent should call this versus proceeding with verification.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mailveri_get_batch_statusB

Check progress and status of an ongoing bulk email verification job.

Returns percent completion (0 - 100%), current status (QUEUED, PROCESSING, DONE, CANCELED), and a secure download link for results when complete.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It helpfully discloses the status state machine (QUEUED, PROCESSING, DONE, CANCELED), the 0-100% completion scale, and that a download link appears only when complete, but says nothing about polling cadence, whether repeated calls are cheap, or what happens for an unknown/expired job_id.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, with the purpose front-loaded and the return information second. Every clause adds usable information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the description is not obliged to detail the response shape, and it stays appropriately light for a single-parameter tool. However, it leaves the required job_id's provenance and the polling workflow unaddressed, which is the main completeness gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% and the description never mentions job_id, its format, or where the caller obtains it (presumably from mailveri_verify_batch). With one undocumented required parameter, the description fails to compensate for the schema gap.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Check progress and status of an ongoing bulk email verification job') and scopes it to a job, which clearly separates it from the polling-free write/verify siblings. It never names an alternative such as mailveri_download_batch_result, so differentiation is inferable rather than explicit.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'ongoing bulk email verification job' implies this is a polling tool used after submitting a batch, but there is no explicit when-to-use, when-not-to-use, or named alternative. The agent must infer the poll-vs-download split from the sibling list alone.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mailveri_verify_batchA

Submit a list of emails for bulk verification (minimum 2 unique emails).

The list is queued on Mailveri's backend for asynchronous distributed verification. Returns a job ID that can be tracked with mailveri_get_batch_status.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailsYes
filenameNobatch.csv

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and does disclose meaningful behavior: the work is queued on the backend for asynchronous distributed verification and the call returns a job ID rather than results. It omits auth requirements, rate limits, duplicate-handling beyond 'unique', and any failure behavior, so it is strong but not exhaustive.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, each doing distinct work: the actionable constraint first, then the async behavior, then the follow-up tool for tracking. No filler or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be detailed, and the description still usefully notes that a job ID comes back. For an async submission tool the submission/tracking lifecycle is covered, though edge cases like invalid emails or how duplicates are treated remain unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate. It adds real meaning for the emails parameter (a list with a minimum of 2 unique entries), but the second parameter, filename (default batch.csv), is never mentioned or explained, leaving half the parameters undocumented anywhere.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: submitting a list of emails for bulk verification, with an explicit minimum (2 unique emails). The word 'bulk'/list scoping implicitly separates it from the single-email sibling mailveri_verify_email, but that sibling is never named, so the differentiation is inferred rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for multi-email workloads via the 'minimum 2 unique emails' constraint and routes the agent forward to mailveri_get_batch_status for tracking. It never states when to prefer this over mailveri_verify_email or mailveri_get_balance, nor any exclusion conditions, so usage is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

mailveri_verify_emailA

Verify a single email address using Mailveri.

Returns deliverability status:

  • VALID: Mailbox exists and can receive emails

  • INVALID: Mailbox does not exist, disabled, or syntax error

  • DISPOSABLE: Temporary / throwaway email address

  • ROLE_ACCOUNT: Generic company address (e.g. admin@, support@, info@)

  • CATCH_ALL: Domain accepts all incoming emails

  • FULL_INBOX: Mailbox is full

  • UNKNOWN: Mail server could not be reached or timed out

Also returns the remaining credit balance.

Rate limit: 1 request per second.

ParametersJSON Schema
NameRequiredDescriptionDefault
emailYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden and delivers substantial behavioral detail: a complete enum of return values, the credit-balance side effect, and an explicit rate limit of 1 request per second. It doesn't cover failure modes like retry behavior or what happens when credits are exhausted, but for a read-only verification call this is strong disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core action, followed by a clean bulleted enumeration of statuses and two practical notes (credit balance, rate limit). Every section earns its place; formatting is easy to scan. Slightly verbose in the status list but each entry is informative.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the description needn't explain return values, yet it helpfully enumerates status meanings beyond raw field names. Combined with the rate limit and credit-balance note, it covers what an agent needs to call the tool correctly and interpret its response. Absence of pagination or error-handling notes is minor for a single-record verification.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only 1 parameter and schema description coverage is 0%, meaning the schema adds no meaning to 'email'. The description compensates by clarifying this is a single email address and by enumerating the semantic categories the email will be classified into, which helps the agent understand what the input maps to. With 0 params the baseline would be 4, and this meets that bar.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ('Verify a single email address') and clearly marks its scope as single vs. the sibling mailveri_verify_batch. The output value enumeration further disambiguates its purpose.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage via 'single email address,' which naturally contrasts with mailveri_verify_batch, but it never explicitly states when to prefer this tool over the batch alternative or any prerequisites. Usage context is present but only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 6 tool updatesv1.0.0
    • First observedmailveri_delete_batch
    • First observedmailveri_download_batch_result
    • First observedmailveri_get_balance
    • First observedmailveri_get_batch_status
    • First observedmailveri_verify_batch
    • First observedmailveri_verify_email

TDQS

A3.7/5.0

Scored across 6 tools

Disambiguation4/5

Tools target distinct operations (single verify, batch submit, batch status, batch download, batch cancel, balance), but get_batch_status also returns a download link, overlapping with download_batch_result, creating minor ambiguity about which to use for downloads.

Naming Consistency5/5

All tools use the mailveri_ prefix followed by consistent snake_case verb_noun names (verify_email, get_balance, verify_batch, get_batch_status, download_batch_result, delete_batch), making the pattern predictable.

Tool Count5/5

Six tools provide a focused, well-scoped surface for an email verification service without redundancy; each tool has a clear role in single or bulk verification workflows.

Completeness5/5

The toolset covers the full email verification lifecycle: single verify, batch submit, status polling, result download, batch cancellation, and credit balance. No critical operations appear missing.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Enables AI assistants to verify email deliverability and find business emails via the Verifox API, supporting single and bulk operations.
    6
    82
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Wraps the Emailable API for email verification, enabling AI agents to verify email addresses through natural language queries.
    17
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Provides email validation and domain configuration auditing tools for AI assistants, enabling single address checks, bulk list cleaning, SPF verification, and full mail setup grading (A-F) with actionable fixes.
    4
    74
    MIT