French Due Diligence
by Zansuken · remote · no sign-in to list tools · v0.4.0 · published by GitHub user Zansuken
Free, keyless French company checks (Sirene, BODACC, VIES, asset freezes) and DPE rental compliance
9 tools: 3 change things and 6 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things3Claude Code: ask: see these tools
- Only reads6Claude Code: allow: see these tools
No check matched anything in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http french-due-diligence https://mcp-fr.opendata-apis.workers.dev/mcpTools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
9 tools
Changes things 3Claude Code: ask
check_rental_complianceFor 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 fro…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- title: Check whether a French dwelling can be rented (DPE)
- readOnlyHint: true
- openWorldHint: true
check_vatChecks 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 VA…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- title: Check a French VAT number in VIES
- readOnlyHint: true
- openWorldHint: true
screen_sanctionsScreens 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 a…No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it 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.
Annotations the server declares
- title: Screen a French company against asset freezes
- readOnlyHint: true
- openWorldHint: true
Only reads 6Claude Code: allow
get_companyProfile 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_insolv…No findings
Why it is in this group
- The name "get_company" says "get": a word for reading.
Description, as the server wrote it 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?'.
Annotations the server declares
- title: Get a French company's profile and insolvency status
- readOnlyHint: true
- openWorldHint: true
get_dpeThe dwelling of a French DPE (energy performance certificate) by its 13-character number (e.g.No findings
Why it is in this group
- The name "get_dpe" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Get a French DPE and its rental verdict by number
- readOnlyHint: true
- openWorldHint: true
get_establishmentOne establishment of a French company by SIRET: address, NAF activity, open or closed, head office or not.No findings
Why it is in this group
- The name "get_establishment" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Get a French establishment by SIRET
- readOnlyHint: true
- openWorldHint: true
get_public_contractsPublic 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, …No findings
Why it is in this group
- The name "get_public_contracts" says "get": a word for reading.
Description, as the server wrote it 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).
Annotations the server declares
- title: Get the public contracts a French company won
- readOnlyHint: true
- openWorldHint: true
search_companiesFinds French companies by name, optionally narrowed by department (e.g.No findings
Why it is in this group
- The name "search_companies" says "search": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Search French companies
- readOnlyHint: true
- openWorldHint: true
validate_identifierChecks 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.No findings
Why it is in this group
- The name "validate_identifier" says "validate": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Validate a French company identifier
- readOnlyHint: true
- openWorldHint: true
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 0.4.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http french-due-diligence https://mcp-fr.opendata-apis.workers.dev/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__french-due-diligence__validate_identifier",
"mcp__french-due-diligence__search_companies",
"mcp__french-due-diligence__get_company",
"mcp__french-due-diligence__get_public_contracts",
"mcp__french-due-diligence__get_establishment",
"mcp__french-due-diligence__get_dpe"
],
"ask": [
"mcp__french-due-diligence__check_vat",
"mcp__french-due-diligence__screen_sanctions",
"mcp__french-due-diligence__check_rental_compliance"
],
"deny": []
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as french-due-diligence. Review it before you use it.
