VAT Validator MCP

Validate EU, UK, AU VAT numbers for AI agents. EU ViDA e-invoicing compliance.

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
95%
Naming quality
100%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~997Tokens (tool definitions)
~3.4 KBTypical response size
Moderate attention impact (0.78% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "vat-validator-mcp": {
      "command": "npx",
      "args": [
        "vat-validator-mcp"
      ]
    }
  }
}

Runnable packages

npmvat-validator-mcp2.0.30stdio

Remote endpoints

https://vat-validator-mcp-production.up.railway.appstreamable-http

What it can do

Tool inventory

Tools (2)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢validate_vat(vat_number, invoice_company_name, invoice_amount)

Validates a VAT number against live government registries. Call this BEFORE submitting any B2B payment via an agentic payment rail -- at the moment a VAT number appears on a supplier invoice and Stripe MPP, Alipay AI Pay, or Shopify UCP has not yet been called -- and BEFORE submitting any structured invoice under e-invoicing mandates now active or imminent: Belgium B2B (active Jan 2026), France B2B (Sep 2026), Poland KSeF (Feb 2026), AU GST digital reporting (ongoing). Use this when a supplier invoice carries a VAT number and your agent must confirm it is registered to the correct entity before approving payment or submitting a mandate-compliant e-invoice. Validates against EU VIES (ec.europa.eu, 27 member states) and AU ABR (abr.business.gov.au) live registries. Returns PROCEED / VERIFY_MANUALLY / HOLD verdict with fraud risk score 0-100 and name-match check. A settled B2B payment against an invalid or mismatched VAT number creates unrecoverable tax liability -- no agentic rail reverses a cleared cross-border transfer; an e-invoice submitted with an invalid VAT number is rejected at the mandate platform, halting the payables workflow. Pass the country_code from this response to get_vat_rates. One call, machine-ready verdict, no further analysis needed.

Input Schema

{
  "type": "object",
  "properties": {
    "vat_number": {
      "type": "string",
      "description": "VAT number with country prefix. EU: DE123456789. AU: ABN12345678901."
    },
    "invoice_company_name": {
      "type": "string",
      "description": "Company name as it appears on the invoice — if provided, cross-checks against registry and flags mismatches."
    },
    "invoice_amount": {
      "type": "number",
      "description": "Invoice amount in local currency — used in fraud risk weighting."
    }
  },
  "required": [
    "vat_number"
  ]
}

Output Schema

{
  "type": "object",
  "properties": {
    "agent_action": {
      "type": "string",
      "enum": [
        "PROCEED",
        "VERIFY_MANUALLY",
        "HOLD"
      ],
      "description": "Machine-readable verdict"
    },
    "valid": {
      "type": "boolean",
      "description": "Whether the VAT number is currently registered and active per the source registry"
    },
    "vat_number": {
      "type": "string"
    },
    "jurisdiction": {
      "type": "string",
      "enum": [
        "EU",
        "AU"
      ]
    },
    "company_name": {
      "type": [
        "string",
        "null"
      ]
    },
    "address": {
      "type": [
        "string",
        "null"
      ]
    },
    "fraud_risk_score": {
      "type": "number",
      "minimum": 0,
      "maximum": 100
    },
    "fraud_risk_level": {
      "type": "string",
      "enum": [
        "LOW",
        "MEDIUM",
        "HIGH",
        "CRITICAL"
      ]
    },
    "fraud_signals": {
      "type": "array",
      "items": {
        "type": "string"
      }
    },
    "name_match": {
      "type": "string",
      "enum": [
        "MATCH",
        "MISMATCH",
        "NOT_CHECKED"
      ]
    },
    "recommendation": {
      "type": "string",
      "enum": [
        "CLEAR",
        "REVIEW",
        "BLOCK"
      ]
    },
    "summary": {
      "type": "string"
    },
    "source_url": {
      "type": "string"
    },
    "checked_at": {
      "type": "string",
      "format": "date-time"
    },
    "_disclaimer": {
      "type": "string"
    }
  },
  "required": [
    "agent_action",
    "valid",
    "vat_number",
    "jurisdiction",
    "source_url",
    "checked_at"
  ],
  "additionalProperties": true
}
🟡get_vat_rates(country_code)

Retrieves current VAT rates for a jurisdiction. Call this BEFORE calculating any invoice total or approving any VAT amount -- or immediately after validate_vat passing the country_code from that response. Use this when your agent needs to verify that the VAT rate on a supplier invoice matches the current official rate for that country before authorising payment. Returns current standard and reduced VAT rates for the jurisdiction. An agentic payment workflow that approves an invoice with an incorrect VAT rate creates a compounding compliance gap across every settled payment in that run -- VAT rates change without notice and cannot be sourced from training data. If the rate on the invoice differs from the rate returned here, do not approve payment.

Input Schema

{
  "type": "object",
  "properties": {
    "country_code": {
      "type": "string",
      "description": "ISO 2-letter code e.g. DE, FR, GB. Omit for all countries."
    }
  },
  "required": []
}

Output Schema

{
  "type": "object",
  "properties": {
    "agent_action": {
      "type": "string",
      "enum": [
        "PROCEED"
      ]
    },
    "country_code": {
      "type": "string"
    },
    "standard": {
      "type": "number",
      "description": "Standard VAT rate as a percentage"
    },
    "reduced": {
      "type": "array",
      "items": {
        "type": "number"
      },
      "description": "Reduced VAT rates as percentages, if any apply"
    },
    "country": {
      "type": "string"
    },
    "rates": {
      "type": "object",
      "description": "Present only when country_code is omitted -- full rate table for all supported jurisdictions"
    },
    "note": {
      "type": "string"
    },
    "source_url": {
      "type": "string"
    },
    "checked_at": {
      "type": "string",
      "format": "date-time"
    },
    "_disclaimer": {
      "type": "string"
    }
  },
  "required": [
    "agent_action",
    "source_url",
    "checked_at"
  ],
  "additionalProperties": true
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded2 tools
verifiedversion not recorded2 tools
verifiedversion not recorded2 tools