SuperAPI AI Directory

france-data-mcp

Cross-references French public registries: FINESS healthcare facilities, RPPS health professionals, INSEE companies and IGN geocoding.

Open website

About this tool

Purpose

france-data-mcp is an MCP (Model Context Protocol) server written in TypeScript, designed to cross-reference and reconcile 13 French public data sources, integrating scattered official APIs that are poorly documented and full of various pitfalls, to answer specific questions in healthcare supply mapping, regional market research, local news, civic tech, and more. Although the official APIs (INSEE, FINESS DREES, RPPS ANS, Ameli directory, CNAM health centers, IGN, DINUM) exist, they are fragmented from one another and suffer from issues such as rate limits, proprietary CSV formats, a one-to-two-month delay for DREES, partial publication by INSEE, and inconsistent mapping between Ameli and RPPS. The project claims to be the first MCP based on factual cross-referencing of these data sources.

Main capabilities

Covers 13 public data sources:

  • Territory (2): geo.api.gouv.fr (DINUM, municipalities), IGN Géoplateforme (geocoding)
  • Health (3): FINESS / ANS (about 105,000 active establishments, including overseas departments—daily JSON stream, replacing the DREES CSV discontinued in July 2026), Annuaire Santé Ameli (about 466,000 self-employed practitioners), RPPS / ANS (about 2.28 million practicing healthcare professionals)
  • Health centers (1): CNAM health directory (about 3,000 L.6323-1 CSP structures, synchronized weekly)
  • Community-level demographics (2): INSEE IRIS (about 48,600 neighborhoods—RP 2022, FILOSOFI 2021 income, IGN boundaries) + INSEE Melodi (reference population)
  • Businesses (2): DINUM Recherche Entreprises + INSEE SIRENE V3.11
  • Real estate (3): DVF / DGFiP land transactions (euros per square meter, PostGIS lazy cache), Sit@del / SDES building permits (ingested tables, monthly cron), PLU undeveloped areas via apicarto / IGN (real time)

Cross-source capabilities: FINESS ↔ RPPS ↔ SIRENE reconciliation, to detect closed SIRET, renamings, outdated business names.

Tool list

The project provides 37 MCP tools, divided into multiple categories:

  • Territory (4): autocomplete_commune, get_commune_by_code, geocode_adresse, reverse_geocode
  • Businesses (3): entreprises_in_radius, entreprise_by_siren (with INSEE SIRENE V3.11 fallback), etablissement_by_siret
  • FINESS health establishments (4): etablissements_finess_in_radius, etablissements_finess_by_categorie, etablissement_by_finess, etablissement_finess_by_nom (searchable by name, such as "Institut Gustave Roussy", returning cards, precise locations, verified municipalities, covering 24 families, about 92% of the data volume; the ANS source is published daily and ingested on the 1st and 15th of each month)
  • Ameli self-employed practitioners (2): professionnels_in_radius, professionnels_par_specialite_dept (limited to contracted self-employed practitioners, about 462,000; specialty/type_ps codes can be discovered via lister_nomenclature)
  • All PS—RPPS / Annuaire Santé ANS (5): professionnels_rpps_in_radius, professionnels_rpps_par_dept, rpps_dans_etablissement, rpps_search_by_name (fuzzy), professionnel_by_rpps (with FHIR ANS fallback) (about 2.2 million practicing PS, by default civil only)
  • CNAM health centers (2): centres_sante_in_radius, centres_sante_by_finess (non-profit outpatient care structures L.6323-1 CSP, about 3,000; with FINESS The difference in famille=124 lies in the disclosure of carte Vitale, APCV and the specialties carried out on site (CNAM Annex A, about 70 codes); coordinates = municipality centroid; weekly synchronization)
  • Population and density—INSEE Melodi + IRIS (3): population (IRIS 9 digits, municipality 5 digits or department 2-3 digits, granularity automatically detected by code length), densite_sante (target: RPPS professionals or FINESS facilities—laboratories, pharmacies, EHPAD, hospitals; includes national comparison matview <50 ms), profil_iris (point or code_iris, rayon_km?)—neighborhood or catchment area population profile (age, CSP, household, income), based on RP 2022 + FILOSOFI 2021
  • Taxonomy discovery (1): lister_nomenclature (referentiel: ameli_specialites | ameli_types_ps | rpps_savoir_faire)—one call to retrieve Ameli specialty/type_ps codes and RPPS savoir_faire (replaces the original 3 lister_*)
  • Aggregators and comprehensive studies (4): panorama_sante_territoire (V0.9, one call to retrieve population + doctor/nurse/pharmacist density compared with national + FINESS counts by family (laboratories, pharmacies, EHPAD, MCO, MSP/CPTS) + IRIS demand block (municipality population profile: age, CSP, household, income), with explicit granularity), inspect_site (V0.10, one call to retrieve a 360 view of the facility: FINESS identification + SIRENE administrative status (SIRET parsing) + associated PS + INSEE history), panorama_implantation_complet (V0.23, complete a laboratory site selection study in one call: 7 sections (territory, IRIS catchment area demand, competitors, MCO/EHPAD/SSR providers, prescribers RPPS+IDEL, health centers, reference data quality), summary only, never in raw lists, degraded by section), enrichir_concurrents (V0.23, for the topcompetitors investigate: active status + team + M&A signals + parent group, hard cap max=3)
  • Real estate—plot potential (2): dynamique_immobiliere (V0.26, one-call synthesis: building permits (Sit@del / SDES, monthly ingestion table) + PLU developable areas (apicarto / IGN, real time) + DVF land transactions; 2 output types: note (count → score) / info (developable neighborhood + price → context); geojson = developable area polygons), cout_foncier (V0.26, DVF median price EUR/sqm (P25/P75, n_ventes, period), informational only)
  • Multi-source cross-referencing (7): FINESS ↔ RPPS ↔ SIRENE ↔ CNAM reconciliation—raw facts without business interpretation; data_freshness, verifier_site_actif, compare_raison_sociale_finess_vs_rpps, compare_adresse_cnam_vs_finess, historique_etablissement, reconcilier_finess_sirene, finess_sirene_coverage_in_radius

How to use

Two access methods are provided:

Option 1—remote URL (claude.ai, Claude Code, Cursor):https://france-data-mcp.vercel.app/mcp

Option 2—npm stdio wrapper (native Claude Desktop, other clients): the wrapper forwards stdio to the remote HTTPS endpoint, with no local database required. Via FRANCE_DATA_MCP_URL=https://mon-miroir.example/mcp Coverage. See docs/installation-claude.md for detailed instructions for each client and self-hosting.

Use cases

Healthcare supply mapping, regional market research, local news, civic tech, laboratory site selection research, land parcel real-estate potential assessment, etc. For Claude, Cursor, and any TypeScript application.

Limits and safeguards

  • Rate limiting: tools/call is limited to 60 requests per IP per minute (meta methods are not limited); exceeding this returns error -32000 with data.retryAfterSeconds.
  • Logging: structured JSON logs for each request (ts, method, tool, ip_hash (SHA-256 salted), duration_ms, outcome); no plaintext IPs are stored, and no tool parameters are persisted.
  • Sentry error monitoring covers internal 500 errors (tags mcp.method, mcp.tool, mcp.outcome).
  • RGPD: 30-day retention on Axiom, salted IP hashes, right of access/deletion. See PRIVACY.md for the full policy.
  • High-intensity use: client-side rate limiting or self-hosting is recommended.

Version and license

V0.31.0 is in production, on the official MCP registry. The latest version (V0.31.0) adds etablissement_finess_by_nom—look up health facilities by name ("Institut Gustave Roussy" → card, precise location, verified municipality, never just the first result); Sit@del building permits are now read from the database (10.9 seconds instead of 45 seconds), current-year data is returned separately from 5 full years, and the "0 housing" issue in Paris/Lyon/Marseille is fixed. 13 reference sources / 37 tools.

Licensed under MIT, see LICENSE. Data remains under its respective licenses: API quality from DINUM, Etalab, Atlasanté, ANS, INSEE, IGN; civic tech activity from data.gouv.fr; the MCP protocol from Anthropic.

Please open an issue to discuss before sending a PR.