MailTester MCP server

Endpoint: https://app.mailtester.com/mcp · Authentication: No auth

Verify email addresses and inspect deliverability signals through MailTester.

How do I authenticate?

Add the endpoint directly in your client. The catalog records no authentication requirement; no OAuth sign-in or API key is configured in this setup. The live server may change.

Authentication and connection guide

Connection specification

Remote endpoint
https://app.mailtester.com/mcp
Browser access
Not yet measured
Declared MCP transport
Streamable HTTP
Live-validated MCP transport
Streamable HTTP — Observed by the latest catalog validation
Declared authentication
No authentication
Detected authentication
No authentication detected or retained from publisher evidence
Alternative authentication
API key
Protocol lifecycle
Stateful MCP · 2024-11-05
Required header
Authorization — Optional credential alternative to public access.

Product documentation · Source repository · Official listing documentation · Official MCP Registry record

Provider guidance

  • Keyless verification has a small shared trial allowance. Register through the publisher for a private API key and account quota.

More Communication MCP servers · Browse all MCP servers · Test this endpoint in the MCP Playground

Authorization setup

No app registration needed

This catalog entry does not require authorization or provider app registration.

Connect it

Live-validated endpoint: https://app.mailtester.com/mcp · Streamable HTTP. No authentication is required by the catalog listing.

Agent prompt for Claude Code or Codex
Add the MailTester MCP server to my MCP client configuration and verify that it works.

What it is: Verify email addresses and inspect deliverability signals through MailTester.
Server URL: https://app.mailtester.com/mcp
Transport: Streamable HTTP (remote MCP server, no local install).
Authentication: none. The server accepts connections without credentials.
Tools (9, as last observed by mcptest): estimate_cost, explain_result, get_api_key, get_batch_status, get_credit_balance, get_list, list_lists, verify_batch, verify_email.
Reference: https://mcptest.io/servers/mailtester/

Steps:
1. Work out which MCP client I use (Claude Code, Codex, Cursor, VS Code or another) and add the server under the name "mailtester" in that client's MCP configuration, user scope unless I ask otherwise.
   Claude Code: claude mcp add --transport http --scope user 'mailtester' 'https://app.mailtester.com/mcp'
   Codex: codex mcp add 'mailtester' --url 'https://app.mailtester.com/mcp'
   Other clients: use the setup for that client on the reference page.
2. Never write a credential value into a file that could be committed; reference an environment variable or the client's secret store, and ask me for any value you need.
3. Verify: connect to the server and call tools/list. Confirm the tools above are listed, and report any sign-in step I still have to complete.
MCP client

Claude Code setup

Run in a terminal. This user-scoped entry is available across projects.

claude mcp add --transport http --scope user 'mailtester' 'https://app.mailtester.com/mcp'

Codex CLI setup

Run in a terminal; Codex stores the entry in ~/.codex/config.toml.

codex mcp add 'mailtester' --url 'https://app.mailtester.com/mcp'

Cursor setup

Add to .cursor/mcp.json for this project, or ~/.cursor/mcp.json for all projects.

{
  "mcpServers": {
    "mailtester": {
      "url": "https://app.mailtester.com/mcp"
    }
  }
}

VS Code setup

Add to .vscode/mcp.json, or run “MCP: Open User Configuration” for a private user-level entry.

{
  "servers": {
    "mailtester": {
      "type": "http",
      "url": "https://app.mailtester.com/mcp"
    }
  }
}

Claude setup

Add the endpoint above in Claude:

  • Customize > Connectors > Add custom connector
  • Team/Enterprise: Organization settings > Connectors > Add > Custom > Web

Claude Desktop setup

Add the endpoint above in Claude Desktop:

  • Remote: Customize > Connectors (same as claude.ai)
  • Local: Settings > Developer > Edit Config, or Settings > Extensions for .mcpb files
  • ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows), local servers only

ChatGPT setup

Add the endpoint above in ChatGPT:

  • ChatGPT web: Plugins > Add custom MCP server, then configure authentication and accept the risk warning

Windsurf setup

Add the endpoint above in Windsurf:

  • ~/.config/devin/mcp_config.json (%APPDATA%\devin\mcp_config.json on Windows), serverUrl or url
  • Cascade panel > ... > MCPs > Open MCP config file

Gemini CLI setup

Add the endpoint above in Gemini CLI:

  • gemini mcp add --transport http <name> <url>
  • ~/.gemini/settings.json (user) or .gemini/settings.json (project), mcpServers

MCP SDK setup

Add the endpoint above in MCP SDK:

  • Programmatic: new Client(...).connect(new StreamableHTTPClientTransport(url))

Notes for every client

  • Optional api key alternative: Store MAILTESTER_API_KEY in your operating system keychain, secret manager, or protected environment; never commit the value. The Authorization header syntax is Bearer <MAILTESTER_API_KEY>.
  • Provider guidance: Keyless verification has a small shared trial allowance. Register through the publisher for a private API key and account quota.

Client compatibility

ClientStatusWhy
Claude CodeSupportedClaude Code supports Streamable HTTP servers and servers without authentication or API key headers.
CodexSupportedCodex supports Streamable HTTP servers and servers without authentication or API key headers.
CursorSupportedCursor supports Streamable HTTP servers and servers without authentication or API key headers.
VS CodeSupportedVS Code supports Streamable HTTP servers and servers without authentication or API key headers.
ClaudeSupportedClaude supports Streamable HTTP servers and servers without authentication or API key headers.
Claude DesktopSupportedClaude Desktop supports Streamable HTTP servers and servers without authentication or API key headers.
ChatGPTPartialStateful routing needs operational care: ChatGPT can preserve MCP sessions, but the deployment must route a session consistently and retain its state.
WindsurfSupportedWindsurf supports Streamable HTTP servers and servers without authentication or API key headers.
Gemini CLISupportedGemini CLI supports Streamable HTTP servers and servers without authentication or API key headers.
MCP SDKSupportedMCP SDK supports Streamable HTTP servers and servers without authentication or API key headers.

Computed from this server's validated transport, protocol and authentication against documented client support. Checks the catalog has not observed are not counted.

Similar servers

  • Slack — Remote MCP server for Slack messages, channels, users, canvases, and collaboration context. OAuth 2.1
  • Intercom — Intercom's hosted MCP server provides customer-support context through conversations, contacts, search, and retrieval tools. OAuth 2.1
  • Resend — Sends and schedules email and manages Resend domains, audiences, contacts, broadcasts, and API keys. Requires Resend sign-in through OAuth. OAuth 2.1
  • Vapi — Lists, creates, and updates Vapi voice assistants, phone numbers, and tools and places outbound calls. Requires a Vapi API key as a bearer token. Bearer token
  • Courier — Sends notifications and manages Courier users, lists, templates, journeys, preferences, tenants, and brands through the Courier API. Requires a Courier API key in the api_key header. API key
  • AgentMail — Creates and manages AgentMail inboxes, threads, messages, drafts, and attachments for AI agents. Requires AgentMail sign-in through OAuth; an x-api-key header is also documented. OAuth 2.1

Guides for this server

Watch this server for breaking changes

Share and embed

Maintain MailTester? Embed this badge in your README. It follows the latest catalog validation result and links to this server profile.

mcptest.io: ready

Latest validation evidence

Validation status
Online when last tested
Validation checked at
Oct 26, 2026 at 11:07 AM
Validation detail
Negotiated stateful MCP 2024-11-05 at https://app.mailtester.com/mcp; detected transport streamable-http; authentication none

Tool inventory

What the catalog validator observed on at https://app.mailtester.com/mcp without credentials. The live server may have changed since; connect in the Playground for the current list.

Tools provided by MailTester 9

Some details were sanitized for public display.

  • estimate_costNo outputSchema

    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 emails?: integer, list_id?: integer, operation?: string
    • emails?: integeroptional

      Number of emails to verify (1 credit each).

    • list_id?: integeroptional

      Estimate re-verifying an existing list by its id.

    • operation?: stringoptional

      Operation type: bulk/single (1 credit) or finder (3 credits).

  • explain_resultNo outputSchema

    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 term: string
    • term: stringrequired

      The status/reason to explain, e.g. 'catch-all', 'GREYLISTED', 'unknown', 'role'. Case-insensitive.

  • get_api_keyNo outputSchema

    Get your own free API key for this server (no account needed; 25 email verifications per day). Optional: the verification tools already work without a key on a shared trial. Returns the key once — reconnect with 'Authorization=[REDACTED] <api_key>' for your own quota and the list tools.

    Input contact?: string, name?: string, purpose?: string
    • contact?: stringoptional

      Optional operator email or URL.

    • name?: stringoptional

      Your agent's name.

    • purpose?: stringoptional

      What you verify emails for.

  • get_batch_statusNo outputSchema

    Get the progress and status of a bulk verification list/job by id.

    Input list_id: integer
    • list_id: integerrequired
  • get_credit_balanceNo outputSchema

    Get the current credit balance and a short usage summary for the account.

    Input No parameters

  • get_listNo outputSchema

    Get the details of a single bulk verification list by its id.

    Input list_id: integer
    • list_id: integerrequired

      The id of the bulk verification list.

  • list_listsNo outputSchema

    List the user's bulk verification lists/jobs, most recent first.

    Input limit?: integer
    • limit?: integeroptional

      Maximum number of lists to return.

  • verify_batchNo outputSchema

    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 emails: array, name?: string
    • emails: arrayrequired

      Email addresses to verify.

    • name?: stringoptional

      Optional label for the saved list.

  • verify_emailNo outputSchema

    Verify the deliverability of a single email address. Returns a verdict (valid, invalid, risky, unknown). Costs 1 credit.

    Input email: string
    • email: stringrequired

      The email address to verify.