eu-verify — European business verification for AI agents
· MCP Registry
· data.greeneris.io
Your agent can verify any European business partner — and pay for it by itself.
One call, full due diligence: verify_supplier_fr checks a French company's
existence, insolvency, VAT and sanctions in a single request and returns a risk
verdict. Or use the building blocks: company registry, insolvency (BODACC), EU VAT
(VIES), SIRET / IBAN / LEI / EORI checks, sanctions screening (EU/OFAC/UN/UK/FR),
address and email verification, French business-day deadlines, EU public tenders.
No account. No API key. Each call costs $0.001–$0.05 in USDC on Base, paid
automatically through the x402 protocol — the payment is
the authentication.
Why your agent needs this
Every intra-EU B2B invoice legally requires a valid VAT number. Every serious
supplier onboarding requires a company existence check. These are actions that
procurement, compliance and due-diligence agents repeat thousands of times — and the
official European data behind them was never packaged for agents. Now it is.
| MCP tool | What it answers | Source | Price |
|---|
verify_supplier_fr | One-call risk verdict: existence + insolvency + VAT + sanctions | SIRENE + BODACC + VIES + sanctions | $0.05 |
screen_sanctions | Is this name on a sanctions list? (EU, OFAC, UN, UK, FR) | 5 official lists, refreshed daily | $0.01 |
lookup_company_fr | Does this French company exist? Status, NAF, HQ, finances | INSEE Sirene (official) | $0.005 |
check_insolvency_fr | Any insolvency / liquidation proceedings? | BODACC (official gazette) | $0.01 |
invoice_ready_fr | Is this SIREN invoiceable? (checksum + existence + VAT) | SIRENE + VIES | $0.02 |
validate_vat_eu | Is this EU VAT number valid? (pre-invoicing check) | VIES (European Commission) | $0.005 |
validate_siret_fr | Is this SIREN/SIRET well-formed? (offline checksum) | ISO/Luhn | $0.001 |
validate_iban | Is this IBAN valid? (85 countries, offline) | ISO 13616 mod-97 | $0.001 |
check_eori | Is this EU customs (EORI) operator registered? | EU EOS/DDS2 (official) | $0.003 |
lookup_lei / lei_ownership | Resolve a Legal Entity Identifier + ownership chain | GLEIF (official) | $0.005 |
verify_address_fr | Does this French address exist? Geocoded | Base Adresse Nationale | $0.001 |
validate_email | Will email to this address be deliverable? Live MX check | DNS-over-HTTPS | $0.005 |
business_days_fr | Deadline N business days from date X in France | computed (incl. holidays) | $0.005 |
find_public_tenders_eu | Recent EU public tenders by sector/country | TED (Official Journal EU) | $0.01 |
catalog | Everything this shop sells | — | free |
Plus 70+ supporting data endpoints (FX, macro, energy, weather, crypto) at commodity prices — see /llms.txt.
Buyers are never charged for empty or failed answers (an upstream failure returns
an error before settlement). No personal data is served (GDPR: director names are
stripped from registry answers).
Use it from an agent (MCP)
Claude Code:
claude mcp add --transport http eu-verify https://data.greeneris.io/mcp
Cursor / any MCP client (mcpServers config):
{
"mcpServers": {
"eu-verify": { "url": "https://data.greeneris.io/mcp" }
}
}
Then just ask: "Run a supplier risk check on SIREN 552032534" — the agent calls
verify_supplier_fr and gets back existence, insolvency, VAT and sanctions in one
verdict. Or: "Screen 'ACME Trading' against sanctions lists before we onboard them."
Payments over MCP: a paid tool called without payment returns the x402 quote in
the response _meta; x402-aware MCP clients (e.g. the x402 Python SDK's MCP
client, AWS Bedrock AgentCore) attach the USDC payment and retry automatically.
Clients without wallet support can read the quote and fall back to the HTTP API.
Use it over plain HTTP (x402)
Every endpoint answers HTTP 402 with a machine-readable quote until paid:
curl -i "https://data.greeneris.io/v1/fr/company?q=airbus"
Paying client in Python (~15 lines, examples/buy_with_python.py):
from eth_account import Account
from x402 import x402Client
from x402.http.clients import x402HttpxClient
from x402.mechanisms.evm.exact import register_exact_evm_client
buyer = Account.from_key(PRIVATE_KEY)
client = x402Client()
register_exact_evm_client(client, buyer)
async with x402HttpxClient(client) as http:
r = await http.get("https://data.greeneris.io/v1/eu/vat-check?cc=IE&vat=6388047V")
print(await r.aread())
TypeScript and other languages: see the official x402 SDKs.
Trust
- Official sources only: INSEE, European Commission (VIES, TED, EORI), DILA (BODACC),
GLEIF, Base Adresse Nationale, and the EU/OFAC/UN/UK/FR sanctions lists — refreshed at source frequency.
- Fail-safe billing: settlement happens only after a successful answer.
- Uptime: monitored 24/7; live status at
/agent-status.
- Payments: settled on-chain by the Coinbase x402 facilitator; every sale is
publicly auditable on x402scan.
License
The examples in this repository are MIT-licensed. The API itself is a paid service —
each response includes its source attribution.