Supplier onboarding
Procurement and AP teams paste a new supplier’s details into the assistant and get the registry verdict before the vendor is created in the ERP.
“Check the VAT number on this supplier form before I set them up.”
MCP Server
The Lookuptax MCP server is a remote Model Context Protocol server that lets Claude Code, Cursor and other AI assistants check VAT, GST, ABN and other tax IDs in 100+ countries against official government registries, mid-conversation and with no integration code.
Before I add these suppliers to the ERP, check their VAT numbers: IE3628739L, NL12345678B0, FR74482917366
validate_many [{ country_iso: "IE", tin: "3628739L" },
{ country_iso: "NL", tin: "12345678B0" },
{ country_iso: "FR", tin: "74482917366" }]| IE | IE3628739L | VALID |
| NL | NL12345678B0 | INVALID |
| FR | FR74482917366 | INDETERMINATE |
1 of 3 is ready to onboard. The Dutch number has the wrong format, so ask the supplier to re-send it. France's registry didn't respond, so that one isn't invalid, just unconfirmed. I'll re-check it before you onboard.
In plain language, with one ID or a whole file.
validate or validate_many, with the country code and the ID.
Format, check digits, then the official source that issued the ID.
One explicit status per ID, explained in the chat.
Anywhere someone would open a government lookup site in another tab, the assistant can run the check and carry on.
Point a coding agent at an exported CSV. It batches the IDs through validate_many, up to 200 at a time, and writes the verdict back as new columns. A row that fails doesn't fail the batch; it comes back marked.
“Validate every tax ID in vendors.csv and flag the ones we need to chase.”
Before you issue a B2B invoice without VAT, the assistant confirms the customer's number is live. Every result has an explicit status, so it won't tell you a number is valid when the registry never answered.
“Can I invoice this French customer without VAT?”
Can I invoice this French customer without VAT? Their number is FR74482917366.
validate { country_iso: "FR", tin: "74482917366" }| FR | FR74482917366 | INDETERMINATE |
Not yet. The format and check digits are fine, but the French registry didn't respond, so I can't confirm the number is active. Hold off on the reverse charge until it's confirmed. I'll run the check again in a few minutes.
Agents that process invoices or onboard customers call validate as one step in the run. They get a machine-readable status and reason instead of a scraped web form, so they can route on it.
Procurement and AP teams paste a new supplier’s details into the assistant and get the registry verdict before the vendor is created in the ERP.
“Check the VAT number on this supplier form before I set them up.”
Compliance analysts verify a business’s tax registration as one step of a know-your-business review, alongside the other checks they run in the same chat.
“Verify the ABN and GSTIN on these three seller applications.”
Developers in Claude Code or Cursor test real IDs, inspect the response shape and write the integration against live results without leaving the editor.
“Validate a sample Irish VAT number and generate a TypeScript type for the response.”
Every check goes to the government registry that issued the ID, such as VIES, HMRC or the ABR, so the assistant is never repeating stale third-party data.
Each result carries one of five explicit outcomes. A format-only pass is labelled UNVERIFIED and a registry outage is INDETERMINATE, so the model can’t report “valid” when the registry never confirmed it.
Add one server entry to your MCP client and the tools appear. There is no SDK to install, no wrapper to maintain and no glue code between the model and the API.
validate_many takes up to 200 IDs. A failure on one entry is returned on that entry and doesn’t fail the batch, so the assistant can report partial results cleanly.
MCP uses the same X-API-Key header, plan and rate limits as the REST API. If you already have a Lookuptax key, it works unchanged.
EU VAT, UK VAT, Australian ABN, Indian GSTIN, Mexican RFC, Canadian BN and more, all through the same validate tool with a country code and the ID.
Every result has exactly one status. That stops an assistant from treating a format check as proof that a business is registered.
Format passed and a government registry confirmed the entity.
Accept it.
Wrong structure or check digit, or the registry has no matching record.
Reject it.
The country has no queryable registry, so only the format was checked.
Treat as format-only, not proof of registration.
The registry was temporarily unreachable.
Retry later; don’t treat as invalid.
The country or ID type isn’t covered yet.
Nothing was checked.
Create a free account (no credit card), copy your API key and add the server to your client. An existing Lookuptax key works as-is.
❯ claude mcp add --transport http lookuptax https://platform.lookuptax.com/api/gateway/mcp \
--header "X-API-Key: YOUR_API_KEY"{
"mcpServers": {
"lookuptax": {
"type": "http",
"url": "https://platform.lookuptax.com/api/gateway/mcp",
"headers": { "X-API-Key": "YOUR_API_KEY" }
}
}
}Then ask in plain language: “Validate the Irish VAT number 3628739L.” For headers, request shapes and error codes, see the MCP server API reference.
It is a remote Model Context Protocol (MCP) server that exposes Lookuptax tax ID validation as tools an AI assistant can call. Once connected, Claude Code, Cursor or another MCP client can validate VAT, GST, ABN and other tax identification numbers against official government registries during a conversation.
Any MCP client that supports remote servers over Streamable HTTP and lets you set a custom request header, including Claude Code and Cursor. The server is stateless JSON-RPC 2.0, so there is no session to manage.
Two tools: validate checks a single tax ID (country_iso, tin, and name where the registry matches on name, e.g. Mexico and Canada), and validate_many checks up to 200 tax IDs in one call, returning the verdict, the identified ID type and the source used for each.
No separate subscription is needed. The MCP server authenticates with your normal Lookuptax API key and draws on the same plan and rate limits as the REST API. The free plan needs no credit card.
More than 100 countries, the same coverage as the Lookuptax API. See the countries page for the full list of supported tax ID types.
Yes. Lookuptax validates only against official sources such as EU VIES, HMRC and the Australian Business Register. Where a country has no queryable registry, the result is marked UNVERIFIED rather than VALID.
The tool returns INDETERMINATE with retryable set to true instead of guessing. Your assistant can tell you to retry later rather than reporting the ID as invalid.
Create a free Lookuptax account to get an API key, then add the server URL https://platform.lookuptax.com/api/gateway/mcp to your MCP client with the header X-API-Key set to your key. In Claude Code that is a single claude mcp add command.
Free plan, no credit card. The same API key works for MCP and REST.