Model Context Protocol

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.

npm: vatnode-mcp · Source: github.com/vatnode/vatnode-mcp · License: MIT

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.

ToolAPI key?What it does
validate_vat_numberYesLive VIES validation — validity, registered company name and address, registration date, and the VIES consultation number for audit proof.
get_country_vat_ratesNoStandard, reduced, super-reduced and parking rates for one country, plus the VAT number format and regex.
list_eu_vat_ratesNoAll 27 EU member states plus XI for Northern Ireland.
check_vat_formatNoOffline syntactic check of a VAT number against the country regex — does not call VIES.
list_supported_countriesNoAll 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.

claude_desktop_config.json
{
  "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.

No API key yet? The four free tools still work — just omit the 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.

$ curl -s https://vatnode.dev/SKILL.md

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.

Claude Desktop chat
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.
Audit-grade, even from a chat window. With a requester VAT configured in dashboard Settings, a successful 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 varRequiredDefaultPurpose
VATNODE_API_KEYfor validate_vat_numberAPI key from your dashboard
VATNODE_API_URLNohttps://api.vatnode.devOverride 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_number are 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.