Email Spam Tester

MCP server

An email spam test any agent can call

A hosted MCP server at one address. No install, no key. Your client connects, and the agent gets a real mail server to test against.

42 checks · No key · No account

Four tools arrive with the connection

An agent that writes email has no feedback from the people who decide whether it arrives. These tools give it that feedback from a real SMTP delivery, in a shape it can act on.

MCP server
/mcp
  • get_test_address

    Reserves a one-hour address. With placement switched on, you also get a list of mailboxes at different providers.

  • wait_for_report

    Holds until the checks finish, then returns the scores, the failed and warned checks with their evidence, and the fix plan.

  • get_report

    Reads an existing report by its slug, including how far the folder check has got.

  • get_message_source

    Returns the email as it arrived, headers in wire order, for an hour after delivery.

Connect your client

The server speaks streamable HTTP and asks for no authentication. Most clients need only the address.

https://email-spam-tester.com/mcp
{  "mcpServers": {    "email-spam-tester": {      "url": "https://email-spam-tester.com/mcp"    }  }}

Client with no HTTP support?

Bridge it with mcp-remote.

{
  "mcpServers": {
    "email-spam-tester": {
      "command": "npx",
      "args": [
        "-y",
        "mcp-remote",
        "https://email-spam-tester.com/mcp"
      ]
    }
  }
}

From prompt to report

This is the order things happen in, whichever client you use.

You

Check my newsletter before I send it.

Claude4 tools connected

  1. Reserve an address

    get_test_address
  2. Wait for your email to arrive

    wait_for_report
  3. Read the message as delivered

    get_message_source

Inbox score

0/100

  • SPFpass
  • DKIMpass
  • DMARCpass
  • Blocklistspass
  • List-Unsubscribewarning

Fix plan

Add a one click List-Unsubscribe header in your sending platform, then test again.

Scripted example.

One address.
Every agent you use.

What to ask

Start a test

Get a test address and tell me how to send my draft to it.

Send your real draft to this address from your usual platform.

Read a report

Read this report and list the failed checks by what they cost: [slug]

Three failed checks, the costliest one first.

See the folder

Reserve an address with placement on and show me where the email landed.

Send to this list. The table fills in about half an hour.

Questions

Why does it want a real email instead of pasted text?

About half of the checks read what the sending platform adds: the DKIM signature, the path through its servers, the unsubscribe headers. Pasted text has none of those, so the model would be guessing.

What can the server see?

What you send to the test address. The raw message stays for an hour after it arrives and then only the report remains, at a link anyone with the slug can open. Test mail you would be fine showing a colleague, and read the privacy policy for the rest.

Is the score the same as on the website?

Yes. It is the same analysis and the same report page, so a run from a chat can be compared with one from the home page.

Which clients does it work with?

Anything that speaks MCP over streamable HTTP, and anything else through mcp-remote. There are setup pages for Claude, Claude Code, ChatGPT, Cursor, Gemini CLI, GitHub Copilot, Zed, Warp and OpenCode.

Is there a REST API too?

Yes. The API documentation covers the same test without MCP.

What does a skip status mean?

The check did not apply to this email. It is not a pass, and an error status means the check could not run and was left out of the score.

Send one real email and read what came back

Copy server URL