# io.github.contentfactory/eu-verify (remote · data.greeneris.io)

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

- Trust score: 62/100 (medium)
- Change this week: +6
- Registry status: active
- Liveness: live
- Owner verified: no
- Last scored: 2026-08-03

## Components

- remote · `data.greeneris.io`: 62/100 (this document), [markdown](https://verifymcp.io/servers/contentfactory-eu-verify/data.md), [page](https://verifymcp.io/servers/contentfactory-eu-verify/data)

## Channel facts

- Endpoint: `https://data.greeneris.io/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `1.4.0`

## Trust breakdown

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. Scores are 0–100 per category. Scoring method: https://verifymcp.io/docs/scoring (what has changed: https://verifymcp.io/docs/scoring/changelog)

Scored 2026-08-03.

- **Endpoint Security**: 57/100
  - The endpoint's TLS certificate is valid, in date, and uses a strong key.
  - Authorisation not fully verified: no authorisation is required to call this server, and 19 tool(s) never declared a destructiveHint. The MCP spec treats an absent hint as destructive by default, so we cannot call this surface safe.
  - HTTPS is enforced; there's no plaintext access path.
  - HSTS check failed: the Strict-Transport-Security header is absent.
  - DNSSEC check failed: this domain isn't protected by DNSSEC.
- **Transport & Reachability**: 100/100
  - Verified streamable-http transport via a live MCP handshake.
- **Schema Quality & AI Usability**: 63/100
  - AI-judged instruction clarity (good).
  - Context-footprint check failed: tool/resource definitions use about 2802 tokens (~147/item across 19 items; 19 tools + 0 resources), over budget; trim descriptions and params.
  - Usage-examples check failed: none of the tools include examples.
- **Stability & Change Management**: 27/100
  - Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.
- **Tool Coverage**: 71/100
  - 100% of tools have a non-trivial description (not blank, and not just the tool's name).
  - 0% of tool parameters carry a description.
  - Structured output schemas are declared (5% of tools); any adoption earns full credit.
- **Capabilities**: 100/100
  - Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.

## Install

### Claude

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

### Codex

```toml
[mcp_servers.contentfactory-eu-verify]
url = "https://data.greeneris.io/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "contentfactory-eu-verify": {
      "type": "remote",
      "url": "https://data.greeneris.io/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add contentfactory-eu-verify --url https://data.greeneris.io/mcp --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  contentfactory-eu-verify:
    url: "https://data.greeneris.io/mcp"
```

### Other

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

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

## Changelog

Every change recorded for this component, newest first. Days that predate change tracking, or that we cannot explain, say so: "we were watching and nothing happened" and "we were not watching" are different claims.

### 2026-08-03 (score 62, +1)

No change was recorded against any check on this day. Stability & Change Management went from 23 to 27. That category is still filling its 30-day observation window: 7 days of observed history at the previous scan, 8 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-08-01 (score 61, +1)

No change was recorded against any check on this day. Stability & Change Management went from 17 to 20. That category is still filling its 30-day observation window: 5 days of observed history at the previous scan, 6 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-31 (score 60, +2)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-30 (score 58, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-29 (score 58, +1)

No change was recorded against any check on this day. Stability & Change Management went from 7 to 10. That category is still filling its 30-day observation window: 2 days of observed history at the previous scan, 3 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-28 (score 57, +1)

No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

### 2026-07-27 (score 56, 0)

- [functional] We updated how we score, so this day's move reflects our rubric, not a change to the server

### 2026-07-26 (score 56)

First indexed and scored.

## MCP tools (19)

### `verify_company_eu` (~188 tokens)

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

Input parameters:

- `country` (string, required)
- `domain` (string)
- `eori` (string)
- `id` (string, required)
- `lei` (string)
- `vat` (string)

### `verify_supplier_fr` (~146 tokens)

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

Input parameters:

- `number` (string, required)

### `screen_sanctions` (~136 tokens)

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

Input parameters:

- `lists` (string)
- `name` (string, required)
- `threshold` (number)

### `lookup_company_fr` (~166 tokens)

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

Input parameters:

- `per_page` (integer)
- `q` (string, required)

### `lookup_company_uk` (~150 tokens)

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

Input parameters:

- `limit` (integer)
- `number` (string)
- `q` (string)

### `check_insolvency_fr` (~159 tokens)

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

Input parameters:

- `famille` (string)
- `limit` (integer)
- `siren` (string, required)

### `lookup_financials_fr` (~144 tokens)

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

Input parameters:

- `siren` (string, required)

### `invoice_ready_fr` (~145 tokens)

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

Input parameters:

- `number` (string, required)

### `validate_vat_eu` (~128 tokens)

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

Input parameters:

- `country` (string, required)
- `vat` (string, required)

### `validate_siret_fr` (~132 tokens)

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

Input parameters:

- `number` (string, required)

### `validate_iban` (~115 tokens)

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

Input parameters:

- `iban` (string, required)

### `check_eori` (~120 tokens)

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

Input parameters:

- `eori` (string, required)

### `lookup_lei` (~150 tokens)

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

Input parameters:

- `country` (string)
- `lei` (string)
- `limit` (integer)
- `name` (string)

### `lei_ownership` (~127 tokens)

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

Input parameters:

- `lei` (string, required)

### `verify_address_fr` (~170 tokens)

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

Input parameters:

- `limit` (integer)
- `q` (string, required)

### `validate_email` (~120 tokens)

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

Input parameters:

- `email` (string, required)

### `business_days_fr` (~135 tokens)

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

Input parameters:

- `add` (integer)
- `start` (string, required)

### `find_public_tenders_eu` (~148 tokens)

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

Input parameters:

- `country` (string)
- `cpv` (string)
- `days_back` (integer)
- `limit` (integer)

### `catalog` (~38 tokens)

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

Output parameters:

- `result` (string)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/contentfactory-eu-verify/data#diagnostics

## Score history

- 2026-08-03: 62
- 2026-08-02: 61
- 2026-08-01: 61
- 2026-07-31: 60
- 2026-07-30: 58
- 2026-07-29: 58
- 2026-07-28: 57
- 2026-07-27: 56
- 2026-07-26: 56

## Links

- Remote endpoint: https://data.greeneris.io/mcp
- Repository: https://github.com/contentfactory/eu-verify
- Website: https://data.greeneris.io/
- Changelog RSS feed: https://verifymcp.io/servers/contentfactory-eu-verify/data/changelog.xml
- Changelog JSON feed: https://verifymcp.io/servers/contentfactory-eu-verify/data/changelog.json
- HTML version of this page: https://verifymcp.io/servers/contentfactory-eu-verify/data
