{
  "markdown": "<p align=\"center\">\n  <img src=\"https://raw.githubusercontent.com/james-sib/verifly-mcp-server/master/logo.png\" width=\"120\" alt=\"Verifly logo\" />\n</p>\n\n## Free email tools & API\n\n- [Catch-all email verifier](https://verifly.email/tools/catch-all-checker) — check if a domain is accept-all\n- [Disposable email checker](https://verifly.email/tools/disposable-email-checker)\n- [Bulk email verification API](https://verifly.email/bulk-email-verification-api) — clean CSV lists\n- [Email verification API for developers](https://verifly.email/email-verification-api-for-developers) — pay-as-you-go, 100 free credits, no monthly fee\n\n# Verifly MCP Server\n\nAgent-native **email verification** over the\n[Model Context Protocol](https://modelcontextprotocol.io). This server gives any\nMCP client — Cline, Claude Desktop, Claude Code, Cursor, Windsurf — a clean set\nof tools to verify email addresses, clean lists, run async bulk jobs, and manage\na [Verifly](https://verifly.email) account, all without writing a single raw HTTP\ncall.\n\nIt is built for autonomous workflows: an agent can **self-register** for an API\nkey, verify a lead before sending, deduplicate and scrub an import list, kick off\na bulk job and poll it to completion, and check its own credits and usage — end\nto end.\n\n## Tools\n\n15 tools cover the full Verifly workflow:\n\n| Tool | What it does |\n|------|--------------|\n| `verify_email` | Verify a single address in real time (verdict, reason, flags, send/reject recommendation, credits) |\n| `verify_batch` | Verify a list synchronously (per-address verdicts; best for up to a few hundred) |\n| `clean_email_list` | Dedupe + drop invalid syntax, disposable, and role addresses from a list |\n| `extract_emails` | Pull every email address out of free-form text (notes, signatures, pasted docs) |\n| `check_domain_health` | MX / SPF / DMARC records + an overall health score for a domain |\n| `get_credits` | Remaining verification credits + recent usage (free, no credits) |\n| `submit_bulk` | Submit an async bulk verification job for large lists (returns a `job_id`; optional `webhook_url`) |\n| `get_job_status` | Status + progress of a bulk job |\n| `get_job_results` | Per-address results of a completed bulk job |\n| `list_jobs` | List the account's bulk jobs (filter by status, paginate) |\n| `get_usage` | Detailed usage statistics for a period (day / week / month) |\n| `get_account` | Account profile: email, company, credits, plan, key count (free) |\n| `get_packages` | List the credit packages available to purchase |\n| `buy_credits` | Start a credit-package purchase and return a checkout link |\n| `register_account` | Self-onboard a brand-new account; returns an `api_key` shown once |\n\n## Authentication\n\nGet an API key from <https://verifly.email> (or have an agent self-register with\n`register_account`). The server reads the key from the `VERIFLY_API_KEY`\nenvironment variable. Every Verifly request is authenticated with\n`Authorization: Bearer <key>`.\n\nThe hosted HTTP transport also accepts a per-request `Authorization: Bearer <key>`\nheader (which overrides the env var), so each caller can supply their own key.\n\n## Install (local, stdio) — recommended for Cline\n\n```bash\nnpx -y verifly-mcp-server\n```\n\nor install it globally:\n\n```bash\nnpm install -g verifly-mcp-server\nverifly-mcp-server\n```\n\n### Client config\n\nAdd this to your MCP client config (Cline: `cline_mcp_settings.json`; Claude\nDesktop: `claude_desktop_config.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"verifly\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"verifly-mcp-server\"],\n      \"env\": {\n        \"VERIFLY_API_KEY\": \"vf_your_api_key\"\n      }\n    }\n  }\n}\n```\n\nThat's the whole setup — no build step, no clone. See\n[`llms-install.md`](./llms-install.md) for an agent-followable install guide.\n\n## Hosted Streamable-HTTP transport\n\nIf you'd rather not run anything locally, Verifly hosts the same server as a\nremote **Streamable-HTTP** endpoint:\n\n```\nhttps://verifly.email/mcp\n```\n\nPoint any Streamable-HTTP-capable MCP client at that URL and pass your key as an\n`Authorization: Bearer <key>` header. Example raw call:\n\n```bash\ncurl -s -X POST https://verifly.email/mcp \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json, text/event-stream\" \\\n  -H \"Authorization: Bearer vf_your_api_key\" \\\n  -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"tools/call\",\n       \"params\":{\"name\":\"verify_email\",\"arguments\":{\"email\":\"lead@example.com\"}}}'\n```\n\n### Self-hosting the HTTP transport\n\n```bash\nPORT=8787 VERIFLY_API_KEY=vf_your_api_key node src/http.js\n# or: PORT=8787 VERIFLY_API_KEY=vf_... npm run start:http\n```\n\n| Var | Default | Purpose |\n|-----|---------|---------|\n| `PORT` | `8787` | Listen port |\n| `HOST` | `0.0.0.0` | Bind address |\n| `MCP_PATH` | `/mcp` | Path the MCP endpoint is served on |\n| `VERIFLY_API_KEY` | — | Fallback key when a request sends no `Authorization` header |\n| `VERIFLY_BASE_URL` | `https://verifly.email` | API base override |\n\n- MCP endpoint: `POST {MCP_PATH}` (stateless Streamable HTTP).\n- Health check: `GET /healthz` → `{\"ok\":true}`.\n\n## Test\n\n```bash\nVERIFLY_API_KEY=vf_your_api_key npm run test:e2e\n```\n\nDrives the stdio server through the MCP protocol and performs a real\n`verify_email` + `get_credits` call against the live API.\n\n## License\n\nMIT\n",
  "bytes": 5278,
  "sha": "715830fa0a981316c95a98717243697c8898e0aa5b477ae3d26d6c7fbeacd10f",
  "repo_slug": "james-sib/verifly-mcp-server",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_email_verifly_verifly_4f1aac04/readme"
}