W System / VAT number checker MCP for Claude
VAT number checker MCP for Claude: connect in Claude.ai, Claude Desktop and Claude Code
Short answer: To check EU VAT numbers from Claude, add W System's free remote MCP server https://api.wsystem.dev/mcp/. In Claude.ai or the Claude desktop app, go to Customize > Connectors, add a custom connector with that URL and choose No sign in. In Claude Code, run claude mcp add --transport http eu-vat https://api.wsystem.dev/mcp/. Then ask, for example, "Is IE6388047V a valid VAT number?" Claude calls the verify_vat tool, which checks the number in the European Commission's VIES service and returns the status, the registered name and address where the country discloses them, and a VIES consultation number. You need no API key or account: the free tier is 20 tool calls per day per connector session. For more, add a W System API key as a request header (details below).
W System is the maker of this product. This page explains how to use it in Claude and compares it with other VAT MCP servers. Not affiliated with Anthropic or the European Commission.
What you get
- Server:
https://api.wsystem.dev/mcp/, streamable HTTP, no OAuth; an API key is optional. Server card: api.wsystem.dev/server-card. Listed in the official MCP Registry asio.github.zifengw/eu-business-data-mcp. - VAT tools:
verify_vat(one number) andverify_batch(up to 100 numbers in one call). Coverage: the 27 EU member states plus Northern Ireland (XI). Greece uses the prefix EL. - All 13 tools:
verify_vat,verify_batch,verify_eori,verify_eori_batch,lookup_company,screen_sanctions,kyb_check,validate_einvoice,create_einvoice,einvoice_route,send_einvoice_sandbox,due_diligence_report,check_fr_pa_registry. Details on the MCP server page. - Free limit: 20 tool calls per day per MCP session. Claude connector traffic is counted per session, inside a shared limit of 2,000 lookups per day. After a limit is reached, the tool returns an error that names the limit and explains how to add an API key. See Free limits.
Option 1: Claude.ai or Claude Desktop custom connector
Steps as described in Anthropic's help center and connector docs (checked 2026-10-22; the dialog layout can vary by organization):
- Open connectors. In Claude (web or desktop app), go to Customize > Connectors.
- Add a custom connector. Click + Add, then Add custom connector. (Team and Enterprise: an Owner does this under Organization settings > Connectors, via Add > Custom > Web.)
- Name and URL. Enter a name, for example W System EU VAT, and the remote MCP server URL
https://api.wsystem.dev/mcp/. Click Continue. - Authentication. Under Authentication, choose No sign in. For the free tier, leave Request headers empty. If you have a W System API key and the dialog shows Request headers, choose
x-api-keyand paste the key as the value. - Add. Click Add.
- Turn it on in a chat. Click the + button in the chat box, select Connectors and switch the connector on for that conversation.
Shortcut: Anthropic documents an install link that opens the same dialog with the name and URL filled in; you still review and confirm. For this server: add W System EU VAT to Claude.
- Custom connectors are available on Free, Pro, Max, Team and Enterprise plans; on the Free plan you can add one custom connector (Anthropic help center).
- A custom connector connects to the server from Anthropic's cloud, not from your computer, also in the desktop app (Anthropic help center). Anthropic publishes its outbound range (160.79.104.0/21). Calls from that range are counted per MCP session, not per IP, so one Claude user's calls do not use up another user's 20. All keyless calls from that range share a daily limit of 2,000 lookups.
Adding an API key to the connector
The server reads a key from the X-API-Key header or from Authorization: Bearer <key>. Keys are sold on the pricing page (Starter EUR 19/month, 5,000 units; Pro EUR 49/month, 25,000 units). There is no free key; the free tier needs no key.
- Claude.ai / Claude Desktop custom connector: in the Add custom connector dialog, choose No sign in, open Request headers, pick
x-api-keyand paste the key as the value. Claude stores it and sends it on every request (Claude docs). Anthropic says Request headers are in beta and available to a limited set of organizations. If you don't see the section, your organization doesn't have it yet. Headers can't be changed later: to add a key, remove the connector and add it again. - No Request headers section? Use Claude Code or the Claude Desktop config with
mcp-remotebelow; both can send the header. Don't put the key in the URL. Anthropic's connector authentication docs say servers must not accept credentials in query parameters, and this server does not. - On Team and Enterprise plans, a key in a connector's request header is shared by everyone in the organization who uses that connector, and they all draw on its units.
Option 2: Claude Desktop config file (local bridge)
Servers in Claude Desktop's claude_desktop_config.json are local (stdio) servers that run on your computer (Anthropic help center). To use the remote server that way, run it through the open-source mcp-remote bridge (needs Node.js). Open the file from Claude Desktop's Settings > Developer > Edit Config (MCP docs); it lives at ~/Library/Application Support/Claude/claude_desktop_config.json on macOS and %APPDATA%\Claude\claude_desktop_config.json on Windows. Add:
{
"mcpServers": {
"eu-vat": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.wsystem.dev/mcp/"
]
}
}
}
With an API key, pass it as a header. Write it without spaces around the colon and keep the value in env, as the mcp-remote README recommends:
{
"mcpServers": {
"eu-vat": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://api.wsystem.dev/mcp/",
"--header",
"X-API-Key:${WSYSTEM_API_KEY}"
],
"env": {
"WSYSTEM_API_KEY": "YOUR_KEY"
}
}
}
}
Then quit Claude Desktop completely and start it again. We tested this bridge against the live server on 2026-10-22 (mcp-remote 0.15.2): it connected over streamable HTTP and listed all 13 tools.
Option 3: Claude Code
claude mcp add --transport http eu-vat https://api.wsystem.dev/mcp/
With an API key:
claude mcp add --transport http eu-vat https://api.wsystem.dev/mcp/ --header "X-API-Key: YOUR_KEY"
This is the claude mcp add --transport http <name> <url> form (with --header for the key) from the Claude Code MCP docs. Add --scope user to use it in all your projects. Check the connection with claude mcp list or /mcp inside Claude Code.
Any other stdio-only client
npx -y mcp-remote https://api.wsystem.dev/mcp/
Or run the MIT-licensed server yourself from github.com/wsystemdev/eu-business-data-mcp; over stdio it has no W System call limit.
Example prompts
- "Check whether DE811193231 and IE6388047V are valid EU VAT numbers."
- "Validate FR40303265045 and use my VAT number <your EU VAT> as requester, so I get a consultation number for my records."
- "Here is a list of 40 customer VAT numbers. Check them all with verify_batch and give me a table of the invalid ones and the ones whose member state was unavailable."
- "Before I send a reverse-charge invoice to IE6388047V, check the VAT number and screen the company name for sanctions."
What verify_vat returns
Real responses from the live server on 2026-10-22, called over MCP (tools/call), shown as the JSON the tool returned:
{
"input": "IE6388047V",
"vat": "IE6388047V",
"country_code": "IE",
"vat_number": "6388047V",
"status": "valid",
"valid": true,
"name": "GOOGLE IRELAND LIMITED",
"address": "3RD FLOOR, GORDON HOUSE, BARROW STREET, DUBLIN 4",
"request_date": "2026-10-22T08:44:12.163Z",
"consultation_number": "WAPIAAAAaFiyDt8r",
"requester": "HU33119856",
"source": "VIES (European Commission)",
"cached": true
}
Germany does not disclose name and address through VIES, so those are null; the validity answer still comes from VIES:
{
"input": "DE811193231",
"vat": "DE811193231",
"country_code": "DE",
"vat_number": "811193231",
"status": "valid",
"valid": true,
"name": null,
"address": null,
"request_date": "2026-10-22T08:39:10.246Z",
"consultation_number": "WAPIAAAAaFiw6A3G",
"requester": "HU33119856",
"source": "VIES (European Commission)",
"cached": true
}
status:valid,invalid,invalid_format,member_state_unavailable(VIES or the national database did not answer;validisnull) orerror.consultation_number: the VIES reference for the check. It belongs to therequestershown; the default requester is W System's VAT number, so pass your own for your audit file.cached: true: valid results are kept for up to 24 hours;request_dateis the time of the VIES check the answer comes from (here 22 October 2026, 08:39 and 08:44 UTC).
When VIES is down
VIES forwards each check to the tax administration of the number's country, so one country can be offline while others work. The tool retries with backoff. If the country is still down, it answers from that country's free official source (Poland Biała lista, Czech ARES, Finnish YTJ, French SIRENE) or from the last successful VIES result, always with fallback: true, source and legal_status and without a consultation number. If neither exists, you get member_state_unavailable with valid: null, not a false invalid. Details: VIES down fallback; live availability: VIES status.
Free limits
| Limit | Value |
|---|---|
| Free tool calls per MCP session | 20 per UTC day |
| Keyless calls from Anthropic's outbound range (all Claude connector users together) | 2,000 lookups per UTC day; a verify_batch or verify_eori_batch counts one per number |
| Direct clients (Claude Code, mcp-remote, Cursor and others connecting from your machine) | 20 calls per day per session and 20 per IP, so opening more sessions does not add calls |
| New keyless sessions per IP | 1,500 per day (3,000 per Anthropic address) |
| With an API key (X-API-Key or Authorization: Bearer) | No daily free limit; the key's monthly units, same weights as the REST API |
Live values: https://api.wsystem.dev/mcp/limits (checked 2026-10-22). Limits reset at 00:00 UTC. We cap the shared allowance because each free lookup goes to a public source such as VIES, and unlimited traffic from one shared address could get our access to those sources throttled for everyone.
Pricing
| Channel | Price |
|---|---|
| Hosted MCP server, free (this page) | 20 tool calls/day per MCP session, no key; Claude connector traffic from Anthropic's cloud shares 2,000 lookups/day (a batch counts one per number); direct clients 20 calls/day per IP |
| Hosted MCP server with an API key | Starter EUR 19/month (5,000 units) or Pro EUR 49/month (25,000 units), sent as X-API-Key; same unit weights as the REST API (1 unit per VAT check or batch) |
| Self-hosted MCP server (stdio, MIT source) | Free, no W System limit (VIES's own limits apply) |
| REST API, pay per call (x402, USDC on Base) | GET /verify $0.01 per call; POST /verify/batch $0.10 per request |
| REST API with an API key | Starter EUR 19/month (5,000 units), Pro EUR 49/month (25,000 units); 1 unit per VAT call or batch |
Prices from llms.txt and the pricing page on 2026-10-22. Other volume options: the EU VAT validation REST API or the Apify Actor wsystem/eu-vat-checker.
Comparison with other VAT MCP servers
| W System (this page) | vat.businesspress.io | vatnode-mcp | vatcheckapi.com | honest-vies-mcp | |
|---|---|---|---|---|---|
| Server type | Remote, streamable HTTP | Remote, streamable HTTP | Local stdio (npx vatnode-mcp) calling the vatnode API | Remote HTTP | Local stdio (Python, clone + venv), calls VIES directly |
| API key / sign-up | None for the free tier; optional API key header for volume | None | API key needed for validate_vat_number (other 4 tools work without) | API key on every request, including the MCP handshake | None |
| Free usage stated on the page | 20 tool calls/day per MCP session (per IP for direct clients) | "120 requests a minute per IP address, including up to 20 VAT number checks" | Free plan with a monthly quota (number not on the MCP page) | Free API key (quota not stated on the MCP page) | No limit of its own |
| VAT checking tools | verify_vat, verify_batch (up to 100) | validate_vat_number | validate_vat_number, check_vat_format (offline) | check | check_vat |
| Consultation number | Yes; pass your own VAT as requester (default: W System's) | Not mentioned | Yes, with a requester VAT set in the vatnode dashboard | Not mentioned on the MCP page | Yes, with requester_country + requester_vat |
| When VIES is down | Retry, then flagged national-source or last-VIES fallback, else member_state_unavailable | Not described | VIES_UNAVAILABLE error (not invalid) | getViesStatus tool (VIES availability per state) | Reports national database outages as such |
| Other tools | EORI, company registry, sanctions, KYB, e-invoice validate/create/route, sandbox send, due diligence, France PA list (13 tools) | VAT rates, calculation, comparison, rate changes (6 tools) | VAT rates, formats, countries (5 tools) | EORI, IBAN (+ batch), e-invoice validation, quota, VIES status (7 tools) | Country list (2 tools) |
| Claude setup shown on the page | claude.ai/Desktop connector, Desktop JSON, Claude Code, stdio | Claude Settings → Connectors (their wording) | claude_desktop_config.json with npx | claude mcp add --transport http with apikey header | claude mcp add + claude_desktop_config.json |
Based on each provider's own page on 2026-10-22: vat.businesspress.io/mcp-server, vatnode.dev/docs/mcp, vatcheckapi.com/mcp, github.com/bartosz-kuc/honest-vies-mcp. "Not mentioned" means the page does not say; the product may still do it. Corrections welcome at [email protected].
Questions and answers
Is there a free VAT number checker MCP server for Claude?
Yes. W System runs a remote MCP server at https://api.wsystem.dev/mcp/ (streamable HTTP). Its verify_vat and verify_batch tools check EU VAT numbers against the European Commission's VIES service. It needs no API key, account or OAuth. The free tier is 20 tool calls per day per MCP session. Claude custom connectors call from Anthropic's cloud, so the server counts their calls per session, not per IP; all keyless calls that arrive from Anthropic's addresses share a daily limit of 2,000 lookups. Clients that connect directly from your own machine get 20 calls per day per IP.
Do I need an API key or an account?
Not for the free tier: add the URL and choose No sign in. For more volume, the hosted server also accepts a W System API key (Starter EUR 19/month, 5,000 units; Pro EUR 49/month, 25,000 units) in the X-API-Key header or as Authorization: Bearer <key>. Keyed calls use the key's monthly units, at the same unit weights as the REST API, and have no daily free limit.
How do I add an API key to the Claude connector?
When you add the custom connector, choose No sign in and open Request headers. Pick x-api-key from the list and paste your key as the value (or pick authorization and enter Bearer followed by your key). Anthropic says this Request headers option is in beta and only some organizations have it. If your dialog has no Request headers section, use Claude Code (claude mcp add --transport http with --header "X-API-Key: <key>") or mcp-remote with --header in Claude Desktop. Do not put the key in the URL: Anthropic's connector docs say credentials must not go in query parameters, and the server does not read keys from the URL.
Which Claude plans can add it as a custom connector?
According to Anthropic's help center, custom connectors using remote MCP are available on Free, Pro, Max, Team and Enterprise plans. Free users can add one custom connector. On Team and Enterprise plans an Owner adds the connector under Organization settings > Connectors, then members connect it.
Why does Claude say the free MCP quota is exhausted?
One of three free limits was reached: 20 tool calls today in this connector session, the 2,000 lookups per day shared by all keyless traffic from Anthropic's cloud, or (for direct clients) 20 calls per day per IP. The error message says which limit it was and how to add an API key. Free limits reset at 00:00 UTC. The number of new sessions per address per day is capped as well. With an API key in the connector's request header, none of the free limits apply.
Can I get a VIES consultation number for my own records?
Yes, if you pass your own EU VAT number as the requester, for example: Check FR40303265045, use my VAT number DE811193231 as requester. Without it the tool uses W System's VAT number (HU33119856) as the requester, so the consultation number belongs to W System's check, not yours.
What happens when VIES or a member state is down?
The server retries VIES with backoff. If the country is still unavailable it answers from that country's official source (Poland, Czechia, Finland, France) or from the last successful VIES result, marked fallback: true with source and legal_status and no consultation number. Otherwise status is member_state_unavailable with valid: null, never a false invalid.
Can it check UK (GB) VAT numbers?
GB numbers are not in VIES. The server accepts them and checks the HMRC check digits, but live HMRC validation is not configured yet, so GB results say not_configured. Northern Ireland (XI) numbers are checked in VIES.
How many numbers can I check at once?
verify_batch takes up to 100 VAT numbers in one tool call. It counts as one of your 20 free calls per session; against the shared daily limit for Claude connector traffic, each number counts as one lookup. With an API key a batch costs 1 unit.
Is the result tax advice?
No. It is the VIES answer at the time of the check, plus the fallback information described above. Whether you can zero-rate a supply depends on more than a valid VAT number.
Sources
- Anthropic help center: Get started with custom connectors using remote MCP
- Claude docs: Add a connector that isn't in the directory
- Claude docs: Directory connectors vs custom connectors (install links)
- Claude Code docs: Connect Claude Code to tools via MCP
- MCP docs: Connect to local MCP servers (Claude Desktop config file)
- Claude docs: Authenticate with request headers (beta)
- Claude docs: Authentication for connectors (no credentials in URLs)
- Anthropic docs: IP addresses (outbound 160.79.104.0/21)
- mcp-remote README: custom headers
- W System MCP server card (tool list)
Related
- MCP server for EU VAT, EORI, company registry and sanctions
- EU VAT number validation API (VIES)
- VIES is down: how to handle MS_UNAVAILABLE and timeouts
- Free bulk VAT checker (CSV)
- EU VAT validation guide
Facts checked 2026-10-22. W System is the maker of this product. Not affiliated with the European Commission. Not legal or tax advice.