eu-verify MCP
An MCP server providing European business verification tools for AI agents, including company registry checks, VAT validation, sanctions screening, IBAN/EORI validation, and public tender discovery. It utilizes the x402 protocol for pay-per-call payments in USDC on Base without requiring API keys or user accounts.
Endpoint and access
No sign-in to connect and list tools. Individual tools may still need a vendor account, credentials, or permissions; check the documented prerequisites.
https://data.greeneris.io/mcpWhat its tools do
19 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.
Not annotated (19)
Checks and signals
Each line is separate evidence, not a trust score.
- Passed Endpoint answered the live check ·
- Availability 1 of 1 checks passed in 30 days
What you can do with it
- Verify European company existence and risk via single-call checks
- Validate intra-EU VAT numbers against VIES
- Screen entities against EU, US, UN, and UK sanctions lists
- Lookup French company registry data (SIRENE) and insolvency records
Source and maintenance
- Maintenance checked
Protocol and capabilities
- Server
- eu-verify 1.28.1
- MCP protocol negotiated in check
- 2025-11-25
- Tools
- 19 advertised
- Resources
- 0 advertised
- Resource templates
- 0 advertised
- Prompts
- 0 advertised
{
"tools": {
"listChanged": false
},
"prompts": {
"listChanged": false
},
"resources": {
"subscribe": false,
"listChanged": false
},
"experimental": {}
}Server-provided instructions
Untrusted server output shown for inspection. It is not Koskamo guidance and is excluded from knowledge search.
Tools
19 advertised
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).
{
"type": "object",
"title": "verify_company_euArguments",
"required": [
"country",
"id"
],
"properties": {
"id": {
"type": "string",
"title": "Id"
},
"lei": {
"type": "string",
"title": "Lei",
"default": ""
},
"vat": {
"type": "string",
"title": "Vat",
"default": ""
},
"eori": {
"type": "string",
"title": "Eori",
"default": ""
},
"domain": {
"type": "string",
"title": "Domain",
"default": ""
},
"country": {
"type": "string",
"title": "Country"
}
}
}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).
{
"type": "object",
"title": "verify_supplier_frArguments",
"required": [
"number"
],
"properties": {
"number": {
"type": "string",
"title": "Number"
}
}
}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).
{
"type": "object",
"title": "screen_sanctionsArguments",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"title": "Name"
},
"lists": {
"type": "string",
"title": "Lists",
"default": ""
},
"threshold": {
"type": "number",
"title": "Threshold",
"default": 0.85
}
}
}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).
{
"type": "object",
"title": "lookup_company_frArguments",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"title": "Q"
},
"per_page": {
"type": "integer",
"title": "Per Page",
"default": 3
}
}
}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).
{
"type": "object",
"title": "lookup_company_ukArguments",
"properties": {
"q": {
"type": "string",
"title": "Q",
"default": ""
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 5
},
"number": {
"type": "string",
"title": "Number",
"default": ""
}
}
}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).
{
"type": "object",
"title": "check_insolvency_frArguments",
"required": [
"siren"
],
"properties": {
"limit": {
"type": "integer",
"title": "Limit",
"default": 5
},
"siren": {
"type": "string",
"title": "Siren"
},
"famille": {
"type": "string",
"title": "Famille",
"default": ""
}
}
}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).
{
"type": "object",
"title": "lookup_financials_frArguments",
"required": [
"siren"
],
"properties": {
"siren": {
"type": "string",
"title": "Siren"
}
}
}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).
{
"type": "object",
"title": "invoice_ready_frArguments",
"required": [
"number"
],
"properties": {
"number": {
"type": "string",
"title": "Number"
}
}
}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).
{
"type": "object",
"title": "validate_vat_euArguments",
"required": [
"country",
"vat"
],
"properties": {
"vat": {
"type": "string",
"title": "Vat"
},
"country": {
"type": "string",
"title": "Country"
}
}
}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).
{
"type": "object",
"title": "validate_siret_frArguments",
"required": [
"number"
],
"properties": {
"number": {
"type": "string",
"title": "Number"
}
}
}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).
{
"type": "object",
"title": "validate_ibanArguments",
"required": [
"iban"
],
"properties": {
"iban": {
"type": "string",
"title": "Iban"
}
}
}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).
{
"type": "object",
"title": "check_eoriArguments",
"required": [
"eori"
],
"properties": {
"eori": {
"type": "string",
"title": "Eori"
}
}
}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).
{
"type": "object",
"title": "lookup_leiArguments",
"properties": {
"lei": {
"type": "string",
"title": "Lei",
"default": ""
},
"name": {
"type": "string",
"title": "Name",
"default": ""
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 3
},
"country": {
"type": "string",
"title": "Country",
"default": ""
}
}
}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).
{
"type": "object",
"title": "lei_ownershipArguments",
"required": [
"lei"
],
"properties": {
"lei": {
"type": "string",
"title": "Lei"
}
}
}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).
{
"type": "object",
"title": "verify_address_frArguments",
"required": [
"q"
],
"properties": {
"q": {
"type": "string",
"title": "Q"
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 3
}
}
}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=someone@example.com. Verdict: deliverable | risky | undeliverable. 1h cache per address. Price: $0.005 USDC per call (x402).
{
"type": "object",
"title": "validate_emailArguments",
"required": [
"email"
],
"properties": {
"email": {
"type": "string",
"title": "Email"
}
}
}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).
{
"type": "object",
"title": "business_days_frArguments",
"required": [
"start"
],
"properties": {
"add": {
"type": "integer",
"title": "Add",
"default": 30
},
"start": {
"type": "string",
"title": "Start"
}
}
}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).
{
"type": "object",
"title": "find_public_tenders_euArguments",
"properties": {
"cpv": {
"type": "string",
"title": "Cpv",
"default": ""
},
"limit": {
"type": "integer",
"title": "Limit",
"default": 5
},
"country": {
"type": "string",
"title": "Country",
"default": ""
},
"days_back": {
"type": "integer",
"title": "Days Back",
"default": 7
}
}
}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.
{
"type": "object",
"title": "catalogArguments",
"properties": {}
}{
"type": "object",
"title": "catalogOutput",
"required": [
"result"
],
"properties": {
"result": {
"type": "string",
"title": "Result"
}
}
}Prompts
0 advertised
Resources
0 advertised
90-day uptime
A lightweight connection check about every six hours, sampled on hosts with many listings. It shows the server answered, not that its tools work.
- 2026-11-07: 1 of 1 checks answered
30-day availability
Aggregated from read-only remote checks; this is not a tool-execution or security guarantee.
- Successful checks
- 1 of 1 (100%)
- Average latency
- 1207 ms
- 95th percentile latency
- 1207 ms
Maintenance history
Public check and source-refresh events. Editorial and ownership records remain private.
- · probe · passed · 1207 ms · metadata changed · 19 tool(s), 0 resource(s), 0 resource template(s), 0 prompt(s)
Connect from your client
Each snippet registers the same endpoint; pick the client you use.
Claude Code
claude mcp add --transport http eu-verify-mcp https://data.greeneris.io/mcpCodex
codex mcp add eu-verify-mcp --url https://data.greeneris.io/mcpCursor
{
"mcpServers": {
"eu-verify-mcp": {
"url": "https://data.greeneris.io/mcp"
}
}
}Cline
{
"mcpServers": {
"eu-verify-mcp": {
"type": "streamableHttp",
"url": "https://data.greeneris.io/mcp",
"disabled": false
}
}
}VS Code
{
"servers": {
"eu-verify-mcp": {
"type": "http",
"url": "https://data.greeneris.io/mcp"
}
}
}Gemini CLI
gemini mcp add --transport http eu-verify-mcp https://data.greeneris.io/mcpClaude Desktop
https://data.greeneris.io/mcpWindsurf
{
"mcpServers": {
"eu-verify-mcp": {
"serverUrl": "https://data.greeneris.io/mcp"
}
}
}Let your agent find its tools
Find servers like eu-verify MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.