Eu Verify

io.github.contentfactoryPublished by GitHub account contentfactoryv1.4.0Updated Oct 24, 2026

European business verification for AI agents: registry, VAT, sanctions, IBAN. Pay-per-call x402.

VerifiedStreamable HTTPWeb executableFinanceSecurity & MonitoringBusiness & Commerce

Overview

AI-generated overview

Remote MCP server for European business verification: registry, VAT, insolvency, sanctions, IBAN and LEI checks, paid per call in USDC via x402.

What you can do
  • Run one-call due diligence on French and EU companies, returning existence, insolvency, VAT and sanctions verdicts
  • Look up company registries in France and the UK, plus insolvency notices, filed accounts and LEI ownership chains
  • Validate VAT numbers, SIREN/SIRET, EORI, IBAN and email deliverability
  • Screen names against EU, OFAC, UN, UK and French sanctions lists
  • Geocode French addresses, compute French business-day deadlines and search EU public tenders
  • List the shop's products and prices with a free catalog tool
When to use it
Useful for procurement, compliance, KYB and due-diligence agents that repeatedly check European suppliers, customers or invoice details against official registries. Also handy when an assistant needs quick VAT, IBAN, EORI or sanctions checks before onboarding or paying a counterparty.
Requirements
A remote streamable HTTP endpoint; no account or API key. Each paid call costs roughly 0.001 to 0.05 USDC on Base, settled through the x402 protocol, so the client needs an x402-aware wallet or must fall back to the HTTP API. Network access to the provider is required.
Before you install
Calls spend real money in USDC from a connected wallet; the payment itself is the authentication, so wallet keys are handled by the client. Some tools query third-party registries and sanctions lists with the names or identifiers supplied. Billing is described as post-answer, but confirm pricing and wallet limits before enabling paid tools.

Installation

In SourceWeft

  1. Open Eu Verify in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.github.contentfactory%2Feu-verify/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "eu-verify": {
      "type": "http",
      "url": "https://data.greeneris.io/mcp"
    }
  }
}

README

eu-verify — European business verification for AI agents

[Listed on Smithery] · 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 toolWhat it answersSourcePrice
verify_supplier_frOne-call risk verdict: existence + insolvency + VAT + sanctionsSIRENE + BODACC + VIES + sanctions$0.05
screen_sanctionsIs this name on a sanctions list? (EU, OFAC, UN, UK, FR)5 official lists, refreshed daily$0.01
lookup_company_frDoes this French company exist? Status, NAF, HQ, financesINSEE Sirene (official)$0.005
lookup_company_ukUK company profile + officers + PSC (quasi-UBO) + risk flagsCompanies House (official)$0.01
check_insolvency_frAny insolvency / liquidation proceedings?BODACC (official gazette)$0.01
invoice_ready_frIs this SIREN invoiceable? (checksum + existence + VAT)SIRENE + VIES$0.02
validate_vat_euIs this EU VAT number valid? (pre-invoicing check)VIES (European Commission)$0.005
validate_siret_frIs this SIREN/SIRET well-formed? (offline checksum)ISO/Luhn$0.001
validate_ibanIs this IBAN valid? (85 countries, offline)ISO 13616 mod-97$0.001
check_eoriIs this EU customs (EORI) operator registered?EU EOS/DDS2 (official)$0.003
lookup_lei / lei_ownershipResolve a Legal Entity Identifier + ownership chainGLEIF (official)$0.005
verify_address_frDoes this French address exist? GeocodedBase Adresse Nationale$0.001
validate_emailWill email to this address be deliverable? Live MX checkDNS-over-HTTPS$0.005
business_days_frDeadline N business days from date X in Francecomputed (incl. holidays)$0.005
find_public_tenders_euRecent EU public tenders by sector/countryTED (Official Journal EU)$0.01
catalogEverything this shop sells—free

Plus 6 more national company registries at $0.003 (/v1/{no,cz,pl,fi,sk,ie}/company — Norway, Czechia, Poland, Finland, Slovakia, Ireland) and 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:

bash
claude mcp add --transport http eu-verify https://data.greeneris.io/mcp

Cursor / any MCP client (mcpServers config):

json
{  "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:

bash
curl -i "https://data.greeneris.io/v1/fr/company?q=airbus"# HTTP/1.1 402 Payment Required# payment-required: eyJ4NDAyVmVyc2lvbiI6Miw...   <- base64 quote (price, payTo, network)

Paying client in Python (~15 lines, examples/buy_with_python.py):

python
from eth_account import Accountfrom x402 import x402Clientfrom x402.http.clients import x402HttpxClientfrom x402.mechanisms.evm.exact import register_exact_evm_client
buyer = Account.from_key(PRIVATE_KEY)          # a wallet holding a little USDC on Baseclient = x402Client()register_exact_evm_client(client, buyer)
async with x402HttpxClient(client) as http:    # reads the 402, pays, retries    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.

Source: README.md at commit 1ac0026

Tools

19

verify_company_eu

One-call verification of a European company: official registry existence and status, insolvency signals, VAT (VIES), LEI (GLEIF), sanctions screening (EU/OFAC/UN/UK/FR), EORI and domain age, condensed into a pass/review/fail verdict with per-check source, timestamp and an explicit coverage map. Query: country=FR (FR, UK, IE, NO, FI, SK, PL, CZ, CH) and id=552032534 (national registry number). Factual verification, not a credit score. Buyers are never charged on failure. Price: $0.10 USDC per call (x402).

Parametersidrequiredleivateoridomaincountryrequired

verify_supplier_fr

One-call due diligence on a French company by SIREN or SIRET: checksum, existence and status (SIRENE), insolvency proceedings (BODACC), VAT validity (VIES) and sanctions screening across EU/OFAC/UN/UK/FR lists, condensed into a risk verdict (low, medium, high or critical) with reasons and a 0-100 score. Query: siren=NNNNNNNNN or siret=NNNNNNNNNNNNNN. Sub-checks degrade gracefully; buyers are never charged on failure. Price: $0.05 USDC per call (x402).

Parametersnumberrequired

screen_sanctions

Screen a name against the five official sanctions lists (EU, US OFAC SDN, UN, UK FCDO, French asset freezes) from a snapshot refreshed daily, with per-list dates. Query: name=NAME (optional threshold=0.6-1.0, lists=eu,ofac,un,uk,fr). Returns scored matches with entity type and programs, and a verdict: match, possible_match or no_match. Price: $0.01 USDC per call (x402).

Parametersnamerequiredliststhreshold

lookup_company_fr

Official French company registry search via recherche-entreprises.api.gouv.fr (INSEE Sirene data, updated daily). Query: ?q=airbus or ?q=383474814 (name or SIREN), optional per_page (1-10), page, code_postal, activite_principale (NAF, e.g. 70.10Z), etat_administratif (A active / C ceased). Returns SIREN, legal form, NAF, HQ address, employee range, status and published finances per company. Personal data on directors is stripped (GDPR). 24h cache. Price: $0.005 USDC per call (x402).

Parametersqrequiredper_page

lookup_company_uk

Official UK Companies House data in one paid call. Search: ?q=tesco returns matching companies (number, status, type, incorporation date). Profile: ?number=00445790 returns the full profile PLUS current officers and PSC (persons with significant control, the UK quasi-UBO register): names, roles, natures of control, risk flags (insolvency history, charges, overdue filings) and typed insolvency cases when history exists. Statutory register data, minimized. 24h cache. Price: $0.01 USDC per call (x402).

Parametersqlimitnumber

check_insolvency_fr

Legal announcements from the French BODACC official gazette for one company, by SIREN (Luhn-validated). Query: ?siren=383474814 (required), famille=collective for insolvency proceedings (optional filter), limit=10 (1-20). Returns newest-first announcements with family, tribunal, judgment nature and date, and source URL; legal entities only (GDPR-safe). Zero announcements for a valid SIREN is a clean-record signal. Source: DILA open data, daily publications. Cached 1h. Price: $0.01 USDC per call (x402).

Parameterslimitsirenrequiredfamille

lookup_financials_fr

Annual accounts filed with the French RNE (INPI). Query: ?siren=552032534 (9 digits, Luhn-validated). Returns the filing history -- closing date, filing date, type (complet/simplifie/consolide), public or confidential -- which is a KYB signal in itself. For the latest public filing it adds headline figures (revenue, operating and net result, total assets, equity) when the liasse scheme is mapped, else says not_covered rather than guessing. 24h cache. Price: $0.03 USDC per call (x402).

Parameterssirenrequired

invoice_ready_fr

One-call compliance check for the French e-invoicing reform (from 2026-09-01 the customer's SIREN is a mandatory invoice mention). Query: ?siren=552032534 or ?siret=55203253400041. Runs the Luhn checksum, confirms existence and active status in the official SIRENE registry, computes the FR VAT number and validates it live against VIES. Returns a single verdict: ready / not_ready / check_vat_manually (VIES flakiness never blocks the answer). 1h cache. Price: $0.02 USDC per call (x402).

Parametersnumberrequired

validate_vat_eu

Live intra-EU VAT number validation via the European Commission VIES REST API (real-time query of the member state registry). Query: ?cc=IE&vat=6388047V (cc = member state code incl. EL/XI, vat = number without country prefix). Returns is_valid, the trader name and address as registered (when the member state publishes them) and request_date (compliance timestamp); 24h cache. Price: $0.005 USDC per call (x402).

Parametersvatrequiredcountryrequired

validate_siret_fr

Instant pre-validation of French company numbers before invoicing or costly Sirene API calls. Auto-detects SIREN (9 digits) vs SIRET (14 digits), applies the INSEE Luhn rule and the documented La Poste exception (356000000*: digit sum mod 5). Query: ?number=44306184100047 (spaces/dots/dashes tolerated). Returns valid, type, siren, nic and the rule applied. Pure offline computation, 1y cache. Price: $0.001 USDC per call (x402).

Parametersnumberrequired

validate_iban

Deterministic IBAN check before a SEPA/international transfer: format regex, per-country length (public SWIFT registry, ~85 countries) and ISO 7064 mod-97 checksum. Query: ?iban=FR1420041010050500013M02606 (spaces/dashes tolerated). Returns valid, country, bban, and a precise failure reason. Pure offline computation, 1y cache. Price: $0.001 USDC per call (x402).

Parametersibanrequired

check_eori

Live EORI (Economic Operators Registration and Identification) validation via the European Commission EOS/DDS2 service -- the number every business needs to clear customs in the EU. Query: ?eori=FR38347481400100 (2-letter country + up to 15 alphanumerics). Returns valid true/false plus registered name and address when the operator consented to publication. SOAP upstream, clean JSON out; 24h cache. Price: $0.003 USDC per call (x402).

Parameterseorirequired

lookup_lei

Legal entity reference data from the GLEIF LEI golden copy (updated daily, CC0). Direct lookup: ?lei=529900FCMZ4LKXFD0R69. Search: ?name=airbus&country=FR&limit=5. Each result: lei, legal_name, entity_status, registration_status (ISSUED/LAPSED), jurisdiction, legal_form_id, hq_city/country, next_renewal_date. 24h cache. Price: $0.005 USDC per call (x402).

Parametersleinamelimitcountry

lei_ownership

Who owns whom, from the official GLEIF LEI graph (CC0 licensed, covers 2.5M+ legal entities worldwide). Query: ?lei=5493001KJTIIGC8Y1R12. Four GLEIF lookups in one call: entity name and status, declared direct parent, ultimate parent, plus the total count and a 10-entity sample of direct children. Unknown LEI returns found=false. 24h cache. Price: $0.005 USDC per call (x402).

Parametersleirequired

verify_address_fr

French address geocoding on the official Base Adresse Nationale (api-adresse.data.gouv.fr, Etalab/IGN, continuously updated). Forward: ?q=8 boulevard du port amiens with optional &type=housenumber|street|locality|municipality &citycode=80021 (INSEE filter). Reverse: ?lat=49.897&lon=2.290. &limit=1-10 (default 3). Each match returns normalized label, confidence score, lat/lon, street, postcode, city, INSEE citycode and context. No match returns 400 (not billed). Cached 24h. Price: $0.001 USDC per call (x402).

Parametersqrequiredlimit

validate_email

One-call email verification for lead qualification and list hygiene: RFC 5322 syntax check, then a live MX lookup over DNS-over-HTTPS (Cloudflare, Google fallback). Detects non-existent domains (NXDOMAIN), null-MX domains that refuse mail (RFC 7505), and returns prioritized MX hosts. Query: [email protected]. Verdict: deliverable | risky | undeliverable. 1h cache per address. Price: $0.005 USDC per call (x402).

Parametersemailrequired

business_days_fr

Adds N French business days to a date (?start=2026-07-13&add=30) or counts them over a range (?from=2026-07-01&to=2026-09-30). Skips weekends and the 11 French legal public holidays (movable feasts computed via Butcher-Meeus). mode=ouvres (Mon-Fri, default) or ouvrables (Mon-Sat). Deterministic local computation, JSON. Price: $0.005 USDC per call (x402).

Parametersaddstartrequired

find_public_tenders_eu

Fresh EU public procurement notices from TED (Tenders Electronic Daily, official Publications Office API, new notices daily). Query: ?cpv=48000000&country=FRA&days_back=7&limit=10 (cpv = 8-digit CPV code, country = 3-letter buyer country, all optional). Each notice: publication_number, publication_date, title, buyer_name, tender deadline, notice URL. 1h cache. Price: $0.01 USDC per call (x402).

Parameterscpvlimitcountrydays_back

catalog

FREE. Lists every product of this data shop: HTTP endpoint, price in USDC, and one-line summary. Use it to discover capabilities before paying.

Takes no parameters.

Version history

1
  1. v1.4.0LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts