EU VAT rates

io.github.duty27v0.1.1Updated Oct 5, 2026

Standard VAT rate in any EU member state on any date since 2016. Offline, no API key.

VerifiedSTDIODesktop onlyFinanceData & Analytics

Overview

AI-generated overview

Lets an assistant look up the standard VAT rate of any EU member state on any date since 2016, offline and without an API key.

What it does
It bundles EU standard VAT rate data in the package and exposes four read-only tools: get_standard_rate returns the standard rate for one country on one day (today if no date is given), get_rate_history returns every standard rate a country has had with the first day of each, list_rate_changes lists rate changes across the EU newest first with optional country and start-date filters, and list_countries returns the 27 member states and their codes. All four are read-only and make no network calls. Answers include a dataAsOf field showing when the data was last checked.
When to use it
Useful when an assistant needs a factual EU VAT rate for a specific country and date, or a list of recent rate changes, and you want the answer to come from bundled data rather than a web search. It covers standard rates only, so it is not for reduced rates, VAT calculation, reverse-charge decisions or OSS reporting.
Requirements
A local MCP client that can start a stdio process, such as Claude Code, Claude Desktop or Cursor, and Node.js with npx to run the npm package @duty27/eu-vat-mcp. No account, API key, environment variable or network access is needed; the rates are bundled in the package.
Before you install
Read-only and offline, with no credentials requested. It returns standard rates only, not reduced rates, and does not calculate net or gross amounts, rounding, reverse charge or OSS reports. Data is a snapshot: each answer carries a dataAsOf date, and changes published after that date appear only in a later release. Unknown countries, dates before 2016-01-01 and malformed dates return errors rather than a guessed rate.

Installation

In SourceWeft

  1. Open EU VAT rates in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

@duty27/eu-vat-mcp

An MCP server that lets an AI assistant answer "what was the VAT rate in Germany on 1 July 2020?" correctly, for all 27 EU member states, any day since 2016.

It runs on your machine, offline, with no API key and no account. The rates are bundled in the package.

Use it

Claude Code

claude mcp add eu-vat -- npx -y @duty27/eu-vat-mcp

Claude Desktop, Cursor and other clients (add to the client's MCP config)

json
{  "mcpServers": {    "eu-vat": { "command": "npx", "args": ["-y", "@duty27/eu-vat-mcp"] }  }}

Then ask: "Which EU countries changed their standard VAT rate since 2024?"

Tools

ToolAnswers
get_standard_rateThe standard rate in one country on one day (today if no day is given).
get_rate_historyEvery standard rate a country has had, with the first day of each.
list_rate_changesRate changes across the EU, newest first; filter by country and/or a start date.
list_countriesThe 27 member states and their codes (Greece is EL; GR also works).

All four are read-only and make no network calls.

What it will not do

  • Standard rates only. Reduced rates (e-books, food, ...) are not included.
  • Lookup, not calculation. It returns the rate. It does not work out net or gross amounts, rounding, whether a sale is reverse-charged, or OSS reports: those are in the Duty27 API.
  • Nothing is guessed. An unknown country, a date before 2016-01-01 or a malformed date is returned as an error the assistant can read, never a plausible-looking wrong rate.
  • It is a snapshot. Every answer says when the data was last checked (dataAsOf). A rate that changed after that date appears in the next release. A pull request that updates the data opens automatically when Duty27's published rates change, and is released after a person checks it against the primary source.
  • The citations are on the web, not in the answers. Every rate change cites the law or tax-authority notice that made it (the 2016 starting rates cite the European Commission's rate table), listed at https://duty27.com/vat-rates/history.

Need more than a rate?

Deciding what to charge and keeping the proof (B2B reverse charge, the EU €10,000 threshold, VIES checks, an archive and OSS reports) is what the Duty27 API does. It is free to try, no credit card.

Same data as the libraries

This server uses exactly the data of the Node, Python and Java libraries from the same repository: one shared source, one hash, one set of test vectors checked in every language and through this server.

Licence

Code: MIT (LICENSE). Rate data: CC BY 4.0 (DATA-LICENSE.md); the answers include the credit it asks for: Rate data: Duty27 (https://duty27.com/vat-rates/history), CC BY 4.0.

Source: mcp/README.md at commit 0c4ce45

Tools

0
Tool metadata has not been indexed yet.

Version history

1
  1. v0.1.1LatestOct 5, 2026