Mailveri MCP Server
OfficialClick on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Mailveri MCP Serververify if john.doe@example.com is a valid deliverable email"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
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 |
| Verifies a single email address (returns |
| Retrieves remaining verification credits for your Mailveri account. |
| Queues a list of emails (minimum 2) for background distributed verification. |
| Checks progress percentage, status, and download links for a batch job. |
| Gets the download link for the completed verification result zip. |
| 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.jsonWindows:
%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 | shorbrew install uv).
3. Configuration for Cursor
In Cursor, open Settings > Features > MCP Servers > Add New MCP Server:
Name:
mailveriType:
commandCommand:
uvx --from git+https://github.com/mailveri/mailveri-mcp mailveri-mcpEnvironment 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 |
| Yes | ā | Your Mailveri API Key ( |
| No |
| 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.0or a public interface without placing an authenticating reverse proxy in front.
Flag | Default | Description |
|
| Transport type: |
|
| Host to bind for SSE transport |
|
| Port to bind for SSE transport |
| ā | API key (alternative to env var) |
|
| 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.serverExample 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 toolsmailveri_delete_batchC
Cancel or delete a bulk email verification job from your account.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| job_id | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| emails | Yes | ||
| filename | No | batch.csv |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
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.
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.
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.
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.
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.
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.
6 tool updates
v1.0.0- First observed
mailveri_delete_batch - First observed
mailveri_download_batch_result - First observed
mailveri_get_balance - First observed
mailveri_get_batch_status - First observed
mailveri_verify_batch - First observed
mailveri_verify_email
TDQS
Scored across 6 tools
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.
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.
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.
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
Related MCP Connectors
Verify emails ā deliverability, disposable/role/free detection, MX validity, domain age.
Verify emails and domains for routing, disposable providers, role accounts, and SMTP risk.
Email verification for AI agents ā verify, clean & validate emails; self-onboard + crypto pay
Connect any mailbox to Claude, ChatGPT & AI: read, send, reply, schedule & search emails.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables AI assistants to verify email deliverability and find business emails via the Verifox API, supporting single and bulk operations.682MIT
- AlicenseNot gradedqualityCmaintenanceWraps the Emailable API for email verification, enabling AI agents to verify email addresses through natural language queries.17MIT
- AlicenseAqualityDmaintenanceEnables AI agents to verify email addresses, clean lists, run bulk verification jobs, and manage a Verifly account through natural language, without writing HTTP calls.158MIT
- AlicenseAqualityDmaintenanceProvides 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.474MIT