{
  "markdown": "# Mail7 MCP server\n\nEmail validation for AI assistants. This is an [MCP](https://modelcontextprotocol.io)\nserver that gives Claude, Cursor, Windsurf, Cline and any other MCP client four tools:\nverify a single address, clean a list, check a domain's SPF record, and audit a\ndomain's whole mail configuration.\n\nHonest by design: Mail7 answers **Valid**, **Not Valid** or **Unknown**, and the tool\ndescriptions tell the model in plain words that Unknown means \"could not be verified\",\nnot \"bad\". An assistant using this server will not silently delete addresses it could\nnot check.\n\n## Install\n\nNode 18+ required. No install step - the server runs through `npx`.\n\n**Claude Code**\n\n```bash\nclaude mcp add mail7 --env MAIL7_API_KEY=your_key -- npx -y mail7-mcp\n```\n\n**Claude Desktop** (`claude_desktop_config.json`), **Cursor** (`~/.cursor/mcp.json`),\nand most other clients use the same shape:\n\n```json\n{\n  \"mcpServers\": {\n    \"mail7\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"mail7-mcp\"],\n      \"env\": { \"MAIL7_API_KEY\": \"your_key\" }\n    }\n  }\n}\n```\n\nGet an API key at [mail7.net/account](https://mail7.net/account/). The server also runs\nwithout one, but anonymous callers are limited to 5 checks per minute and a 25-address\nfree bulk sample - not enough for real work.\n\n| Variable | Default | Purpose |\n|---|---|---|\n| `MAIL7_API_KEY` | - | Raises rate limits, unlocks full bulk validation |\n| `MAIL7_BASE_URL` | `https://mail7.net/api` | Override the API endpoint |\n\n## Tools\n\n| Tool | What it does |\n|---|---|\n| `validate_email` | One address: syntax, MX, disposable-domain check, live SMTP mailbox probe |\n| `validate_emails` | Up to 50 addresses per call, with a Valid / Not Valid / Unknown summary |\n| `check_domain` | Full mail-config audit graded A-F: MX, SPF, DKIM, DMARC, MTA-STS, TLS-RPT, DNSSEC, BIMI |\n| `check_spf` | SPF record, mechanisms, lookup count and misconfigurations |\n\nAsk your assistant things like:\n\n- \"Is `sales@acme.com` a real mailbox?\"\n- \"Clean this list of signups and tell me which ones bounce.\"\n- \"Why do our emails to customers land in spam? Check `ourdomain.com`.\"\n\n## How results are shaped\n\n`validate_email` and `validate_emails` return structured content alongside the text, so\na client that supports structured tool output gets typed fields:\n\n```jsonc\n{\n  \"email\": \"user@example.com\",\n  \"status\": \"Unknown\",        // \"Valid\" | \"Not Valid\" | \"Unknown\"\n  \"valid\": null,              // true | false | null (null = Unknown)\n  \"formatValid\": true,\n  \"mxValid\": true,\n  \"smtpValid\": false,\n  \"is_disposable\": false,\n  \"details\": \"Server accepts all addresses (catch-all) - status unknown\"\n}\n```\n\n`check_domain` returns a compact graded summary with a fix for every problem. To see the\nraw records of one part, call it again with `section` set to `mx`, `spf`, `dkim`,\n`dmarc`, `mta_sts`, `tls_rpt`, `dnssec`, `bimi` or `domain`.\n\n## Notes for large lists\n\nEvery address is a live SMTP conversation, so a check takes seconds, not milliseconds.\n`validate_emails` caps at 50 addresses per call on purpose - call it repeatedly with the\nnext chunk rather than pushing a whole file through one call, and never run two calls in\nparallel (the API serialises one bulk job per client).\n\n## Development\n\n```bash\nnpm install\nnpm run build      # -> dist/\nnode dist/index.js # speaks MCP over stdio\n```\n\n## License\n\nMIT. Part of the [Mail7 integrations](https://github.com/dvlop/mail7-integrations).\n",
  "bytes": 3426,
  "sha": "05efa4567ba0d6374790d9e717994515620b4410548aaffa6d573d6047a97546",
  "repo_slug": "dvlop/mail7-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_net_mail7_email_validation_d1115985/readme"
}