MCP Server

Verifly

email.verifly/verifly
Developer Tools Marketing & Advertising Public & reachable MCP 2025-11-25

What this MCP does

Verifies individual and bulk email deliverability, cleans address lists, checks domain DNS health, and exposes account and job management APIs.

buy_credits
Buy credits (returns a payment link or crypto invoice)
Start a purchase of a credit package and return a way to pay. This does NOT complete a payment by itself — it returns a payment link / address: • method 'stripe' → returns a checkout_url. Paying by card requires a HUMAN to open that link and enter card details; an agent cannot finish a card payment on its own. • method 'crypto' → returns a Plisio invoice with a checkout_url AND, when you pass a `currency` (BTC, ETH, LTC, USDT, USDC), a RAW wallet `address` + `amount`. An autonomous agent CAN pay this from a crypto wallet with no browser/human, then credits are added automatically once the payment confirms. Prefer crypto for fully autonomous top-ups. Get a package id from get_packages first.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['package_id'], 'properties': {'method': {'enum': ['stripe', 'crypto'], 'type': 'string', 'description': "Payment method. 'stripe' = card link (needs a human), 'crypto' = wallet-payable invoice. Default 'stripe'."}, 'currency': {'enum': ['BTC', 'ETH', 'LTC', 'USDT', 'USDC'], 'type': 'string', 'description': "For method 'crypto': the coin to pay in; returns a raw wallet address an agent can pay autonomously."}, 'package_id': {'type': 'string', 'description': 'The package id to buy (from get_packages).'}}, 'additionalProperties': False}
check_domain_health
Check email-domain health (MX / SPF / DMARC)
Check the DNS and deliverability health of an email domain: MX records, SPF, DMARC, and an overall health score. Useful for diagnosing why a domain bounces or for validating a sending domain.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['domain'], 'properties': {'domain': {'type': 'string', 'description': 'Domain to check, e.g. example.com'}}, 'additionalProperties': False}
clean_email_list
Clean an email list
Clean a list of email addresses before an import or campaign: dedupes, removes invalid syntax, and (optionally) strips disposable and role accounts. Returns the cleaned list plus a summary of what was removed.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['emails'], 'properties': {'emails': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1, 'description': 'Email addresses to clean.'}, 'remove_disposable': {'type': 'boolean', 'description': 'Remove disposable/throwaway addresses. Default true.'}, 'exclude_role_accounts': {'type': 'boolean', 'description': 'Remove role accounts (info@, support@, ...). Default false.'}}, 'additionalProperties': False}
extract_emails
Extract email addresses from text
Extract all email addresses found in a block of free-form text (notes, pasted documents, signatures). Optionally deduplicates and lowercases the results.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['text'], 'properties': {'text': {'type': 'string', 'description': 'Free-form text to scan for email addresses.'}, 'lowercase': {'type': 'boolean', 'description': 'Lowercase all extracted addresses. Default true.'}, 'deduplicate': {'type': 'boolean', 'description': 'Remove duplicate addresses. Default true.'}}, 'additionalProperties': False}
get_account
Get account information
Return the account profile for the current API key: email, name, company, timezone, remaining credits, total credits used, number of API keys, and plan. Costs no credits.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
get_credits
Get remaining Verifly credits
Return the API key's remaining verification credits and recent usage (today / this month) and plan. Costs no credits.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
get_job_results
Get the results of a completed bulk job
Fetch the full per-address results of a completed bulk verification job by job_id (each email's verdict, recommendation, and reason) plus the valid/invalid/risky summary and credits used. The job must be 'completed' — check get_job_status first.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['job_id'], 'properties': {'job_id': {'type': 'string', 'description': 'The job_id returned by submit_bulk.'}}, 'additionalProperties': False}
get_job_status
Get the status of a bulk verification job
Fetch the current status and progress of a bulk verification job by its job_id (status, percent progress, processed count, and a valid/invalid/risky summary). Poll this after submit_bulk until status is 'completed', then call get_job_results.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['job_id'], 'properties': {'job_id': {'type': 'string', 'description': 'The job_id returned by submit_bulk.'}}, 'additionalProperties': False}
get_packages
List buyable credit packages
List the credit packages available for purchase (id, name, credit amount, price in USD, and price per 1k credits). Use the returned package id with buy_credits.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
get_started
How to start using Verifly (no key needed)
Call this FIRST if you have no Verifly API key. Returns how Verifly works and how to get access with no human: pay-as-you-go email verification API, 100 free credits on self-registration, no monthly fee. No API key required to call this tool.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {}}
get_usage
Get detailed usage statistics
Return detailed usage statistics for the account over a period (day, week, or month): total credits used, emails processed, request counts broken down by endpoint and source, a daily breakdown, and recent activity.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'description': 'Max recent log entries to include (default 100, max 1000).'}, 'period': {'enum': ['day', 'week', 'month'], 'type': 'string', 'description': "Reporting period. Default 'month'."}}, 'additionalProperties': False}
list_jobs
List bulk verification jobs
List the account's bulk verification jobs, most recent first, with their status, progress, and summary. Optionally filter by status and paginate. Use this to find past jobs and their job_ids.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'properties': {'limit': {'type': 'integer', 'description': 'Max jobs to return (1-100, default 50).'}, 'offset': {'type': 'integer', 'description': 'Pagination offset (default 0).'}, 'status': {'enum': ['pending', 'processing', 'completed', 'failed'], 'type': 'string', 'description': 'Only return jobs in this status.'}}, 'additionalProperties': False}
register_account
Self-register a new Verifly account + API key
Programmatically create a brand-new Verifly account — this is how an agent self-onboards with no human in the loop. Requires only an email and a password (min 8 chars; disposable email domains are rejected). The new account starts with free credits. The response includes the new account id/email and a freshly generated `api_key.key` that is shown ONCE — capture and store it immediately, it cannot be retrieved again. Subsequent tool calls can then use that key as the bearer token.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['email', 'password'], 'properties': {'email': {'type': 'string', 'description': 'Email for the new account (not a disposable domain).'}, 'password': {'type': 'string', 'minLength': 8, 'description': 'Password for the new account (minimum 8 characters).'}}, 'additionalProperties': False}
submit_bulk
Submit an async bulk verification job
Submit a list of email addresses as an asynchronous bulk verification job — the right tool for large lists. Returns immediately with a job_id, status, and the check_status_url / results_url to poll. Small lists may complete inline (status 'completed'); larger ones return status 'pending' — poll get_job_status until it is 'completed', then call get_job_results. Optionally register a webhook_url (public HTTPS) to be notified when the job finishes.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['emails'], 'properties': {'emails': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1, 'description': 'Email addresses to verify in this job (deduped server-side).'}, 'webhook_url': {'type': 'string', 'description': 'Optional public HTTPS URL to POST a job.completed notification to.'}}, 'additionalProperties': False}
verify_batch
Verify a batch of email addresses
Synchronously verify a list of email addresses (best for up to a few hundred). Returns a per-address verdict for each email. For very large lists use the bulk async endpoint instead.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['emails'], 'properties': {'emails': {'type': 'array', 'items': {'type': 'string'}, 'minItems': 1, 'description': 'Array of email addresses to verify.'}, 'exclude_role_accounts': {'type': 'boolean', 'description': 'Flag/exclude role accounts (info@, sales@, ...). Default false.'}, 'exclude_public_domains': {'type': 'boolean', 'description': 'Flag/exclude public domains (gmail.com, ...). Default false.'}}, 'additionalProperties': False}
verify_email
Verify a single email address
Verify one email address in real time. Returns a deliverability verdict (valid / invalid / risky / unknown), the reason, detailed flags (disposable, role account, catch-all, MX, SMTP), a send/reject recommendation, and credit usage.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['email'], 'properties': {'email': {'type': 'string', 'description': 'The email address to verify, e.g. lead@example.com'}}, 'additionalProperties': False}
verify_email_demo
Verify an email — free demo (no key required)
Verify one email address with NO account or API key, so you can evaluate Verifly before registering. Rate-limited per IP (a few checks). Returns the same deliverability verdict and flags as the full API. For real volume, call register_account for a key + 100 free credits, then use verify_email.
Input schema
{'type': 'object', '$schema': 'http://json-schema.org/draft-07/schema#', 'required': ['email'], 'properties': {'email': {'type': 'string', 'description': 'The email address to verify, e.g. lead@example.com'}}, 'additionalProperties': False}
Added
register_account
Sept. 17, 2026, 12:39 p.m.
Added
buy_credits
Sept. 17, 2026, 12:39 p.m.
Added
get_packages
Sept. 17, 2026, 12:39 p.m.
Added
get_account
Sept. 17, 2026, 12:39 p.m.
Added
get_usage
Sept. 17, 2026, 12:39 p.m.
Added
list_jobs
Sept. 17, 2026, 12:39 p.m.
Added
get_job_results
Sept. 17, 2026, 12:39 p.m.
Added
get_job_status
Sept. 17, 2026, 12:39 p.m.
Added
submit_bulk
Sept. 17, 2026, 12:39 p.m.
Added
get_credits
Sept. 17, 2026, 12:39 p.m.
Added
check_domain_health
Sept. 17, 2026, 12:39 p.m.
Added
extract_emails
Sept. 17, 2026, 12:39 p.m.
Added
clean_email_list
Sept. 17, 2026, 12:39 p.m.
Added
verify_batch
Sept. 17, 2026, 12:39 p.m.
Added
verify_email
Sept. 17, 2026, 12:39 p.m.
Added
verify_email_demo
Sept. 17, 2026, 12:39 p.m.
Added
get_started
Sept. 17, 2026, 12:39 p.m.