MCP server
scan.mx speaks the
Model
Context Protocol over Streamable HTTP, so an AI agent can check
email deliverability as a native tool. Endpoint:
https://api.scan.mx/mcp. No key, no signup.
Tools
| Tool | Checks | Input |
|---|---|---|
| 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 listings | domain |
How it works
- Read-only. Every tool is a diagnostic that only reads public DNS and (for check_domain with include_smtp) probes mail servers. Nothing is sent on your behalf.
- Cached. Results are keyed by domain and cached for one hour, so repeated calls are fast and cheap.
- Rate-limited. No key is needed; calls are rate-limited per client for abuse prevention.
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:
com.scan-mx/email-doctor. Manifest:
server.json. See also the
HTTP API docs.