
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.
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.
Installation
In SourceWeft
- Open EU VAT rates in the dashboard and add it to a workspace.
- 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 Desktop, Cursor and other clients (add to the client's MCP config)
Then ask: "Which EU countries changed their standard VAT rate since 2024?"
Tools
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
0Version history
1- v0.1.1LatestOct 5, 2026


