# French Due Diligence (remote · mcp-fr.opendata-apis.workers.dev)

Free, keyless French company checks (Sirene, BODACC, VIES, asset freezes) and DPE rental compliance

- Trust score: not yet scored
- Registry status: active
- Liveness: live
- Owner verified: no

## Components

- remote · `mcp-fr.opendata-apis.workers.dev`: not yet scored (this document), [markdown](https://verifymcp.io/servers/zansuken-french-due-diligence/mcp-fr.md), [page](https://verifymcp.io/servers/zansuken-french-due-diligence/mcp-fr)

## Channel facts

- Endpoint: `https://mcp-fr.opendata-apis.workers.dev/mcp`
- Transports: `streamable-http`
- Auth: `none`
- Version: `0.4.0`

## Trust breakdown

No category breakdown is available for this channel yet.

## Install

### How do I install the French Due Diligence MCP server?

French Due Diligence is a hosted endpoint at https://mcp-fr.opendata-apis.workers.dev/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

### Claude

```bash
claude mcp add --transport http zansuken-french-due-diligence 'https://mcp-fr.opendata-apis.workers.dev/mcp'
```

### Cursor

```json
{
  "mcpServers": {
    "zansuken-french-due-diligence": {
      "url": "https://mcp-fr.opendata-apis.workers.dev/mcp"
    }
  }
}
```

### VS Code

```json
{
  "servers": {
    "zansuken-french-due-diligence": {
      "type": "http",
      "url": "https://mcp-fr.opendata-apis.workers.dev/mcp"
    }
  }
}
```

### Codex

```toml
[mcp_servers.zansuken-french-due-diligence]
url = "https://mcp-fr.opendata-apis.workers.dev/mcp"
```

### opencode

```json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "zansuken-french-due-diligence": {
      "type": "remote",
      "url": "https://mcp-fr.opendata-apis.workers.dev/mcp",
      "enabled": true
    }
  }
}
```

### OpenClaw

```bash
openclaw mcp add zansuken-french-due-diligence --url 'https://mcp-fr.opendata-apis.workers.dev/mcp' --transport streamable-http
```

### Hermes

```yaml
mcp_servers:
  zansuken-french-due-diligence:
    url: "https://mcp-fr.opendata-apis.workers.dev/mcp"
```

### Netclaw

```json
{
  "McpServers": {
    "zansuken-french-due-diligence": {
      "Transport": "http",
      "Url": "https://mcp-fr.opendata-apis.workers.dev/mcp"
    }
  }
}
```

### Vellum

```bash
assistant mcp add zansuken-french-due-diligence -t streamable-http -u 'https://mcp-fr.opendata-apis.workers.dev/mcp'
```

### Other

```json
{
  "mcpServers": {
    "zansuken-french-due-diligence": {
      "type": "http",
      "url": "https://mcp-fr.opendata-apis.workers.dev/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.

We have not recorded any changes for this component yet.

## MCP tools (9)

### `validate_identifier` (~84 tokens)

Validate a French company identifier

Checks a French SIREN (9 digits), SIRET (14 digits) or intra-EU VAT number (FR + 11 characters): format, checksum, and whether the registered company or establishment exists. Use it first when an identifier was typed by a person.

Input parameters:

- `id` (string, required): SIREN, SIRET or FR VAT number; spaces allowed

### `check_vat` (~205 tokens)

Check a French VAT number in VIES

Checks live in VIES, the European Commission's VAT register, whether a French VAT number (or the VAT number of a SIREN or SIRET) is valid, with the name and address declared for VAT, crossed with the French registry: company active, insolvency proceeding, and a name_matches consistency signal between the VIES name and the registered name (not a proof of ownership). To confirm the number belongs to a given company, compare the returned names with that company's name. Pass requester_vat (the user's own EU VAT number) to get a VIES consultation number, proof of the check. vies.status 'unavailable' means VIES could not answer: try again later, it does not mean invalid.

Input parameters:

- `number` (string, required): FR VAT number, SIREN or SIRET; spaces allowed
- `requester_vat` (string): The user's own EU VAT number, e.g. DE811569869, for a consultation number

### `search_companies` (~115 tokens)

Search French companies

Finds French companies by name, optionally narrowed by department (e.g. 75, 2A, 971), postal code or NAF activity code (e.g. 10.71C). Returns up to 10 companies with their SIREN. Use get_company next for the full profile.

Input parameters:

- `activity_code` (string): NAF rév. 2 code
- `department` (string)
- `name` (string): Company name, 3 characters minimum
- `postal_code` (string)

### `get_company` (~82 tokens)

Get a French company's profile and insolvency status

Profile of a French company by SIREN: legal name and form, activity, active or ceased, head office, officers (name and role), whether an insolvency proceeding is ongoing (in_insolvency) and its latest BODACC court announcements. Use it to answer 'can I do business with this company?'.

Input parameters:

- `siren` (string, required)

### `screen_sanctions` (~185 tokens)

Screen a French company against asset freezes

Screens a French company and its officers (people, with their month of birth, and companies) against the French national asset-freeze register (registre national des gels: UN, EU and French measures). result is clear, possible_match or strong_match; each match gives the register entry, its legal bases and its official page. A match is a lead to check on that page, not a decision; a different date of birth already rules namesakes out. strong: a person with the same name and year and month of birth, or a company whose own SIREN or SIRET the register entry lists; a same-named company without it is only possible. Beneficial owners, foreign lists (OFAC, UK) and politically exposed persons are not covered.

Input parameters:

- `number` (string, required): SIREN, SIRET or FR VAT number; spaces allowed

### `get_public_contracts` (~220 tokens)

Get the public contracts a French company won

Public contracts a French company won (DECP, French public procurement data): their count, the summed maximum amounts (leaving out amounts the source flags as suspect or aberrant, given apart), first and latest notification, then the contracts newest first, 20 per page, with buyer, object, maximum amount, CPV code, procedure, duration and place; plus the company's name, whether it is active and whether an insolvency proceeding is ongoing. Amounts are ceilings declared by buyers (maximum estimated, excl. VAT), not spend or revenue; the count is approximate (computed by the source: a contract held by two establishments counts twice, and a holder whose identifier merely contains the SIREN may be included). Narrow with from and to (notification dates).

Input parameters:

- `from` (string): Notified on or after, YYYY-MM-DD
- `page` (integer): Page of 20 contracts, from 1
- `siren` (string, required)
- `to` (string): Notified on or before, YYYY-MM-DD

### `get_establishment` (~55 tokens)

Get a French establishment by SIRET

One establishment of a French company by SIRET: address, NAF activity, open or closed, head office or not. Use it to check a supplier's or invoice's address.

Input parameters:

- `siret` (string, required)

### `check_rental_compliance` (~151 tokens)

Check whether a French dwelling can be rented (DPE)

For a French postal address, returns each dwelling's energy performance certificate (DPE) and its rental verdict under the Climate and Resilience law: rentable now or not, rent frozen or not, ban date (G 2025, F 2028, E 2034), DPE validity, and the label estimated under current electricity rules. Narrow with floor, surface or address complement. Information, not legal advice.

Input parameters:

- `address` (string, required): Full address with house number, postcode and town
- `complement` (string): e.g. 'Apt 12', 'Bât B'
- `floor` (integer)
- `surface` (number): Living area in m²

### `get_dpe` (~77 tokens)

Get a French DPE and its rental verdict by number

The dwelling of a French DPE (energy performance certificate) by its 13-character number (e.g. 2569E0160739C), with the same rental verdict as check_rental_compliance. Replaced DPEs are not available: the ADEME dataset drops them.

Input parameters:

- `dpe_number` (string, required)

## Diagnostics

Captured diagnostic sections: TLS, DNSSEC, Authorisation, Transports. The full working is on the page: https://verifymcp.io/servers/zansuken-french-due-diligence/mcp-fr#diagnostics

## Common questions

### What is the French Due Diligence MCP server?

French Due Diligence is an MCP server listed in the public MCP registry as io.github.Zansuken/french-due-diligence. Free, keyless French company checks (Sirene, BODACC, VIES, asset freezes) and DPE rental compliance. This page covers its hosted endpoint (https://mcp-fr.opendata-apis.workers.dev/mcp).

### What tools does the French Due Diligence MCP server expose?

French Due Diligence exposes 9 tools: validate_identifier, check_vat, search_companies, get_company, screen_sanctions, and 4 more. Their descriptions and schemas cost roughly 1,174 tokens of context every time the server is loaded.

### Does the French Due Diligence MCP server require authentication?

No. We connected to French Due Diligence without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

## Links

- Remote endpoint: https://mcp-fr.opendata-apis.workers.dev/mcp
- Changelog RSS feed: https://verifymcp.io/servers/zansuken-french-due-diligence/mcp-fr.xml
- Changelog JSON feed: https://verifymcp.io/servers/zansuken-french-due-diligence/mcp-fr.json
- HTML version of this page: https://verifymcp.io/servers/zansuken-french-due-diligence/mcp-fr
