MailTester Email Verification

Verify emails (valid/invalid/risky/unknown): MX, SMTP, catch-all, disposable. Free agent key.

Should I use this

Quality & Safety

A
Description quality
96%
Schema completeness
87%
Naming quality
96%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~792Tokens (tool definitions)
~529 BTypical response size
Moderate attention impact (0.62% of 128k context)

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-http

What it can do

Tool inventory

Tools (9)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded9 tools