🇫🇷 France — Recherche d'entreprises (INSEE Sirene + RNE + RNA combined open API)
Access France's official company register in real time via the OpenRegistry MCP endpoint. Unified schema, source-linked, live passthrough (no caching).
Caching notes: All caches: 10 seconds (de-duplicates rapid repeated calls within a single AI turn; otherwise always fresh). Pass fresh=true to bypass even the 10s cache.
France — free company-enterprise search surface. No auth required. Accepts the 9-digit national id, the 14-digit establishment id, or names. Officers embedded in profile; filings/PSC/charges require paid upstream services.
Company ID format
9-digit SIREN (e.g. '652014051' Carrefour). Whitespace / hyphens / 'SIREN' prefix accepted. SIRET (14-digit establishment) is also accepted and resolved to the parent SIREN.
Examples: 652014051, 542051180, 443061841
Supported tools (3)
search_companies
get_company_profile
get_officers
Status values
Native values upstream reports: A, C, F
Mapping to the unified four-value enum:
Unified
Native values
active
A
inactive
(none)
dissolved
C, F
unknown
(none)
Known quirks
id_formatinfo — company_id is the 9-digit French national company id. The 14-digit establishment id is accepted and auto-truncated to its parent company id. Whitespace, hyphens and common prefixes are stripped. Other inputs yield 400.
searchinfo — search_companies routes id-looking input to an exact-id lookup and everything else to full-text. Upstream caps per_page at 25. Rich filters are exposed: geo (postal code, commune code, département, region, EPCI), activity code, legal form, headcount, financials (revenue and net-result min/max), officer name and multiple entity-type flags.
routinginfo — Adapter also exposes searchNearPoint(lat, long, radiusKm ∈ (0,50]) with optional activity-code filters.
officersinfo — Officers are embedded in the entity response — get_officers does not make an extra upstream call. No stable cross-company person IDs; officer_id is the officer's company id (when it's a corporate officer) or undefined. Appointment dates and resignations are not returned — is_active is set true for every officer.
officerswarning — search_officers picks the 'surname' token by heuristic (ALL-CAPS wins, else longest, else last) and sends it as a surname query plus officer-type filter; other tokens are used for client-side substring narrowing. Multi-token queries may miss entries where a strict first-name match would have filtered differently.
filingsblocker — list_filings, get_persons_with_significant_control, get_charges, get_document_metadata, fetch_document and get_officer_appointments all return 501. Filings and beneficial owners live in a separate authenticated B2B feed; charges require a paid commercial service.
rate_limitinfo — Adapter retries 429/500/502/503/504 up to 3 times with exponential backoff. 429 surfaces as a rate-limit error. Empty or non-JSON bodies upstream are reported as 502.
Available jurisdiction_data fields
Every tool response carries a jurisdiction_data object with the raw upstream fields (names unchanged). The full field set per record type: