Skip to main content
Glama
mxprobe

mxprobe

MX Probe

Email verification for AI agents. One call returns send, hold or kill for an address, with the reason. Signup and credits happen by API too, so an outreach agent can provision itself. No form, no CAPTCHA, no dashboard.

npx mxprobe check hello@example.com          # free DNS tier, local, no key
npx mxprobe check --hosted hello@example.com # survivors go to the hosted SMTP probe
claude mcp add mxprobe -- npx -y mxprobe mcp # the MCP server

One click: Cursor · VS Code · LM Studio. In Claude Code the same server also comes as a plugin: /plugin marketplace add andrewchmr/mxprobe, then /plugin install mxprobe@mxprobe.

{
  "email": "hello@example.com",
  "action": "send",
  "verdict": "OK",
  "reason": "mailbox accepted by aspmx.l.google.com",
  "checks": { "syntax": true, "mx": "aspmx.l.google.com", "provider": "google_workspace", "smtp": "accepted", "catch_all": false }
}

action is send, hold or kill; verdict is OK, WEAK or DEAD. A hold never becomes a kill on a refusal, a greylist or a catch-all. Only a 5xx that names the mailbox kills.

Layout

Path

What

packages/core

The engine: DNS tier, SMTP probe, the verdict contract and the API's wire types. Zero dependencies.

packages/cli

`npx mxprobe check

server

The hosted API: node:http + node:sqlite, Stripe Checkout, Resend, Telegram.

site

The landing page, static.

deploy

Caddyfile, systemd units, the install script and the runbook.

Related MCP server: Email Verifier MCP Server

Develop

Everything is TypeScript (strict, ESM). Each package compiles its src/ to dist/ with tsc -b; the published packages ship dist/ only. mxprobe and the server import mxprobe-core through the workspace link to its dist/, so pnpm build at the root (which runs the packages in dependency order) must come before a single package's test or typecheck. Tests are .ts files that Node runs directly with its built-in type stripping.

pnpm install
pnpm build                      # tsc -b in each package, core first
pnpm test                       # builds, then: fake resolver, fake SMTP server, in-memory SQLite. No network.
pnpm typecheck                  # the sources and the tests, without emitting
pnpm test:live                  # the DNS tier against the real network
pnpm check a@b.com              # the CLI from this checkout
cp server/.env.example server/.env && pnpm dev:server

Node 22.18 or newer (24 recommended) to develop and to run the tests; the compiled engine and CLI run on Node 20, the server on 22.13 or newer (node:sqlite).

Pricing

100 checks free at signup, then 9 USD per 10,000, one payment, credits never expire. Addresses are logged for 24 hours for debugging and then deleted.

MIT.

Available Tools

5 tools
balanceCredits leftA
Read-onlyIdempotent

How many hosted checks are left on the configured API key.

Inputs: no named parameters.

buy_creditsBuy creditsA

Get a Stripe Checkout link for more hosted checks: 9 USD per 10,000, one payment, credits never expire. Open the link to pay; credits land on the key when Stripe confirms.

Inputs: packs.

signupCreate an MX Probe API keyA

Sign up with an email address. Returns an API key and saves it locally for the other tools. The key is also mailed to the address. One key per address; the 100 free checks come once per IP address and company domain, and a repeat key starts at 0 with a checkout_url for your operator.

Inputs: email (required).

verify_batchVerify a list of email addressesA
Read-onlyIdempotent

Check up to 500 addresses in one call. Each result is { email, action, verdict, reason, checks }. action is send | hold | kill: send means go ahead, hold means send only with a fallback in hand (catch-all, forwarder, greylisted or refused probe), kill means never send (no mail server, or the mailbox does not exist). checks.smtp is skipped on the free DNS tier; the hosted tier probes the mailbox. DNS kills cost nothing; with a key the survivors go to the hosted probe at 1 credit each. If the key runs out of credits, every result still comes back: out_of_credits says how many were not probed and carries checkout_url, a payment link for your operator.

Inputs: emails (required), hosted.

verify_emailVerify one email addressA
Read-onlyIdempotent

Check whether an email address can receive mail before sending to it. Each result is { email, action, verdict, reason, checks }. action is send | hold | kill: send means go ahead, hold means send only with a fallback in hand (catch-all, forwarder, greylisted or refused probe), kill means never send (no mail server, or the mailbox does not exist). checks.smtp is skipped on the free DNS tier; the hosted tier probes the mailbox. Uses the hosted SMTP probe (1 credit) when an API key is configured and hosted is not false; otherwise the free local DNS tier.

Inputs: email (required), hosted.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.1/5.0

    Scored across 5 tools

    Disambiguation4/5

    The account tools (signup, balance, buy_credits) are clearly separable from the verification tools, and verify_batch is distinguished by its 500-address scope. The only soft overlap is verify_email versus a single-address verify_batch call, since both return identical schemas and differ mainly in the hosted-vs-free tier and batching.

    Naming Consistency3/5

    Two tools follow a clean verb_noun form (verify_email, verify_batch) and buy_credits fits, but signup is a bare verb and balance is a bare noun, so the pattern breaks in two of five cases. Mixed conventions, though each name remains readable in context.

    Tool Count5/5

    Five tools cleanly cover the two halves of the service: verification (single and batch) and account/credit lifecycle (signup, balance, buy_credits). Nothing feels padded or missing at the count level; each tool maps to a distinct user intent.

    Completeness4/5

    The core loop — get a key, check credits, buy more, verify addresses — is fully covered, including an out_of_credits path with checkout_url. Minor gaps: no way to inspect or rotate an existing key, no credit/usage history, and no status retrieval for long batch work beyond the synchronous response.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents to verify email addresses through a multi-signal probabilistic pipeline, returning confidence scores and honest statuses (safe/risky/invalid/unknown) with evidence.
      Apache 2.0
    • F
      license
      Not graded
      quality
      B
      maintenance
      Enables AI agents to verify email addresses in real-time, checking syntax, DNS, MX records, and SMTP handshake, returning verdicts and deliverability scores without sending actual emails.
      -