Email Authentication MCP Server

scan.mx speaks the Model Context Protocol over the Streamable HTTP transport, so an AI agent can check email deliverability as a native tool. No key, no signup.

Endpoint https://api.scan.mx/mcp

European by default. Scanning server in the Netherlands, reports stored in an EU database. How the data is handled.

Tools

ToolChecksInput
check_domain Full graded report (all sections) domain, include_smtp?
check_mx MX records and provider domain
check_spf SPF record domain
check_dmarc DMARC policy domain
check_dkim DKIM keys (probe or exact selector) domain, selector?
check_blacklist Spamhaus, SpamCop, GBUdb, PSBL listings domain

How it works

Connect your client

Claude Code
claude mcp add --transport http scanmx https://api.scan.mx/mcp
Cursor, Windsurf, Claude Desktop (MCP config)
{
  "mcpServers": {
    "scanmx": {
      "url": "https://api.scan.mx/mcp"
    }
  }
}
VS Code (GitHub Copilot)
code --add-mcp '{"name":"scanmx","type":"http","url":"https://api.scan.mx/mcp"}'
Gemini CLI (~/.gemini/settings.json)
{
  "mcpServers": {
    "scanmx": {
      "httpUrl": "https://api.scan.mx/mcp"
    }
  }
}
Codex (~/.codex/config.toml)
[mcp_servers.scanmx]
url = "https://api.scan.mx/mcp"

Raw protocol

Stateless JSON-RPC 2.0 over a single POST. List the tools:

curl -s https://api.scan.mx/mcp \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json, text/event-stream' \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

Spec and registry

The transport is Streamable HTTP, stateless (no Mcp-Session-Id). Registry listing: mx.scan/diagnostics. Manifest: server.json.

HTTP API

Prefer plain HTTP?

The same checks return a graded JSON report over a key-less REST endpoint, with a live SMTP probe over Server-Sent Events.

Read the API docs