VIES — Elenchos AFM

The EU VAT Information Exchange System: turns a VAT number into the name and address it is registered to. Greece answers with both, so a bare ΑΦΜ — the one a contract award, a decision or a procedures-registry record carries but never spells out — becomes a named company at an address. Validity is relayed live from each member state's own VAT register.

Publisher
European Commission — DG Taxation and Customs Union (TAXUD)
Licence
Not stated — each answer is relayed live from a member state's own VAT register
Attribution
VIES — European Commission, DG TAXUD (ec.europa.eu/taxation_customs/vies)· ta ellinika stoicheia proerchontai apo to mitroo FPA tis AADE

MCP server

https://agoramcp-server.vercel.app/gr/mcp/vies

HTTP API

https://agoramcp-server.vercel.app/gr/api/vies

Its own server, with the tools under their plain names. On Greece's server the same tools answer as vies_.

Tools

2 tools, each with the description a model is given, its arguments and the example it ships with. Over HTTP a tool answers at /gr/api/vies/{tool}; over MCP, as itself.

check_vat_number >Look up a VAT number (AFM)

Turn a VAT number into the name and address it is registered to, and say whether the registration is live. This is the join for the other Greek sources: a ΚΗΜΔΗΣ contract award, a Διαύγεια expenditure decision and a Μίτος organisation record all identify a company by its ΑΦΜ and never by its name, and this is what names it. `countryCode` defaults to EL, Greece — note that EU VAT writes Greece as EL, not GR. The number may be given with or without that prefix and with spaces or dashes; a Greek ΑΦΜ that lost its leading zero to a spreadsheet is restored to nine digits. A Greek number is checked against its own check digit first, so a mistyped ΑΦΜ is reported as mistyped rather than as unregistered — upstream cannot tell those apart. Not every member state discloses names: Greece returns the registered name and address, while Germany and others confirm only that the number is valid, and `nameDisclosed` says which happened. An unregistered result means the number is not a live VAT registration today — it does not mean the company never existed, and a business below the VAT threshold or one that never traded across a border may hold an ΑΦΜ that VIES does not know. This is a research lookup, not a formal VIES consultation: it carries no consultation number and is not proof of validation for an invoice or a tax filing.

Arguments

vatNumberstring, up to 32 charactersrequired
The VAT number, with or without its country prefix and with any spacing: '094014201', 'EL094014201', 'EL 094 014 201'. For Greece this is the ΑΦΜ.
countryCodestring, 2–2 characters
The member state that issued the number, as EU VAT writes it. Defaults to EL (Greece). One of: AT, BE, BG, CY, CZ, DE, DK, EE, EL, ES, FI, FR, HR, HU, IE, IT, LT, LU, LV, MT, NL, PL, PT, RO, SE, SI, SK, XI.

Example arguments

{
  "vatNumber": "094014201"
}

list_member_states >List VAT registers and whether they are answering

List the EU VAT registers VIES can reach — the 27 member states plus XI, Northern Ireland — and whether each one is answering right now. VIES holds no register of its own: it forwards every question to the country that issued the number, so a lookup that fails is usually that country's register being down rather than anything about the number. Call this when check_vat_number reports a register unavailable, to see whether the outage is that one country or the whole service, and whether it is worth retrying. Availability changes minute to minute and is reported live.

Arguments

None. Call it with an empty object.