Koskamo

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.

eu-verify MCP logo, by GreenerisCommunity listingStreamable HTTPNo sign-inEndpoint checked 2026-11-06Published by Greeneris
You need:No account, no API key
MCP endpoint (Streamable HTTP)
https://data.greeneris.io/mcp
Vendor documentation

What its tools do

19 tools, grouped by the hints the server advertises. Hints are self-declared, not verified behavior.

19 of 19 have a description · 0 of 19 declare behavior hints · 0 of 18 with parameters document them all

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

Community listingRegistry 1.4.0
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
Server-advertised capabilities
{
  "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.

European business verification for AI agents. Flagship: verify_company_eu, a one-call pass/review/fail verdict on any company across 9 national registries (FR, UK, IE, NO, FI, SK, PL, CZ, CH) -- existence, status, insolvency signals, VAT, LEI, sanctions, EORI, domain age, with per-check sources and timestamps. Plus per-country lookups, sanctions screening, VAT/SIRET/IBAN/EORI validation, LEI resolution, address and email checks, French business-day deadlines and EU public tenders. Paid per call in USDC on Base via the x402 protocol: call a tool, receive a payment quote in _meta, retry with payment attached (any x402-aware MCP client automates this). Full HTTP catalog (50+ data endpoints): https://data.greeneris.io/llms.txt

Tools

19 advertised

verify_company_eu
Advertised by the server during the last successful anonymous check.

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).

verify_company_eu input schema
{
  "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
Advertised by the server during the last successful anonymous check.

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).

verify_supplier_fr input schema
{
  "type": "object",
  "title": "verify_supplier_frArguments",
  "required": [
    "number"
  ],
  "properties": {
    "number": {
      "type": "string",
      "title": "Number"
    }
  }
}
screen_sanctions
Advertised by the server during the last successful anonymous check.

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).

screen_sanctions input schema
{
  "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
Advertised by the server during the last successful anonymous check.

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).

lookup_company_fr input schema
{
  "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
Advertised by the server during the last successful anonymous check.

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).

lookup_company_uk input schema
{
  "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
Advertised by the server during the last successful anonymous check.

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).

check_insolvency_fr input schema
{
  "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
Advertised by the server during the last successful anonymous check.

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).

lookup_financials_fr input schema
{
  "type": "object",
  "title": "lookup_financials_frArguments",
  "required": [
    "siren"
  ],
  "properties": {
    "siren": {
      "type": "string",
      "title": "Siren"
    }
  }
}
invoice_ready_fr
Advertised by the server during the last successful anonymous check.

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).

invoice_ready_fr input schema
{
  "type": "object",
  "title": "invoice_ready_frArguments",
  "required": [
    "number"
  ],
  "properties": {
    "number": {
      "type": "string",
      "title": "Number"
    }
  }
}
validate_vat_eu
Advertised by the server during the last successful anonymous check.

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).

validate_vat_eu input schema
{
  "type": "object",
  "title": "validate_vat_euArguments",
  "required": [
    "country",
    "vat"
  ],
  "properties": {
    "vat": {
      "type": "string",
      "title": "Vat"
    },
    "country": {
      "type": "string",
      "title": "Country"
    }
  }
}
validate_siret_fr
Advertised by the server during the last successful anonymous check.

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).

validate_siret_fr input schema
{
  "type": "object",
  "title": "validate_siret_frArguments",
  "required": [
    "number"
  ],
  "properties": {
    "number": {
      "type": "string",
      "title": "Number"
    }
  }
}
validate_iban
Advertised by the server during the last successful anonymous check.

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).

validate_iban input schema
{
  "type": "object",
  "title": "validate_ibanArguments",
  "required": [
    "iban"
  ],
  "properties": {
    "iban": {
      "type": "string",
      "title": "Iban"
    }
  }
}
check_eori
Advertised by the server during the last successful anonymous check.

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).

check_eori input schema
{
  "type": "object",
  "title": "check_eoriArguments",
  "required": [
    "eori"
  ],
  "properties": {
    "eori": {
      "type": "string",
      "title": "Eori"
    }
  }
}
lookup_lei
Advertised by the server during the last successful anonymous check.

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).

lookup_lei input schema
{
  "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
Advertised by the server during the last successful anonymous check.

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).

lei_ownership input schema
{
  "type": "object",
  "title": "lei_ownershipArguments",
  "required": [
    "lei"
  ],
  "properties": {
    "lei": {
      "type": "string",
      "title": "Lei"
    }
  }
}
verify_address_fr
Advertised by the server during the last successful anonymous check.

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).

verify_address_fr input schema
{
  "type": "object",
  "title": "verify_address_frArguments",
  "required": [
    "q"
  ],
  "properties": {
    "q": {
      "type": "string",
      "title": "Q"
    },
    "limit": {
      "type": "integer",
      "title": "Limit",
      "default": 3
    }
  }
}
validate_email
Advertised by the server during the last successful anonymous check.

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).

validate_email input schema
{
  "type": "object",
  "title": "validate_emailArguments",
  "required": [
    "email"
  ],
  "properties": {
    "email": {
      "type": "string",
      "title": "Email"
    }
  }
}
business_days_fr
Advertised by the server during the last successful anonymous check.

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).

business_days_fr input schema
{
  "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
Advertised by the server during the last successful anonymous check.

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).

find_public_tenders_eu input schema
{
  "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
Advertised by the server during the last successful anonymous check.

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

catalog input schema
{
  "type": "object",
  "title": "catalogArguments",
  "properties": {}
}
catalog output schema
{
  "type": "object",
  "title": "catalogOutput",
  "required": [
    "result"
  ],
  "properties": {
    "result": {
      "type": "string",
      "title": "Result"
    }
  }
}

Prompts

0 advertised

No prompt definitions available.

Resources

0 advertised

No resource definitions available.

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.

Too few checks for a percentage yet (1 of 1 answered).

  1. 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.

This server is operated by the named third party. Listing and endpoint checks are not an endorsement or a security audit. Review the operator's permissions, terms, and data handling before connecting. How listings are checked and corrected.

Claude Code

Run this once in a terminal. It registers the remote server. Use --scope project to write .mcp.json for the repo.
Claude Code configuration
claude mcp add --transport http eu-verify-mcp https://data.greeneris.io/mcp

Codex

Run this once. Codex stores MCP servers in ~/.codex/config.toml (or .codex/config.toml in a trusted project).
Codex configuration
codex mcp add eu-verify-mcp --url https://data.greeneris.io/mcp

Cursor

Merge this server into .cursor/mcp.json in your project, then enable eu-verify-mcp in your MCP settings.
Cursor configuration
{
  "mcpServers": {
    "eu-verify-mcp": {
      "url": "https://data.greeneris.io/mcp"
    }
  }
}

Cline

Merge this into cline_mcp_settings.json (Cline → MCP Servers → Configure).
Cline configuration
{
  "mcpServers": {
    "eu-verify-mcp": {
      "type": "streamableHttp",
      "url": "https://data.greeneris.io/mcp",
      "disabled": false
    }
  }
}

VS Code

Merge this server into .vscode/mcp.json. Use MCP: List Servers to start eu-verify-mcp and inspect its tools.
VS Code configuration
{
  "servers": {
    "eu-verify-mcp": {
      "type": "http",
      "url": "https://data.greeneris.io/mcp"
    }
  }
}

Gemini CLI

Run this once. It writes .gemini/settings.json in the current project; pass --scope user for ~/.gemini/settings.json.
Gemini CLI configuration
gemini mcp add --transport http eu-verify-mcp https://data.greeneris.io/mcp

Claude Desktop

Open Claude Settings > Connectors > Add custom connector, enter this server URL and enable it for the conversation. This is a manual remote-connector handoff, not a desktop JSON configuration.
Claude Desktop configuration
https://data.greeneris.io/mcp

Windsurf

Merge this into ~/.codeium/windsurf/mcp_config.json, then refresh MCP in Cascade. Windsurf remote servers use serverUrl, not url.
Windsurf configuration
{
  "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.