MailTester Email Verification
Verify emails (valid/invalid/risky/unknown): MX, SMTP, catch-all, disposable. Free agent key.
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"email-verification": {
"url": "https://app.mailtester.com/mcp"
}
}
}Remote endpoints
https://app.mailtester.com/mcpstreamable-httpWhat it can do
Tool inventory
Tools (9)
🟢get_api_key(name, purpose, contact)
Get a free API key for this server (no account needed; 25 email verifications per day). Returns the key once — reconnect with 'Authorization: Bearer <api_key>' to use the other tools.
Input Schema
{
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "Your agent's name."
},
"purpose": {
"type": "string",
"description": "What you verify emails for."
},
"contact": {
"type": "string",
"description": "Optional operator email or URL."
}
}
}🟢get_credit_balance
Get the current credit balance and a short usage summary for the account.
Input Schema
{
"type": "object",
"properties": {},
"required": []
}🟢list_lists(limit)
List the user's bulk verification lists/jobs, most recent first.
Input Schema
{
"type": "object",
"properties": {
"limit": {
"type": "integer",
"minimum": 1,
"maximum": 100,
"default": 25,
"description": "Maximum number of lists to return."
}
},
"required": []
}🟢get_list(list_id)
Get the details of a single bulk verification list by its id.
Input Schema
{
"type": "object",
"properties": {
"list_id": {
"type": "integer",
"description": "The id of the bulk verification list."
}
},
"required": [
"list_id"
]
}🟡explain_result(term)
Explain what a verification status or reason means in plain English, with a send recommendation. Covers valid, invalid, catch-all/accept-all, unknown, greylisted, disposable, role, free, spam-trap, abuse, do-not-mail, no-mx, disabled, and network. Use when a user asks what a result means.
Input Schema
{
"type": "object",
"properties": {
"term": {
"type": "string",
"description": "The status/reason to explain, e.g. 'catch-all', 'GREYLISTED', 'unknown', 'role'. Case-insensitive."
}
},
"required": [
"term"
]
}⚪verify_email(email)
Verify the deliverability of a single email address. Returns a verdict (valid, invalid, risky, unknown). Costs 1 credit.
Input Schema
{
"type": "object",
"properties": {
"email": {
"type": "string",
"description": "The email address to verify."
}
},
"required": [
"email"
]
}⚪verify_batch(emails, name)
Verify a batch of email addresses (up to 25 per call with an agent key). Returns per-email verdicts and saves a list. Costs 1 credit per email.
Input Schema
{
"type": "object",
"properties": {
"emails": {
"type": "array",
"items": {
"type": "string"
},
"description": "Email addresses to verify."
},
"name": {
"type": "string",
"description": "Optional label for the saved list."
}
},
"required": [
"emails"
]
}🟢estimate_cost(emails, list_id, operation)
Estimate the credit cost of a verification before running it, and whether the user can afford it. Provide either a count of emails, a list_id to re-verify, or an operation ('single'/'finder'). Always quote this before proposing anything billable.
Input Schema
{
"type": "object",
"properties": {
"emails": {
"type": "integer",
"description": "Number of emails to verify (1 credit each)."
},
"list_id": {
"type": "integer",
"description": "Estimate re-verifying an existing list by its id."
},
"operation": {
"type": "string",
"enum": [
"bulk",
"single",
"finder"
],
"default": "bulk",
"description": "Operation type: bulk/single (1 credit) or finder (3 credits)."
}
}
}🟢get_batch_status(list_id)
Get the progress and status of a bulk verification list/job by id.
Input Schema
{
"type": "object",
"properties": {
"list_id": {
"type": "integer"
}
},
"required": [
"list_id"
]
}Community
Evidence