# MCP Server

vatcheckapi ships a hosted Model Context Protocol (opens new window) (MCP) server, so AI agents and assistants can call the API as native tools — no SDK or glue code required.

https://api.vatcheckapi.com/mcp

The endpoint speaks the streamable HTTP transport. All requests — including listing the available tools — require your API key, sent as the apikey header. You can get a free API key here (opens new window).

# Connect

Using Claude Code:

claude mcp add --transport http vatcheckapi https://api.vatcheckapi.com/mcp --header "apikey: YOUR_API_KEY"

Or add the server to any MCP-capable client (Claude Desktop, Cursor, VS Code, ...):

{
  "mcpServers": {
    "vatcheckapi": {
      "url": "https://api.vatcheckapi.com/mcp",
      "headers": { "apikey": "YOUR_API_KEY" }
    }
  }
}

# Available tools

The tools are generated from the same OpenAPI specification (opens new window) that describes the REST API, so they always match the documented endpoints, parameters and responses.

Tool Endpoint Description
check GET /v2/check Check a VAT number
checkEori GET /v2/eori Check an EORI number
checkIban GET /v2/iban Validate an IBAN
checkIbanBatch POST /v2/iban/batch Validate up to 100 IBANs
getStatus GET /v2/status Account quota status
validateEinvoice POST /v2/einvoice/validate Validate an e-invoice (XRechnung, ZUGFeRD / Factur-X, EN 16931)

validateEinvoice takes the invoice file (XML or PDF, at most 10 MB) base64-encoded as content_base64, plus the optional filename, format and language. Invoices are processed transiently and never persisted. See Validate E-Invoice (opens new window) for the result format and costs.

# Quotas and errors

Tool calls are metered exactly like REST requests: they consume your plan quota and return the same status codes and error responses (401, 422, 429, ...). If a call fails, the tool result contains the API's error message including hints on how to proceed. When the API sends a Retry-After header, the error text names it, for example HTTP 503 (Retry-After: 1): … for a GB EORI check over the GB rate limit (opens new window): wait that many seconds, then retry.