MCP server

Email, phone and IP validation for AI assistants — built around the one thing an agent needs and a person does not: being told, unmistakably, when the answer is not known.

Install

{
  "mcpServers": {
    "proofwire": {
      "command": "npx",
      "args": ["-y", "@proofwire/mcp"]
    }
  }
}

Works in Claude Desktop, Claude Code, Cursor, and anything else that speaks MCP. That configuration needs no account: 40 checks that read public records are free and unauthenticated.

Why an agent needs this more than you do

An autonomous agent is the worst possible consumer of a binary validator. A person told an address is valid still hesitates before sending. An agent does not — that is what it is for. So the standard failure of every validator that answers valid-or-invalid stops being a bad row in a spreadsheet and becomes mail actually sent.

The specific failure is catch-all domains. A large minority of business mail servers accept every address you ask about, existing or not. Most validators turn that into "valid" and invoice you. Your agent then writes to a mailbox nobody established exists, and you find out when it bounces.

What comes back instead

UNKNOWN - j.smith@thecompany.com
INCONCLUSIVE - do not treat this as valid, and do not treat it as
invalid either. The evidence does not settle whether this email
address works. Acting as though it does is the mistake this verdict
exists to prevent.

Confidence: 52%   Risk: 10/100
Charged: 0 credits - inconclusive verdicts are not billed

Evidence, and how much each signal moved the verdict:
  [syntax] Address is syntactically well formed. (+0.80)
  [mx]     1 MX record published. (+1.90)
  [smtp]   Control probe: the server also accepted an address that
           cannot exist, so its acceptance carries no information. (-1.40)

The verdict arrives as an instruction rather than a state, because a model handed a state invents a policy for it — and the policy it invents is usually "close enough to valid". The control probe is the line worth reading: before trusting an acceptance, the server is asked about an address that cannot exist. If that is accepted too, accepting the real one meant nothing, and the verdict says so.

Tools

ToolNeeds a keyWhat it does
proofwire_verify_emailyesSyntax, domain records, and a live probe of the mail server
proofwire_verify_phoneyesNumbering plan, line type, and a live carrier query
proofwire_verify_ipyesOperator, datacentre, Tor exit — from ranges the operators publish
proofwire_free_checknoAny of the public-record checks: MX, SPF, DMARC, DKIM, and the rest
proofwire_list_free_checksnoThe catalogue, with an example input for each
proofwire_accountnoBalance, plan, and what is currently configured

Adding a key

{
  "mcpServers": {
    "proofwire": {
      "command": "npx",
      "args": ["-y", "@proofwire/mcp"],
      "env": { "PROOFWIRE_API_KEY": "pk_live_..." }
    }
  }
}

Create one — 100 credits, no card, no expiry. A pk_test_ key answers from fixed sandbox fixtures and is never billed, which is what makes it usable in a test suite.

What it costs

Credits, and only for answers. Inconclusive verdicts are free. Repeats inside the cache window are free. A landline is never charged for a mobile-network query it could not have been in. Every response says what it charged and why.

The full price list is public, and the accuracy benchmark comes with its dataset so you can rerun it rather than take our word for the number.

Source and issues: github.com/Perseo1988/proofwire-mcp. MIT licensed.