MCP Server for EU VAT Validation
The official Model Context Protocol server for vatnode. Plug Claude Desktop, Claude Code, Cursor, ChatGPT, Cline, Continue — or anything that speaks MCP — into vatnode and let the agent validate EU VAT numbers against the live VIES register and look up VAT rates inside the conversation.
Why an AI Workflow Needs Real VAT Data
Language models are confident and frequently wrong about tax. Ask one for the VAT rate in Finland and it may quote 24% — the rate before the September 2024 increase to 25.5%. Ask it whether a VAT number is valid and it has no way to know: validity is a fact held only by the EU VIES register, updated continuously by 27 national tax authorities. A model cannot validate a VAT number any more than it can check whether your flight is on time. It can only guess.
For any agent that touches invoicing, onboarding, B2B sign-up or compliance, a wrong answer is not a harmless slip — it is a mis-issued invoice or a reverse-charge claim you cannot defend. The MCP server replaces the guess with a tool call: bundled rate and format data refreshed daily from the EU Commission TEDB, and live VIES validation through the vatnode API for the EU-27 plus Northern Ireland (XI).
Tools
Five focused tools, each with a description tuned for accurate selection by the agent. The four free tools work fully offline — VAT rates and format patterns are bundled in the package and refreshed daily from the EU Commission TEDB. Only live VIES validation calls the vatnode API.
| Tool | API key? | What it does |
|---|---|---|
| validate_vat_number | Yes | Live VIES validation — validity, registered company name and address, registration date, and the VIES consultation number for audit proof. |
| get_country_vat_rates | No | Standard, reduced, super-reduced and parking rates for one country, plus the VAT number format and regex. |
| list_eu_vat_rates | No | All 27 EU member states plus XI for Northern Ireland. |
| check_vat_format | No | Offline syntactic check of a VAT number against the country regex — does not call VIES. |
| list_supported_countries | No | All 45 supported countries and which of them are EU members, so eligible for VIES validation. |
Install
For Claude Desktop, open claude_desktop_config.json (on macOS in ~/Library/Application Support/Claude/) and add an mcpServers.vatnode entry. In Cursor, paste the same block under Settings → MCP → Add new server.
{
"mcpServers": {
"vatnode": {
"command": "npx",
"args": ["-y", "vatnode-mcp"],
"env": {
"VATNODE_API_KEY": "vat_live_..."
}
}
}
}Restart the client — the vatnode tools appear in the tool picker. Any other MCP-compatible client works the same way: point it at npx -y vatnode-mcp with VATNODE_API_KEY in the environment.
env block. To enable validate_vat_number, grab a free API key.SKILL.md — the No-MCP Path
Plenty of agents never speak MCP: a coding assistant writing an integration, a shell-based agent, a custom LLM pipeline. For those, vatnode publishes a single self-contained brief at vatnode.dev/SKILL.md. Fetch it and the agent knows the whole API without crawling the docs site.
It is an Agent Skill-formatted Markdown file — frontmatter plus prose — so you can drop it straight into a skills directory, paste it into a system prompt, or let a coding agent read it before writing the integration. It covers:
- Which endpoints need no account at all (rates, format checks) and which need a key
- Authentication — Bearer header, never the URL
- The full response envelope: valid, checkId, verifiedAt, consultationNumber, source, countryVat
- The consultation-number contract and the one-time requester VAT setup in dashboard Settings
- Error codes worth handling — INVALID_REQUESTER, VIES_UNAVAILABLE — and why a 503 is not an invalid number
- Scope: EU-27 + XI for validation, wider coverage for rates
There is also /llms.txt — the long-form machine spec with every field and endpoint — and /agents.txt for a terse orientation file. MCP, SKILL.md and llms.txt all describe the same API; pick whichever your runtime can consume.
What It Looks Like in Chat
Once connected, you talk to the agent normally — it picks the right tool from the description.
You: What's the VAT rate in Finland and Germany?
Claude: (calls get_country_vat_rates for FI and DE — free, no key)
Finland's standard VAT is 25.5%, Germany's is 19%. Finland has reduced
rates of 13.5% and 10%; Germany has 7%.
You: Is IE6388047V a valid VAT?
Claude: (calls validate_vat_number — requires API key)
Yes, it's valid. Registered to GOOGLE IRELAND LIMITED at Gordon House,
Barrow Street, Dublin 4.validate_vat_numbercall returns the VIES consultation number — the EU Commission-issued reference proving the check ran against the official register on a given date. It is the documented evidence for reverse-charge "reasonable care" on intra-EU B2B invoices, and the agent can capture it automatically.Configuration
| Env var | Required | Default | Purpose |
|---|---|---|---|
| VATNODE_API_KEY | for validate_vat_number | — | API key from your dashboard |
| VATNODE_API_URL | No | https://api.vatnode.dev | Override for self-hosting or staging |
Coverage
- Live VIES validation for all EU-27 member states plus Northern Ireland (XI)
- VAT rate and format data for 45 European countries, refreshed daily from the EU Commission TEDB
- VIES consultation number on qualified live validations, when a requester VAT is supplied — for audit evidence
- Registered company name and address returned where the member state publishes it
- Four offline tools that need no API key and never make a network call
Privacy & Security
- The server runs locally on your machine via
npx— no third-party proxy - Your API key stays in your MCP client config and is never sent anywhere except directly to
api.vatnode.dev - VAT numbers passed to
validate_vat_numberare logged on the vatnode side, same as any direct API call — see the privacy policy - The four free tools never make a network call — rate and format data is bundled in the package
Why Use the Official Server
Third-party MCP marketplaces sometimes ship VAT or tax-validation wrappers built around the vatnode API. Using vatnode-mcp directly is the only way to:
- Keep your API key on your own machine, not in a hosted middle-tier
- Get tool descriptions that track the real API surface release-by-release
- Skip a subscription tier on top of your vatnode plan
- Read the source — it's open and every release is signed with npm provenance
FAQ
What is MCP?
The Model Context Protocol is an open standard that lets AI agents call external tools. The vatnode MCP server exposes EU VAT validation and rate lookup as tools, so an agent verifies a VAT number during the conversation instead of guessing.
Why not just let the LLM answer VAT questions itself?
Language models hallucinate. They will confidently state a VAT rate that changed last year, or claim a VAT number is valid without checking anything. VAT rates move (Finland went to 25.5% in 2024) and validity can only be confirmed against the live EU VIES register. The MCP server gives the agent a real data source: bundled rates refreshed daily from the EU Commission TEDB, and live VIES validation through the vatnode API.
Do I need an API key?
Not for everything. Four of the five tools — rate lookups and offline format checks — work with no key, because the rate and format data ships inside the package. Only validate_vat_number, which performs a live VIES check, needs a vatnode API key. The free plan includes a monthly quota with no credit card.
What is SKILL.md and when do I use it instead of MCP?
SKILL.md is a single Markdown brief at https://vatnode.dev/SKILL.md that teaches any agent how to use the vatnode HTTP API directly — endpoints, auth, the response envelope, error codes and scope. Use MCP when your client supports it and you want typed tools; use SKILL.md when it does not, or when the agent writes code against the API itself. Both describe the same API.
Which AI clients are supported?
Any MCP-compatible client: Claude Desktop, Claude Code, Cursor, ChatGPT, Cline, Continue and others. Point the client at npx -y vatnode-mcp and, for live validation, set VATNODE_API_KEY in the environment.
Where does my data go?
The server runs locally on your machine via npx — there is no third-party proxy. Your API key stays in your own client config and is only ever sent directly to api.vatnode.dev. The four free tools never make a network call at all.
What countries are covered?
Live VIES validation covers the EU-27 plus Northern Ireland (XI). Rate and format data covers 45 European countries. UK domestic, US, Norwegian and Swiss VAT validation are out of scope.
Give Your Agent Real VAT Validation
Free plan, no credit card. Connect the MCP server, or hand your agent the SKILL.md brief and let it call the API directly.