Skip to main content
Glama

Duo Data Utilities: IBAN, ISIN, VAT and Tax ID, Barcode, Timezone, Geo APIs

VAT number format and checksum (no VIES lookup), tax ID and national ID validator: 23 countries

vat_tax_id_validate
Read-onlyIdempotent

VAT, tax ID and national ID validator: check a national identity, tax or company registration number against its country's official checksum rule. Covers 23 countries including NL BSN, ES NIF/NIE/CIF, IT codice fiscale, FR SIREN/SIRET, DE Steuer-ID, BE/PL/CZ national numbers, SE/NO/DK/FI personal numbers, BR CPF/CNPJ, AU ABN/TFN, UK NINo, IE PPS, US NPI/EIN. Structure and check digit only, no registry lookup; the number is never stored (logs keep only its length and character types). Price: $0.05 per successful call, paid over x402 (USDC on Base).

Input Schema

NameRequiredDescriptionDefault
kindYesIdentifier type for that country, e.g. bsn, nif, cf, cpf; vat picks the country's VAT number (NL btw, BE vat, DE ustid, FR tva, IT piva, PL nip, AT uid, CH uid, IE vat). Accepted: an identifier kind supported for the country, or vat.
valueYesThe identifier. Separators (space . - /) are stripped before checking. Accepted: at most 64 characters.
countryYesISO 3166-1 alpha-2 country code, case-insensitive. One of the 23 supported countries; the United Kingdom is accepted as UK or GB (the response echoes what you sent). Accepted: one of the 23 supported ISO 3166-1 alpha-2 codes.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / kind / description
      Previous value: -"Identifier type for that country, e.g. bsn, nif, cf, cpf. Accepted: an identifier kind supported for the country."New value: +"Identifier type for that country, e.g. bsn, nif, cf, cpf; vat picks the country's VAT number (NL btw, BE vat, DE ustid, FR tva, IT piva, PL nip, AT uid, CH uid, IE vat). Accepted: an identifier kind supported for the country, or vat."
  2. Added

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/openWorld annotations, it discloses that nothing is stored, that logs retain only length and character types, and that successful calls cost $0.05 via x402 (USDC on Base). Those are exactly the operational facts annotations cannot express; the only gap is that the response shape (e.g., valid boolean plus echoed country) is not stated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose, then caveats (no lookup, privacy), then price. The long country/ID enumeration is dense but earns its place for agent selection; a compact list format would read slightly better than the prose enumeration.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a three-required-parameter validation tool with no output schema, the definition covers scope, supported inputs, privacy, and pricing well. It stops short of describing what a result looks like (valid flag, normalized value, reason on failure), which is the one thing an agent must guess.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3, but the description adds meaning by mapping countries to their supported identifier kinds (NL BSN, ES NIF/NIE/CIF, IT codice fiscale, FR SIREN/SIRET, US NPI/EIN), which helps the agent choose a valid `kind` value. It does not add syntax detail for `value` or `country`, which the schema already covers.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: validate a national identity, tax, or company registration number against its country's official checksum rule, scoped to 23 named countries. It explicitly rules out registry lookup, which separates it from VIES-style tools and from checksum siblings like iban_validate or gtin_barcode_validate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Clear context for when to use it (format/check-digit verification of VAT, tax, or national IDs) and an implicit when-not ('no registry lookup'), which tells the agent to go elsewhere for existence/registration checks. It does not name a specific sibling alternative, but the boundary is unambiguous.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.