A hosted validation suite that lets an assistant check EU VAT numbers, IBANs, email addresses, place names and VINs, with each call paid per use.
What you can do
Validate EU/EEA VAT numbers with format and checksum checks plus a live VIES lookup, returning registration status and company details when available. Check IBANs offline for length, mod-97 checksum, country and bank identifier. Check email addresses for syntax, live MX records, disposable domains and role addresses. Resolve place names or country/state/city input to normalized names, ISO codes, hierarchy, population and coordinates. Decode a VIN with check-digit validation and a full NHTSA vPIC decode of make, model, year and engine.
When to use it
Useful when an assistant needs quick, authoritative validation of business identifiers such as VAT numbers, IBANs, emails, locations or vehicle VINs, for example while cleaning customer or supplier records or checking form input.
Requirements
Remote streamable-HTTP endpoint at valid.fabtally.com, or the local npm package fabtally-valid-mcp via npx. No account or API key is required, but every tool call is paid in USDC on Base through x402; a call without payment returns a payment challenge. An optional base URL can be set with FABTALLY_VALID_BASE.
Before you install
Every tool costs money per call, paid in USDC on Base via an x402 payment payload, so an assistant could spend funds without a clear prompt. VAT lookups send the number to the official VIES service, email checks send the domain to DNS, and VIN decodes go to the NHTSA vPIC API. Results are not legal, tax or financial advice.
Enable the server for the chats that should use its tools.
Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.
Use with an agent
Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.
Read https://sourceweft.com/mcp/io.github.zvmzaretsky%2Fvalidation-suite/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.
A developer validation suite — the per-call utilities incumbents charge for
(Vatstack $0.01–0.09/call) or lock behind subscriptions, unified. Fronts the
Valid HTTP API at https://valid.fabtally.com. Holds no private key.
Tools (all paid; a call with no payment returns the decoded x402 402 challenge)
Tool
Price
What it does
validate_vat
$0.003
Flagship. EU/EEA VAT: {country_code, vat_number} → per-country format + checksum pre-check AND a live VIES lookup, returning valid/registered plus the registered company name & address when VIES has them (cached ~1h to shield the flaky VIES).
validate_iban
$0.001
{iban} → ISO 13616 length + mod-97 checksum, country, human-formatted grouping, and bank identifier (German Bankleitzahl, UK bank code + sort code, …) extracted from the BBAN where derivable. Pure-offline.
validate_email
$0.002
{email} → RFC-ish syntax + live MX-record (DNS) existence + disposable/throwaway-domain detection (bundled blocklist) + role-address flag (info@, admin@). Stateless & non-PII: the address is never stored and no SMTP mailbox is probed.
geo_lookup
$0.002
{query:"Munich, Bavaria, Germany"} or {country,state,city} → normalized names, ISO 3166-1/-2 codes, country→subdivision→city hierarchy, population and coordinates, over a bundled open dataset (no per-day API limits).
decode_vin
$0.002
{vin} → 17-char format + North-American check-digit validation and a full NHTSA vPIC decode: make, model, year, body class, engine, plant country. VIN-only (never plate→owner).
Every tool also accepts an optional x_payment (base64 x402 payload) that is
forwarded as the X-PAYMENT header to settle the call and return the real result.
Humans can instead prepay by card and use an X-FabTally-Key credit key against
the HTTP API.
PAID $0.003 (x402, USDC on Base). FLAGSHIP. Validate an EU/EEA VAT number: give {country_code, vat_number} and get a per-country format + checksum pre-check AND a LIVE lookup against the official VIES service — returning valid/registered plus the registered company name & address when VIES provides them (cached ~1h to shield the flaky VIES). Without payment returns the x402 challenge; pass x_payment to settle.
Validate an IBAN (mod-97) + extract bank code (paid $0.001)
PAID $0.001 (x402, USDC on Base). Validate an IBAN: give {iban} and get ISO 13616 length + mod-97 checksum validation, the country, the human-formatted grouping, and the bank identifier (e.g. German Bankleitzahl, UK bank code + sort code) extracted from the BBAN where derivable. Pure-offline. Without payment returns the x402 challenge.
Parametersibanrequiredx_payment
validate_email
Validate an email: syntax + MX + disposable + role (paid $0.002)
PAID $0.002 (x402, USDC on Base). Validate an email address: give {email} and get RFC-ish syntax validation, a LIVE MX-record (DNS) existence check, disposable/throwaway-domain detection (bundled blocklist), and a role-address flag (info@, admin@…). STATELESS and non-PII — the address is never stored and no SMTP mailbox is probed. Without payment returns the x402 challenge; pass x_payment to settle.
Parametersemailrequiredx_payment
geo_lookup
Resolve a country / state / city to ISO codes (paid $0.002)
PAID $0.002 (x402, USDC on Base). Resolve a place against a bundled open dataset (no per-day API limits). Give {query:"Munich, Bavaria, Germany"} OR {country, state, city} and get normalized names, ISO 3166-1/-2 codes, the country→subdivision→city hierarchy, population and coordinates, and confirmation the place exists. Without payment returns the x402 challenge; pass x_payment to settle.
Parameterscityquerystatecountryx_payment
decode_vin
Decode a VIN via NHTSA vPIC (paid $0.002)
PAID $0.002 (x402, USDC on Base). Decode a Vehicle Identification Number: give {vin} and get a 17-char format + North-American check-digit validation and a full decode via NHTSA's public vPIC API — make, model, year, body class, engine, plant country and more. VIN-only (never plate→owner). Without payment returns the x402 challenge; pass x_payment to settle.
Parametersvinrequiredx_payment
Version history
1
v1.0.0LatestSep 16, 2026
Score
100%
100% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.