Metadata-Version: 2.5
Name: eurovalidate-mcp
Version: 0.1.0
Summary: MCP server for EuroValidate — validate EU VAT numbers (VIES), IBANs, EORI customs numbers and look up company data from LLM agents
Project-URL: Homepage, https://eurovalidate.com
Project-URL: Documentation, https://api.eurovalidate.com/docs
Project-URL: Repository, https://github.com/Nitrych/eurovalidate-mcp
Author-email: EuroValidate <support@eurovalidate.com>
License-Expression: MIT
License-File: LICENSE
Keywords: ai-agents,compliance,eori,eu-vat,iban,kyb,llm,mcp,model-context-protocol,vat,vat-validation,vies
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Office/Business :: Financial
Requires-Python: >=3.10
Requires-Dist: httpx>=0.27
Requires-Dist: mcp>=2.0.0
Description-Content-Type: text/markdown

# EuroValidate MCP Server

MCP ([Model Context Protocol](https://modelcontextprotocol.io)) server for [EuroValidate](https://eurovalidate.com) — lets Claude, ChatGPT and any MCP-capable agent **validate EU VAT numbers (VIES), IBANs and EORI customs numbers, look up company data, and fetch VAT rates** through one reliable REST API.

## Why

Validating European business data normally means juggling five fragmented government services: the VIES SOAP API (which times out constantly — Germany alone generates 95% of its errors), the EC EORI endpoint, HMRC, GLEIF, and national registries. EuroValidate wraps them into one cache-first JSON API with per-country circuit breakers and graceful degradation — and this MCP server exposes it to LLM agents as ready-to-use tools.

## Tools

| Tool | What it does |
|---|---|
| `validate_vat` | Validate an EU/UK VAT number via VIES/HMRC — returns validity + registered company name & address (where the member state exposes it) + confidence level |
| `validate_iban` | Validate an IBAN (offline MOD-97) and resolve bank name + BIC |
| `validate_eori` | Validate an EORI customs number (EU / GB / XI Northern Ireland) |
| `lookup_company_by_lei` | Company data by Legal Entity Identifier (GLEIF) |
| `lookup_company_by_vat` | Company data by VAT number — fallback for DE/ES where VIES hides names |
| `get_vat_rates` | Current VAT rates for an EU country |
| `check_service_status` | Live health of VIES (per country), EORI, HMRC, GLEIF — no API key needed |

## Setup

1. Get a **free API key** (100 requests/month, no credit card) at [eurovalidate.com](https://eurovalidate.com).
2. Add the server to your MCP client:

### Claude Desktop / Claude Code

```json
{
  "mcpServers": {
    "eurovalidate": {
      "command": "uvx",
      "args": ["eurovalidate-mcp"],
      "env": { "EUROVALIDATE_API_KEY": "your_api_key" }
    }
  }
}
```

Claude Code one-liner:

```bash
claude mcp add eurovalidate -e EUROVALIDATE_API_KEY=your_api_key -- uvx eurovalidate-mcp
```

### Any other MCP client

Run over stdio:

```bash
EUROVALIDATE_API_KEY=your_api_key uvx eurovalidate-mcp
```

Or install permanently: `pip install eurovalidate-mcp` → `eurovalidate-mcp`.

## Example prompts

- *"Validate VAT number DE811569869 and tell me the company behind it"*
- *"Check if this IBAN is valid and which bank it belongs to: DE89 3704 0044 0532 0130 00"*
- *"Is VIES down for Germany right now?"*
- *"What's the VAT rate in Portugal?"*
- *"Validate the VAT numbers of these 5 suppliers before I invoice them"*

## Notes for agents (and humans)

- **Germany and Spain never return company name/address** over VIES (data-protection law) — use `lookup_company_by_vat` as a fallback.
- **Greece** is `EL` in VIES but `GR` in ISO 3166 — both are accepted.
- Every response carries `confidence: HIGH|MEDIUM|LOW|UNKNOWN` and the upstream `source`, so agents can reason about data freshness when a government service is down.
- Free tier: 100 requests/month. Paid plans from €19/mo (500,000 requests/month) at [eurovalidate.com](https://eurovalidate.com).

## Environment variables

| Variable | Required | Default |
|---|---|---|
| `EUROVALIDATE_API_KEY` | yes (except `check_service_status`) | — |
| `EUROVALIDATE_BASE_URL` | no | `https://api.eurovalidate.com` |

## License

MIT

---
mcp-name: io.github.nitrych/eurovalidate-mcp
