FabTally Valid

Validation suite: EU VAT (VIES), IBAN mod-97, email (MX+disposable), geo place lookup, VIN decode.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
98%
Naming quality
92%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,258Tokens (tool definitions)
~1.7 KBTypical response size
Moderate attention impact (0.98% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "validation-suite": {
      "url": "https://valid.fabtally.com/mcp"
    }
  }
}

Remote endpoints

https://valid.fabtally.com/mcpstreamable-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢validate_vat(country_code, vat_number, x_payment)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "country_code": {
      "type": "string",
      "description": "2-letter EU VAT country code (e.g. IE, DE, FR; GB/XI for Northern Ireland; GR accepted as EL)."
    },
    "vat_number": {
      "type": "string",
      "description": "The VAT number without the country prefix (prefix is tolerated and stripped)."
    },
    "x_payment": {
      "type": "string",
      "description": "x402 payment payload (base64) for this PAID validation. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first."
    }
  },
  "required": [
    "country_code",
    "vat_number"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢validate_iban(iban, x_payment)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "iban": {
      "type": "string",
      "description": "The IBAN (spaces/dashes tolerated), e.g. DE89 3704 0044 0532 0130 00."
    },
    "x_payment": {
      "type": "string",
      "description": "x402 payment payload (base64) for this PAID validation. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first."
    }
  },
  "required": [
    "iban"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢validate_email(email, x_payment)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "email": {
      "type": "string",
      "description": "The email address to validate."
    },
    "x_payment": {
      "type": "string",
      "description": "x402 payment payload (base64) for this PAID validation. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first."
    }
  },
  "required": [
    "email"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢geo_lookup(query, country, state, city, x_payment)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "query": {
      "type": "string",
      "description": "Free-text place, e.g. \"Munich, Bavaria, Germany\" or \"France\"."
    },
    "country": {
      "type": "string",
      "description": "Country name or ISO 3166-1 alpha-2/alpha-3 code."
    },
    "state": {
      "type": "string",
      "description": "State/province/subdivision name or code (within the country)."
    },
    "city": {
      "type": "string",
      "description": "City name."
    },
    "x_payment": {
      "type": "string",
      "description": "x402 payment payload (base64) for this PAID validation. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first."
    }
  },
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}
🟢decode_vin(vin, x_payment)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "vin": {
      "type": "string",
      "description": "A 17-character Vehicle Identification Number (excludes I, O, Q)."
    },
    "x_payment": {
      "type": "string",
      "description": "x402 payment payload (base64) for this PAID validation. If supplied it is forwarded as the X-PAYMENT header to settle the call and return the real result instead of a 402 challenge. Omit to get the price challenge first."
    }
  },
  "required": [
    "vin"
  ],
  "additionalProperties": false,
  "$schema": "http://json-schema.org/draft-07/schema#"
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools
verifiedversion not recorded5 tools