DEVELOPER DOCUMENTATION

Check a list with the email verification MCP server

The MailCheckup email verification MCP server checks a list you already have from Cursor, Claude, or ChatGPT. Free is 100 credits, enough to see one list. The usual first purchase is 5,000 credits for $15. Unknown is free. The portal, an API key, and an agent share one credit balance.

MAILCHECKUP MCP SERVER
server    mailcheckup
endpoint  https://cp.mailcheckup.net/mcp
protocol  streamable HTTP · JSON-RPC 2.0

Workspace key only · configs use a placeholder
MAILCHECKUP / MCP↘

What is the email verification MCP server?

The MailCheckup email verification MCP server is a way to check addresses you already have, from the agent you already use. The server name is mailcheckup. The endpoint is https://cp.mailcheckup.net/mcp. Clients speak JSON-RPC 2.0 over streamable HTTP. Supported protocol versions are 2025-06-18, 2025-03-26, and 2024-11-05.

You bring the file. The agent does not search for an address, and it does not write the campaign. A finished check tells you what the mailbox server said during the check. It does not tell you the message will reach the inbox, and it does not record consent. See how a check works. Read what each result means.

How do you connect MailCheckup MCP?

Create the key in portal Settings. The portal shows it once. It starts with mck_ and sees only that workspace. Put it in the client configuration on your machine, as a bearer token: Authorization: Bearer mck_.... Do not paste the key into a chat prompt. This page does not ask for the key, and it does not store one.

FactDetail
Server namemailcheckup
Endpointhttps://cp.mailcheckup.net/mcp
ProtocolMCP over streamable HTTP, JSON-RPC 2.0
Protocol versions2025-06-18, 2025-03-26, and 2024-11-05
AuthWorkspace API key. Authorization: Bearer mck_... or x-api-key: mck_...
ScopeThe key’s workspace only. The agent cannot see another customer’s lists.
RequestsClients POST JSON-RPC. GET /mcp and DELETE /mcp return 405.
Auth failuresA missing or revoked key returns 401. A disallowed browser Origin returns 403.
Notificationsnotifications/initialized returns HTTP 202 and no body. The server is stateless.

Cursor, Claude, and other remote MCP clients use the first config. OpenClaw uses the second. ChatGPT custom connectors and Hermes use the same URL and the same bearer key. The samples use a placeholder, not a live key.

Cursor, Claude, and other remote MCP clients
{
  "mcpServers": {
    "mailcheckup": {
      "url": "https://cp.mailcheckup.net/mcp",
      "headers": {
        "Authorization": "Bearer mck_your_key"
      }
    }
  }
}
OpenClaw
{
  "mcp": {
    "servers": {
      "mailcheckup": {
        "url": "https://cp.mailcheckup.net/mcp",
        "transport": "streamable-http",
        "headers": {
          "Authorization": "Bearer ${MAILCHECKUP_API_KEY}"
        }
      }
    }
  }
}

How do you verify an email list from Cursor, Claude, or ChatGPT?

You verify an email list from Cursor, Claude, or ChatGPT by staying in that chat and running the list tools in order. MailCheckup MCP checks the CSV you were about to send. It does not look up a missing address, and creating the list does not start the check.

  1. You already have the CSV you were about to send. Keep that file. Do not ask the agent to invent rows that are not in it.
  2. Connect the MCP server mailcheckup at https://cp.mailcheckup.net/mcp with a workspace key that starts with mck_. Put the key in the client config, not in the chat.
  3. Read account_status before a large run. If available credits are 0, stop. start_verification will not start the list.
  4. create_list with a name. That call creates the list. It does not start verification.
  5. add_emails, 500 addresses at a time, from the file, until the file is in. Duplicates in one file are stored once. Call add_emails again for the next chunk.
  6. start_verification on that list_id.
  7. Poll get_list outside the tool until the list finishes. Do not wait inside a tool call. Do not invent rows that are not back yet.
  8. Read list_results. The default segment is all. Leave unknown in place. Do not treat catch-all as deliverable. Do not treat deliverable as inbox placement. Deliverable means the mailbox server accepted the recipient during the check.
  9. Optional: export_list, then poll export_status. The download link is emailed. It is not returned in the tool result.

This walkthrough will not find an address. It will not send the campaign. verify_email on this host is not the path. verify_email and verify_emails are refused on this production host when live stations are required. The verify_emails cap is 25. Use a list.

What will the email verification MCP server not do?

The email verification MCP server will not find or guess an email address. There is no find_email tool. It will not send the campaign. It will not treat a check as consent to mail someone. It will not treat deliverable as inbox placement, and it will not treat unknown as invalid.

SMTP acceptance means the mailbox server accepted the recipient during the check. It does not mean the message will reach the inbox. The server does not score leads with a model. If you are calling HTTP yourself, read the email verification API. That page is a different path from this server.

What does unknown mean?

Unknown means the check was inconclusive. Unknown is free, and unknown is not invalid. Leave it in the file. Do not fold it into a remove-the-bad-addresses step unless a person decides that on purpose.

These results are also free: retry_later, greylisted, mx_unreachable, provider_blocked, and system_error. Catch-all is not in that free group, and catch-all is not deliverable. The same distinction is on what each result means.

What does a list cost?

Free is 100 credits, enough to see one list. The usual first purchase is 5,000 credits for $15. Unknown is free. The portal, an API key, and an agent share one credit balance.

One credit for each of these results: valid, deliverable, undeliverable, dead, invalid, disposable, catch_all, role_account, mailbox_full. Risky is a summary of disposable, catch-all, role account, and mailbox full. Risky is not a separate charge.

Call account_status before a large run. The server holds credits in chunks and stops queueing when the workspace cannot pay. A run does not start when available credits are 0. start_verification then returns insufficient_credits. Stopping a run releases unused holds. Credits already consumed stay consumed. Published prices are on pricing.

Can you change a list while it is running?

A running list can take more addresses. add_emails appends to the same run. Do not open a second list just because the first one is verifying.

remove_emails, clear_list_emails, and delete_list are refused while the list is importing or verifying. Stop first. stop_verification cancels jobs that have not finished and releases their unused holds. Consumed credits stay consumed.

Which errors can a tool return?

Tool errors come back as JSON text, {"error":"<code>"}. list_id and export_id are UUIDs. These codes are the ones this page names:

  • list_limit: create_list when the plan’s active-list cap is reached.
  • list_busy: printed for delete_list while the list is importing or verifying. remove_emails and clear_list_emails use the same busy window, but that string is not printed.
  • insufficient_credits: start_verification when available credits are 0.
  • list_already_started: start_verification when that list is already running.
  • list_importing: start_verification while an import is still in progress.

A missing or revoked key is HTTP 401, not one of those tool codes. An Origin that is not allowed is HTTP 403. GET and DELETE /mcp return 405.

Account tools

Each tool below is limited to the API key’s workspace.

ToolArgumentsWhat it does
account_statusnoneCredits available, reserved, and consumed. Plan code, max list rows, max active lists, and whether a run can start.
list_result_codesnoneChargeable codes, free codes, and the inbox-placement limit the service reports.

List tools

ToolArgumentsWhat it does
create_listname required; optional description; optional emails (max 500)Creates an empty list. Does not start verification. Fails with list_limit when the plan’s active-list cap is reached.
list_listsoptional limit 1–50, default 20Recent lists: id, name, status, row counts, credits used.
get_listlist_idOne list plus its verification report when checks exist. This is the poll.
rename_listlist_id; optional name (max 120 characters); optional description (max 500)Updates the name, the description, or both.
delete_listlist_idRefuses while importing or verifying and prints list_busy. Releases unfinished holds. Does not refund consumed credits.

Address tools

ToolArgumentsWhat it does
add_emailslist_id; emails (1–500)Appends, including to a list that is already verifying. Duplicates in one file are stored once. Duplicates already on the list are skipped. New rows are queued into the current run. Call again for the next chunk of 500.
remove_emailslist_id; emails (1–500)Refuses while importing or verifying. Same busy window as delete_list, but list_busy is not printed. Releases unfinished holds. Does not refund consumed credits.
clear_list_emailslist_idRemoves every address and keeps the list. Same busy window as delete_list, but list_busy is not printed. Does not refund consumed credits.
list_rowslist_id; optional page; optional qStored addresses, including ones not checked yet. q is an email prefix. Page size is 100.
list_resultslist_id; optional segment (default all); optional offset; optional limit (max 100)Pages results. Returns has_more.

Run tools

ToolArgumentsWhat it does
verify_emailemailOne instant check. Production tells the agent to use a list when stations are required.
verify_emailsemails (max 25)Same rule as verify_email. Stops the batch when a chargeable result cannot be paid.
start_verificationlist_idStarts the SMTP run. Holds credits in chunks. If credits are 0, the run does not start (insufficient_credits). A list that is already running returns list_already_started. An import still in progress returns list_importing.
stop_verificationlist_idCancels jobs that have not finished and releases their unused holds. Finished chargeable results stay billed.
export_listlist_id; segment; optional format (csv, txt, or xls)Queues a file. The link is emailed to the workspace. Poll export_status.
export_statusexport_idStatus only. No file and no download token.

Which segments can you page or export?

list_results and export_list accept all, deliverable, undeliverable, catch_all, disposable, role_account, mailbox_full, risky, unknown, and not_checked. Risky is a summary, not its own charge. Leave unknown in place when you read the file.

What can the client read besides tools?

mailcheckup://guide explains how to run a list, and what the server will not do. mailcheckup://result-codes lists chargeable codes, free codes, and segments. mailcheckup://account is the live credit balance for the key. mailcheckup://lists is the lists that key can see.

Three prompts ship with the server. verify-a-list takes name and emails. It creates the list, adds addresses in chunks of 500, starts the run, polls, then summarizes get_list. keep-valid-only takes list_id and runs only after the list has stopped. It removes undeliverable, disposable, role, mailbox-full, and catch-all. It leaves unknown and not_checked. pull-valid-results takes list_id and pages the deliverable segment until has_more is false. Deliverable in that prompt is still not inbox placement.

Who can register a webhook?

list_webhooks is read-only. It takes no arguments. It returns the URL, enabled flag, events, retry count, and gap. Secrets are not returned. An API key cannot create a webhook. An owner or admin registers an HTTPS URL at https://cp.mailcheckup.net/webhooks. Read how webhooks post each result. This page does not include a webhook secret or an editor.

Questions

What is the MailCheckup email verification MCP server?

The MailCheckup email verification MCP server checks a list of addresses you already have. The server name is mailcheckup. The endpoint is https://cp.mailcheckup.net/mcp. Transport is streamable HTTP, JSON-RPC 2.0. It does not find or guess an email address, and it does not send the campaign.

How do you connect MailCheckup MCP?

Connect the server mailcheckup at https://cp.mailcheckup.net/mcp with a workspace key that starts with mck_. Send the key as Authorization: Bearer or as x-api-key. A missing or revoked key returns 401. An Origin that is not allowed returns 403. GET and DELETE /mcp return 405. The server is stateless. notifications/initialized returns HTTP 202 with an empty body. Do not paste the key into the chat.

How do you verify an email list from Cursor, Claude, or ChatGPT?

Start from the CSV you were about to send. Read account_status before a large run. create_list does not start verification. add_emails takes 500 addresses at a time. Then start_verification. Poll get_list outside the tool until the list finishes. Read list_results. Leave unknown in place. Do not treat catch-all as deliverable, and do not treat deliverable as inbox placement. export_list is optional. The download link is emailed. Poll export_status for that link.

What does unknown mean?

Unknown means the check was inconclusive. Unknown is free, and unknown is not invalid. retry_later, greylisted, mx_unreachable, provider_blocked, and system_error are free as well. Leave unknown in the file unless a person decides otherwise.

What does the email verification MCP server cost?

Free is 100 credits, enough to see one list. The usual first purchase is 5,000 credits for $15. Unknown is free. One credit is charged for valid, deliverable, undeliverable, dead, invalid, disposable, catch_all, role_account, and mailbox_full. Risky is a summary, not a separate charge. The portal, an API key, and an agent share one credit balance. A run does not start when available credits are 0.

What will MailCheckup MCP not do?

It will not find or guess an email address. There is no find_email tool. It will not send the campaign. verify_email and verify_emails are refused on this production host when live stations are required. The verify_emails cap is 25. Use a list. Verification is not consent. Deliverable is not inbox placement. Unknown is not invalid.

Product questions: support@mailcheckup.net. Invoices: billing@mailcheckup.net. Invoices are from Secuno LLC.