Skip to main content
Glama

EU VAT Validation

vat_eu_validate

Validates an EU VAT number through the European Commission VIES service, with explicit unavailable status. Use when: Validate an EU VAT number before invoicing or supplier onboarding. You need to validate an EU VAT number through the European Commission VIES service before invoicing or onboarding. You have either a complete VAT number or a country code plus national number. Avoid when: You need invoice-level consistency for a French company identifier; use company/fr/invoice-check. You need broader supplier identity, compliance or IBAN checks; use company/fr/supplier-verification. Limitations: Validation depends on VIES availability and on the member-state data returned through that service. A valid VAT number does not prove bank-account ownership, solvency or absence of fraud. Price: 0.005 USD per call via x402. Paid-call behavior: source records are not modified, but a successful invocation can consume the advertised x402 payment; the payment-required challenge is free, and repeating the tool after a completed paid invocation may require a new payment. Accepted x402 networks: eip155:8453, xrpl:0.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
numberNoNational VAT identifier body without the country prefix, used together with country_code.
vat_numberNoComplete EU VAT number including the two-letter country prefix; alternatively provide country_code and number separately.
country_codeNoEU/VIES country prefix used when the VAT number is supplied in separate parts.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
nameYesPublicly available company, person, buyer or record name for this result.
validYesWhether the supplied identifier passed the endpoint’s validation rules.
numberYesStructured value returned for “number” as defined by this API contract.
sourceYesStructured value returned for “source” as defined by this API contract.
statusYesNormalized endpoint or source status.
addressYesStructured value returned for “address” as defined by this API contract.
checked_atYesUTC timestamp at which HelpMyAgent performed the check.
vat_numberYesStructured value returned for “vat number” as defined by this API contract.
country_codeYesStructured value returned for “country code” as defined by this API contract.
request_dateYesStructured value returned for “request date” as defined by this API contract.
request_identifierYesStructured value returned for “request identifier” as defined by this API contract.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed16 schema fields changed
    • addedInput schema / description
      Added value: +"Structured input parameters for the vat/eu/validate API."
    • addedInput schema / properties / country_code / description
      Added value: +"EU/VIES country prefix used when the VAT number is supplied in separate parts."
    • addedInput schema / properties / number / description
      Added value: +"National VAT identifier body without the country prefix, used together with country_code."
    • addedInput schema / properties / vat_number / description
      Added value: +"Complete EU VAT number including the two-letter country prefix; alternatively provide country_code and number separately."
    • addedOutput schema / description
      Added value: +"Structured result returned by the vat/eu/validate API."
    • addedOutput schema / properties / address / description
      Added value: +"Structured value returned for “address” as defined by this API contract."
    • addedOutput schema / properties / checked_at / description
      Added value: +"UTC timestamp at which HelpMyAgent performed the check."
    • addedOutput schema / properties / country_code / description
      Added value: +"Structured value returned for “country code” as defined by this API contract."
    • addedOutput schema / properties / name / description
      Added value: +"Publicly available company, person, buyer or record name for this result."
    • addedOutput schema / properties / number / description
      Added value: +"Structured value returned for “number” as defined by this API contract."
    • addedOutput schema / properties / request_date / description
      Added value: +"Structured value returned for “request date” as defined by this API contract."
    • addedOutput schema / properties / request_identifier / description
      Added value: +"Structured value returned for “request identifier” as defined by this API contract."
    • addedOutput schema / properties / source / description
      Added value: +"Structured value returned for “source” as defined by this API contract."
    • addedOutput schema / properties / status / description
      Added value: +"Normalized endpoint or source status."
    • addedOutput schema / properties / valid / description
      Added value: +"Whether the supplied identifier passed the endpoint’s validation rules."
    • addedOutput schema / properties / vat_number / description
      Added value: +"Structured value returned for “vat number” as defined by this API contract."
  2. Added

TDQS

A4.6/5.0
Behavior5/5

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

Annotations are all false hints, so the description carries the full burden and delivers. It discloses dependence on VIES availability and member-state data, clarifies that a valid VAT number does not prove solvency or absence of fraud, and — critically for a paid tool — explains that a successful invocation consumes x402 payment while the challenge is free and repeat calls may require new payment. This resolves the ambiguity of readOnlyHint=false by clarifying source records are not modified but money can be spent.

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?

The description is well-organized with labeled sections (Use when, Avoid when, Limitations, Price, Paid-call behavior, Accepted networks) that make it easy for an agent to scan, and the core purpose is front-loaded. It earns its length, though the 'Use when' section repeats the invoicing/onboarding context in two nearly identical sentences.

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

Completeness5/5

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

For a paid, externally-dependent validation tool, the description covers everything: purpose, trigger conditions, exclusions with named alternatives, limitations, price, payment-consumption behavior, accepted networks, and input prerequisites. An output schema exists for return values, and the 'explicit unavailable status' even previews the response shape, so nothing an agent needs to invoke this correctly is missing.

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

Parameters3/5

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

Schema description coverage is 100% — all three parameters (vat_number, country_code, number) are documented with patterns, enum, and their relationship, including the anyOf constraint. The description merely restates the either/or input requirement ('You have either a complete VAT number or a country code plus national number'), adding no semantic detail beyond the schema, so baseline 3 applies.

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?

The lead sentence states a specific verb and resource — 'Validates an EU VAT number through the European Commission VIES service' — and adds a distinguishing behavioral detail ('with explicit unavailable status'). It is clearly differentiated from the company_fr_* siblings by explicitly naming invoice-check and supplier-verification as the tools for French-company checks.

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

Usage Guidelines5/5

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

Explicit 'Use when' and 'Avoid when' sections give concrete trigger conditions (before invoicing or supplier onboarding) and name precise alternatives: company/fr/invoice-check for French invoice consistency and company/fr/supplier-verification for broader compliance or IBAN checks. Nothing is left to inference.

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.

Resources