Servidor MCP

VAT Validator MCP

io.github.OjasKord/vat-validator-mcp
Legal y cumplimiento Pagos y fintech Público y accesible MCP 2026-07-28

Qué hace este MCP

Validates VAT numbers against government registries and retrieves current VAT rates for invoice and e-invoicing workflows.

get_vat_rates
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.
Esquema de entrada
{'type': 'object', 'required': [], 'properties': {'country_code': {'type': 'string', 'description': 'ISO 2-letter code e.g. DE, FR, GB. Omit for all countries.'}}}
Esquema de salida
{'type': 'object', 'required': ['agent_action', 'source_url', 'checked_at'], 'properties': {'note': {'type': 'string'}, 'rates': {'type': 'object', 'description': 'Present only when country_code is omitted -- full rate table for all supported jurisdictions'}, 'country': {'type': 'string'}, 'reduced': {'type': 'array', 'items': {'type': 'number'}, 'description': 'Reduced VAT rates as percentages, if any apply'}, 'standard': {'type': 'number', 'description': 'Standard VAT rate as a percentage'}, 'checked_at': {'type': 'string', 'format': 'date-time'}, 'source_url': {'type': 'string'}, '_disclaimer': {'type': 'string'}, 'agent_action': {'enum': ['PROCEED'], 'type': 'string'}, 'country_code': {'type': 'string'}}, 'additionalProperties': True}
validate_vat
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.
Esquema de entrada
{'type': 'object', 'required': ['vat_number'], 'properties': {'vat_number': {'type': 'string', 'description': 'VAT number with country prefix. EU: DE123456789. AU: ABN12345678901.'}, 'invoice_amount': {'type': 'number', 'description': 'Invoice amount in local currency — used in fraud risk weighting.'}, 'invoice_company_name': {'type': 'string', 'description': 'Company name as it appears on the invoice — if provided, cross-checks against registry and flags mismatches.'}}}
Esquema de salida
{'type': 'object', 'required': ['agent_action', 'valid', 'vat_number', 'jurisdiction', 'source_url', 'checked_at'], 'properties': {'valid': {'type': 'boolean', 'description': 'Whether the VAT number is currently registered and active per the source registry'}, 'address': {'type': ['string', 'null']}, 'summary': {'type': 'string'}, 'checked_at': {'type': 'string', 'format': 'date-time'}, 'name_match': {'enum': ['MATCH', 'MISMATCH', 'NOT_CHECKED'], 'type': 'string'}, 'source_url': {'type': 'string'}, 'vat_number': {'type': 'string'}, '_disclaimer': {'type': 'string'}, 'agent_action': {'enum': ['PROCEED', 'VERIFY_MANUALLY', 'HOLD'], 'type': 'string', 'description': 'Machine-readable verdict'}, 'company_name': {'type': ['string', 'null']}, 'jurisdiction': {'enum': ['EU', 'AU'], 'type': 'string'}, 'fraud_signals': {'type': 'array', 'items': {'type': 'string'}}, 'recommendation': {'enum': ['CLEAR', 'REVIEW', 'BLOCK'], 'type': 'string'}, 'fraud_risk_level': {'enum': ['LOW', 'MEDIUM', 'HIGH', 'CRITICAL'], 'type': 'string'}, 'fraud_risk_score': {'type': 'number', 'maximum': 100, 'minimum': 0}}, 'additionalProperties': True}
Añadido
get_vat_rates
17 de September de 2026 a las 12:45
Añadido
validate_vat
17 de September de 2026 a las 12:45