Skip to main content
Glama
cturkieh

France Data MCP

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault
FRANCE_DATA_MCP_URLNoOverride the remote MCP server URL (default: https://france-data-mcp.vercel.app/mcp)https://france-data-mcp.vercel.app/mcp

Capabilities

Features and capabilities supported by this server

CapabilityDetails
tools
{
  "listChanged": false
}
prompts
{
  "listChanged": false
}
resources
{
  "listChanged": false
}

Tools

Functions exposed to the LLM to take actions

NameDescription
autocomplete_communeA

Recherche de communes françaises par nom, code postal ou code INSEE. Idéal pour autocomplétion. Source : geo.api.gouv.fr (DINUM/Etalab).

get_commune_by_codeA

Récupère une commune par son code INSEE. Retourne un objet LookupResult discriminé par found. found: true → champs commune à plat (nom, codesPostaux, centre…). found: false{ found: false, key, lookupStatus: 'not_found', message } orientant vers autocomplete_commune pour disambiguer.

geocode_adresseA

Géocode une adresse française en coordonnées GPS. Source : IGN Géoplateforme (data.geopf.fr). Précision au numéro de rue.

reverse_geocodeA

Géocodage inverse : à partir de coordonnées GPS, retrouve l'adresse la plus proche. Source : IGN Géoplateforme.

population_par_communeA

Population municipale (PMUN), population comptée à part (PCAP) et population totale (PTOT) d'une commune française par son code INSEE (5 caractères). Source : INSEE Melodi (DS_POPULATIONS_REFERENCE). PMUN est la base légale officielle utilisée pour les indicateurs DREES (densité médicale, etc.). Retourne un LookupResult discriminé par found. Si la commune a fusionné ou changé de code, found: false avec orientation vers autocomplete_commune.

population_par_departementA

Population municipale (PMUN), comptée à part (PCAP) et totale (PTOT) d'un département français par son code INSEE (2-3 caractères). Source : INSEE Melodi (DS_POPULATIONS_REFERENCE). PMUN recommandée pour calculs de densité (méthodo DREES). Supporte la Corse (2A, 2B) et les DOM (971-976).

entreprises_in_radiusA

Recherche d'entreprises françaises avec filtres NAF, code postal, département ou rayon géographique. Couvre tous secteurs (santé via NAF 8690B, 4773Z, 8710A, 8621Z, etc.). Source : DINUM Recherche Entreprises (SIRENE + RNE). Renvoie CA, dirigeants, tranches d'effectif et dates de création.

Limitation API DINUM : la combinaison naf + lat/lon/radiusKm n'est pas supportée nativement (lat/lon nécessitent un q textuel). Le serveur applique alors un fallback : reverseGeocode du point → recherche par département → filtrage Haversine côté serveur. Les résultats sont limités aux 25 premières entreprises du NAF dans le département (limite API).

entreprise_by_sirenA

Récupère le détail d'une entreprise française par son SIREN (9 chiffres) : raison sociale, NAF, finances historiques, dirigeants, établissements. Source : DINUM Recherche Entreprises.

Format de retour : objet LookupResult discriminé par found.

  • found: true → l'entreprise est retournée à plat (champs siren, nomComplet, etablissements, enrichmentStatus, …)

  • found: false{ found: false, key, lookupStatus: 'not_found' | 'ambiguous', message }. not_found : SIREN non indexé par DINUM (souvent diffusion partielle INSEE — l'entreprise peut quand même exister dans SIRENE). ambiguous : régression API à signaler.

⚠️ Quand found: true, la liste etablissements peut être tronquée. Le champ nombreEtablissements (compté SIRENE) reflète le total réel. Lire enrichmentStatus pour savoir si la liste est complète :

  • success : etablissements contient tous les sites

  • partial : sites manquants (multi-département ou NAF différent du siège) — voir enrichmentWarning

  • failed : l'enrichissement a échoué (rate limit, panne API) — seul le siège est listé

  • not_attempted : entreprise monosite ou data SIRENE manquante

Pour énumération exhaustive multi-département, utiliser entreprises_in_radius par zone géographique. Coût : 1 ou 2 appels API DINUM par invocation (rate limit ~1 req/s effectif).

data_freshnessA

Retourne la fraîcheur des dumps de données ingérés côté serveur : FINESS DREES (bimestriel), Annuaire Santé Ameli (hebdomadaire), RPPS / Annuaire Santé ANS (mensuel). Pour chaque source : last_success_at ISO timestamp, last_success_row_count, last_attempt_at, last_attempt_status, staleness_days (jours depuis la dernière ingestion réussie), cadence_hint (cadence attendue côté éditeur).

Usage typique : avant un audit territorial ou une analyse temporelle, le caller appelle ce tool pour savoir si les données sont à jour. Une staleness_days > 90 côté FINESS = alerte (dernier sync DREES manqué), > 14 côté Ameli = alerte (job hebdo cassé), > 45 côté RPPS = alerte (job mensuel cassé).

Les sources LIVE (DINUM Recherche Entreprises, INSEE SIRENE V3.11, ANS FHIR live) ne sont PAS listées ici puisqu'elles n'ont pas de cycle d'ingestion — leur fraîcheur est celle des API amont (live, ~secondes).

Cache serveur : 5 minutes. Coût : 1 SELECT sur ingest_log au pire (sinon hit cache).

compare_raison_sociale_finess_vs_rppsA

Compare la raison sociale FINESS DREES vs RPPS / Annuaire Santé ANS pour un même num_finess. Primitive brute SANS interprétation métier — retourne juste les deux libellés + un statut de comparaison. Le caller décide quoi faire de la divergence.

Utilité : RPPS reflète souvent plus rapidement les rebrandings post-M&A que FINESS DREES (ex: un site racheté reste 'DIAGNOVIE' chez DREES alors qu'il est déjà 'BIOGROUP NORD' chez l'ANS). Ce tool expose la divergence factuelle ; il NE DIT PAS qui a racheté qui (ça repose sur de la connaissance d'enseignes commerciales non publique).

Statut renvoyé (champ statut présent uniquement sur la branche found: true) :

  • exact_match : FINESS et ≥1 RPPS sont strictement égaux après normalisation

  • divergent_after_normalization : aucune RPPS ne matche FINESS — vraie divergence

  • rpps_absent : aucune RPPS n'a déclaré ce FINESS (pivot impossible)

Format : objet LookupResult discriminé par found. Quand num_finess est absent de FINESS DREES, le tool retourne {found: false, lookupStatus: 'not_found', message, ...} — il n'y a PAS de champ statut dans ce cas.

historique_etablissementA

Reconstitue la timeline complète d'un établissement de santé (ouvertures, fermetures, changements de NAF/enseigne) en croisant FINESS DREES ↔ resolver SIRET (RPPS + DINUM) ↔ SIRENE INSEE V3.11. Lit les periodesEtablissement complètes pour chaque SIRET candidat.

V0.7.0 : SIRET candidats élargis via le resolver — inclut désormais les SIRET fermés du SIREN parent qui matchent l'adresse FINESS (invisibles côté RPPS seul). Permet de tracer la fermeture exacte d'un site même quand FINESS le liste encore actif.

Usage typique :

  • Tracer l'historique d'un site après une fusion-acquisition

  • Identifier la date de fermeture exacte d'un SIRET encore listé actif côté FINESS

  • Comprendre une cascade de rebrandings via les changements de enseigne1Etablissement au fil des périodes

Format : objet LookupResult. Quand found: true, retourne finess (vue DREES synthétique) + siret_timelines (1 entrée par SIRET candidat avec periodes chronologiques).

Coût : 1 RPC FINESS + 1 SELECT rpps + N appels DINUM + N appels INSEE en parallèle (N ≤ 5 typiquement). Pas de cache.

reconcilier_finess_sireneA

Croise FINESS DREES ↔ SIRENE INSEE V3.11 et calcule un score de cohérence (Sørensen-Dice sur bigrammes) pour chaque SIRET candidat. Utile pour confirmer/infirmer un appariement num_finess ↔ SIRET avant prospection ou cross-check qualité.

Logique :

  1. Récupère FINESS (raison sociale + adresse libellée)

  2. Récupère SIRET candidats via la table RPPS

  3. Pour chaque SIRET, lookup SIRENE puis calcule 3 sous-scores :

    • nom : Dice sur raison sociale (FINESS vs SIRENE.uniteLegale)

    • adresse : Dice sur adresse complète

    • telephone : binaire 0/1 (toujours 0 actuellement : SIRENE n'expose pas le tel)

  4. Score global = pondération (nom 0.5, adresse 0.4, tel 0.1)

  5. Verdict brut : match (≥0.8) / partial (0.5..0.8) / mismatch (<0.5)

Algorithme PUBLIC (Sørensen-Dice est dans la littérature depuis 1948). Aucune valeur ajoutée Unilabs ici — c'est une primitive ouverte. La connaissance propriétaire (mapping enseignes ↔ SELAS) reste côté Geo Intel.

Format : objet LookupResult. Quand found: true, retourne { num_finess, candidates, skipped } :

  • candidates : tableau trié par score_global décroissant (meilleur match en premier)

  • skipped : SIRET candidats qu'on n'a PAS pu réconcilier (lookup SIRENE rejected ou not_found) avec la reason. Permet au caller de distinguer 'aucun SIRET candidat trouvé' (found: false LookupResult.not_found) de 'N SIRETs candidats mais tous rejetés par SIRENE' (candidates: [] + skipped: [...]).

verifier_site_actifA

Vérifie si un établissement de santé FINESS est encore en activité en croisant FINESS DREES ↔ RPPS (pivot SIRET) ↔ DINUM (liste complète des SIRET du SIREN, incluant les fermés). Détecte les SIRET fermés encore listés actifs côté FINESS (DREES a 1-2 mois de retard).

V0.7.0 — breaking : pivot SIRET élargi. Avant V0.7.0, on ne testait que les SIRET RPPS-déclarés (= SIRET du siège employeur typiquement) → on ratait le SIRET physique fermé du site. Désormais, le resolver récupère TOUS les SIRET du SIREN via DINUM puis fuzzy-matche leur adresse contre FINESS — ce qui capte aussi les SIRET fermés invisibles côté RPPS.

Logique :

  1. Lookup FINESS pour récupérer raison sociale + adresse + téléphone DREES

  2. Récupération des SIRET candidats via le resolver (RPPS + DINUM avec scoring d'adresse Dice)

  3. best_match = SIRET avec le meilleur score d'adresse ≥ 0.6 (= site physique)

  4. 2 verdicts distincts :

  • verdict_site (actif / ferme / indetermine) : basé sur best_match.actif. C'est le verdict qui compte pour un audit territorial.

  • verdict_groupe (actif / ferme / indetermine) : basé sur l'état admin de l'UL parente (champ actif DINUM). Une UL active peut très bien avoir un site fermé.

Format de retour : objet LookupResult discriminé par found. Quand found: true, le payload contient finess (vue DREES), candidates (liste enrichie tri score), best_match, sirens_explored, verdict_site, verdict_groupe, explication. Quand num_finess est absent de FINESS DREES, le tool retourne {found: false, lookupStatus: 'not_found', message, ...}.

Coût : 1 RPC FINESS + 1 SELECT rpps + N appels DINUM (N = nombre de SIREN distincts, typiquement 1). DINUM gère son propre fallback INSEE V3.11 pour les SIREN diffusion partielle.

etablissement_by_siretA

Récupère le détail d'un établissement par son SIRET (14 chiffres) via l'API SIRENE INSEE V3.11 : raison sociale de l'unité légale, enseigne commerciale, NAF de l'établissement, dates de création/fermeture, statut administratif actif/fermé, adresse complète, tranche d'effectif. Source : SIRENE INSEE V3.11 (api.insee.fr).

Format de retour : objet LookupResult discriminé par found.

  • found: true → établissement à plat (siret, siren, actif, dateFermeture, enseigne, adresse, …)

  • found: false{ found: false, key, lookupStatus: 'not_found', message }. Cas typiques : clé INSEE_SIRENE_API_KEY non configurée côté serveur (message explicite), SIRET inexistant SIRENE, diffusion partielle INSEE.

⚠️ Différence avec entreprise_by_siren : ce tool renvoie UN établissement précis (un site), alors que entreprise_by_siren renvoie l'unité légale + sa liste d'établissements. Pour détecter un SIRET fermé encore listé actif côté FINESS, lire actif: false + dateFermeture.

Pas de coords : l'endpoint INSEE /siret/<siret> ne renvoie pas les coordonnées GPS. Pour géolocaliser, croiser avec geocode_adresse côté caller ou utiliser entreprises_in_radius.

Rate limit INSEE : 30 req/min (retry-after géré côté serveur).

etablissements_finess_in_radiusA

Recherche d'établissements de santé FINESS dans un rayon géographique (PostGIS ST_DWithin). Filtrable par familles. 24 valeurs disponibles : mco, ssr, sld, had, psychiatrie, dialyse, ambulatoire, labo, imagerie, pharmacie, msp_cpts, ehpad, residence_autonomie, senior_accompagnement, ssiad, aide_domicile, handicap_enfants, handicap_adultes, addictologie, enfance_protection, pmi, hebergement_social, prevention_sante, groupement. Source : FINESS / DREES (dump CSV ingéré localement). Note : champ email toujours null (non exposé par FINESS public).

etablissements_finess_by_categorieA

Liste des établissements FINESS par famille, avec filtre département ou commune optionnel. Pas de rayon — pour énumération exhaustive d'une zone administrative. 24 familles disponibles : mco, ssr, sld, had, psychiatrie, dialyse, ambulatoire, labo, imagerie, pharmacie, msp_cpts, ehpad, residence_autonomie, senior_accompagnement, ssiad, aide_domicile, handicap_enfants, handicap_adultes, addictologie, enfance_protection, pmi, hebergement_social, prevention_sante, groupement. Source : FINESS / DREES. Note : champ email toujours null (non exposé par FINESS public).

etablissement_by_finessA

Récupère le détail complet d'un établissement de santé par son numéro FINESS (9 chiffres) : raison sociale, catégorie + famille, adresse complète (voie + CP + ville + code INSEE + département), coordonnées GPS, téléphone. Retourne un objet LookupResult discriminé par found. found: true → champs FINESS à plat. found: false{ found: false, key, lookupStatus: 'not_found', message }. Le référentiel DREES a 1-2 mois de retard sur le terrain : pour des structures émergentes (CPTS récentes, MSP en agrément), cross-check ARS / Service Public. Source : FINESS / DREES. Note : champ email toujours null (non exposé par FINESS public).

professionnels_in_radiusA

Recherche de professionnels de santé libéraux conventionnés dans un rayon géographique. Précision géo : centroïde commune (~3 km en moyenne — adapté à l'analyse de densité, pas au géocodage adresse). Codes type_ps Ameli présents en base (3) : '1' médecins, '2' auxiliaires médicaux (fourre-tout : IDE, kinés, sages-femmes, podologues, orthophonistes, orthoptistes, IPA), '5' chirurgiens-dentistes. Pour cibler une profession précise (ex: IDE seuls, kinés seuls, podologues seuls), passer par specialite_codes plutôt que type_ps_codes qui ratisse plus large. Liste exhaustive des codes spécialité disponibles via le tool lister_specialites_ameli. Multi-sites : par défaut un PS exerçant sur N adresses apparaît N fois — utiliser dedupe_by_ps=true pour regrouper par praticien et lister les sites en sous-objet. Distance retournée en km vol d'oiseau (haversine PostGIS) — pour distance routière, croiser avec un service externe (OSRM, ORS). PÉRIMÈTRE : libéraux conventionnés UNIQUEMENT. HORS PÉRIMÈTRE : médecins exclusivement hospitaliers/salariés, biologistes médicaux salariés en LBM, anatomopathologistes hospitaliers, médecins du travail, médecine légale. Pour effectifs tous statuts, voir Annuaire Santé ANS (RPPS, esante.gouv.fr) — non couvert par ce serveur. Source : Annuaire santé Ameli (Assurance Maladie), MAJ hebdomadaire. Réutilisation soumise à l'art. L.1461-2 CSP — citer la source et la date de sync.

professionnels_par_specialite_deptA

Liste des professionnels de santé libéraux conventionnés d'un département, avec filtres optionnels par spécialité ou type de PS. Pour énumération administrative — pas de rayon. Codes type_ps Ameli présents en base (3) : '1' médecins, '2' auxiliaires médicaux (fourre-tout : IDE, kinés, sages-femmes, podologues, orthophonistes, orthoptistes, IPA), '5' chirurgiens-dentistes. Pour cibler une profession précise (ex: IDE seuls), passer par specialite_code plutôt que type_ps_code qui ratisse plus large. Liste exhaustive des codes spécialité disponibles via le tool lister_specialites_ameli. Pagination : utiliser offset pour récupérer les pages suivantes quand truncated=true. Multi-sites : utiliser dedupe_by_ps=true pour regrouper par praticien. PÉRIMÈTRE : libéraux conventionnés UNIQUEMENT. HORS PÉRIMÈTRE : médecins exclusivement hospitaliers/salariés, biologistes médicaux salariés en LBM, anatomopathologistes hospitaliers, médecins du travail, médecine légale. Pour effectifs tous statuts, voir Annuaire Santé ANS (RPPS, esante.gouv.fr) — non couvert par ce serveur. Source : Annuaire santé Ameli (Assurance Maladie), MAJ hebdomadaire. Réutilisation soumise à l'art. L.1461-2 CSP — citer la source et la date de sync.

lister_specialites_ameliA

Liste les codes spécialité Ameli effectivement présents en base, avec leur libellé natif, leur type_ps_code de rattachement et leur count. Triés par fréquence décroissante. Utile pour découvrir la nomenclature avant de filtrer un professionnels_in_radius ou professionnels_par_specialite_dept. Le champ libelle_clarifie désambigüise les libellés partagés par plusieurs codes (ex: "Médecin généraliste" regroupe les codes 01/22/23, "Chirurgien-dentiste" 19/53/54, "Psychiatre" 33/75, "Gynécologue / Obstétricien" 07/70/77/79). Format quand partagé : '{libelle} (code {code}, {count_compact})' (ex: "Médecin généraliste (code 01, 55K)"). Sinon identique à libelle. is_libelle_partage: true quand au moins 2 codes utilisent le même libellé — utiliser ce flag côté caller pour décider d'afficher le code à l'utilisateur. PÉRIMÈTRE : libéraux conventionnés UNIQUEMENT. HORS PÉRIMÈTRE : médecins exclusivement hospitaliers/salariés, biologistes médicaux salariés en LBM, anatomopathologistes hospitaliers, médecins du travail, médecine légale. Pour effectifs tous statuts, voir Annuaire Santé ANS (RPPS, esante.gouv.fr) — non couvert par ce serveur. Source : Annuaire santé Ameli (Assurance Maladie), MAJ hebdomadaire. Réutilisation soumise à l'art. L.1461-2 CSP — citer la source et la date de sync.

lister_types_ps_ameliA

Liste les codes type_ps Ameli présents en base, avec leur libellé natif (libelle_source), un libellé clarifié (libelle_clarifie) résolvant l'ambiguïté du code "2" fourre-tout, leur count total, et specialites_presentes (la liste effective des spécialités regroupées sous chaque type_ps avec leurs counts). Pas de dictionnaire inventé : la clarification est dérivée de la donnée live à chaque appel. PÉRIMÈTRE : libéraux conventionnés UNIQUEMENT. HORS PÉRIMÈTRE : médecins exclusivement hospitaliers/salariés, biologistes médicaux salariés en LBM, anatomopathologistes hospitaliers, médecins du travail, médecine légale. Pour effectifs tous statuts, voir Annuaire Santé ANS (RPPS, esante.gouv.fr) — non couvert par ce serveur. Source : Annuaire santé Ameli (Assurance Maladie), MAJ hebdomadaire. Réutilisation soumise à l'art. L.1461-2 CSP — citer la source et la date de sync.

professionnels_rpps_in_radiusA

Recherche de professionnels de santé dans un rayon via le RPPS (Annuaire Santé ANS). À la différence de professionnels_in_radius (Ameli, libéraux conventionnés uniquement), cette recherche couvre tous les PS : libéraux, salariés (hospitaliers, salariés en cabinet), mixtes, remplaçants. Filtres : profession_codes (nomenclature ANS — ex: 10 Médecin, 60 Infirmier), savoir_faire_codes (spécialité fine DES/DESC), mode_exercice_codes. Codes mode_exercice ANS : L libéral, S salarié, M mixte, R remplaçant, B bénévole, A autre. Par défaut, ne renvoie que les PS de catégorie Civil (C) — droit privé : libéraux, salariés privés, hospitaliers contractuels, ~97 % de la base. Passer include_agents_publics: true pour inclure aussi les Agents publics (M) — fonctionnaires d'État + collectivités + militaires SSA, ~0,3 % (PH titulaires, médecins inspecteurs ARS, médecins conseils CNAM, médecins scolaires Éducation nationale, médecins PMI). Passer include_etudiants: true pour inclure aussi les Étudiants (E) — internes, externes, élèves IDE/SF, ~2,5 %. Source nomenclature : https://mos.esante.gouv.fr/NOS/TRE_R09-CategorieProfessionnelle/. Coords au centroïde commune (~3 km moyenne) — pour précision adresse, croiser num_finess retourné avec etablissement_by_finess. Source : Annuaire Santé, Agence du Numérique en Santé (ANS) — Licence Ouverte v2.0

professionnels_rpps_par_deptA

Listing départemental de PS via RPPS (libéraux + salariés). Filtres optionnels : profession_code, savoir_faire_code, mode_exercice_code. Re-paginer via offset tant que truncated=true. Préférer professionnels_par_specialite_dept (Ameli) pour les libéraux conventionnés ; cet outil sert à compter ou lister les salariés / l'effectif total. Par défaut, ne renvoie que les PS de catégorie Civil (C) — droit privé : libéraux, salariés privés, hospitaliers contractuels, ~97 % de la base. Passer include_agents_publics: true pour inclure aussi les Agents publics (M) — fonctionnaires d'État + collectivités + militaires SSA, ~0,3 % (PH titulaires, médecins inspecteurs ARS, médecins conseils CNAM, médecins scolaires Éducation nationale, médecins PMI). Passer include_etudiants: true pour inclure aussi les Étudiants (E) — internes, externes, élèves IDE/SF, ~2,5 %. Source nomenclature : https://mos.esante.gouv.fr/NOS/TRE_R09-CategorieProfessionnelle/. Source : Annuaire Santé, Agence du Numérique en Santé (ANS) — Licence Ouverte v2.0

rpps_dans_etablissementA

Liste les professionnels de santé rattachés à un établissement FINESS (par numéro FINESS site, 9 chiffres). C'est le pivot RPPS↔FINESS — répond à "qui travaille dans ce labo / hôpital / clinique ?". Le mode_exercice distingue les libéraux exerçant sur place (vacations) des salariés. Couverture : RPPS expose ce lien quand le PS l'a déclaré ; salariés CH/CHU/cliniques bien couverts. Par défaut, ne renvoie que les PS de catégorie Civil (C) — droit privé : libéraux, salariés privés, hospitaliers contractuels, ~97 % de la base. Passer include_agents_publics: true pour inclure aussi les Agents publics (M) — fonctionnaires d'État + collectivités + militaires SSA, ~0,3 % (PH titulaires, médecins inspecteurs ARS, médecins conseils CNAM, médecins scolaires Éducation nationale, médecins PMI). Passer include_etudiants: true pour inclure aussi les Étudiants (E) — internes, externes, élèves IDE/SF, ~2,5 %. Source nomenclature : https://mos.esante.gouv.fr/NOS/TRE_R09-CategorieProfessionnelle/. Source : Annuaire Santé, Agence du Numérique en Santé (ANS) — Licence Ouverte v2.0

densite_professionnels_santeA

Densité de professionnels de santé pour 100 000 habitants dans un département. Méthodo DREES par défaut : médecins (profession_code='10') en activité régulière (libéral + salarié + mixte, codes mode_exercice L, S, M), hors étudiants. Croise RPPS (count) et INSEE Melodi (population municipale PMUN, recensement 2023).

Usages : densité de cardiologues / dermatologues / infirmiers libéraux / pharmaciens / sages-femmes par dept. Pour une spécialité médicale, passer savoir_faire_code (ex SM02 cardiologie). Pour une autre profession que médecin, passer profession_code (60 infirmier, 21 pharmacien, etc.). Pour libéraux seuls, passer mode_exercice_codes: ['1'].

compare_national: true ajoute la densité France entière (DOM inclus) et l'écart en % (positif = sur-doté vs France, négatif = sous-doté). Coût : 1 RPC count_rpps supplémentaire + 1 appel Melodi (cacheable).

Ne renvoie AUCUNE interprétation métier (pas de seuil "désert médical" automatique). Le caller applique sa grille.

Par défaut, ne renvoie que les PS de catégorie Civil (C) — droit privé : libéraux, salariés privés, hospitaliers contractuels, ~97 % de la base. Passer include_agents_publics: true pour inclure aussi les Agents publics (M) — fonctionnaires d'État + collectivités + militaires SSA, ~0,3 % (PH titulaires, médecins inspecteurs ARS, médecins conseils CNAM, médecins scolaires Éducation nationale, médecins PMI). Passer include_etudiants: true pour inclure aussi les Étudiants (E) — internes, externes, élèves IDE/SF, ~2,5 %. Source nomenclature : https://mos.esante.gouv.fr/NOS/TRE_R09-CategorieProfessionnelle/.

Source : Annuaire Santé, Agence du Numérique en Santé (ANS) — Licence Ouverte v2.0

densite_etablissements_santeA

Densité d'établissements de santé pour 100 000 habitants dans un département, par famille FINESS. Croise FINESS DREES (count) et INSEE Melodi (population municipale PMUN, recensement 2023).

Familles disponibles : labo (laboratoires de biologie médicale), pharmacie, ehpad, mco (court séjour médecine/chirurgie/obstétrique), ssr (soins de suite), psychiatrie, dialyse, imagerie, had (hospitalisation à domicile), msp_cpts (maisons de santé + CPTS), handicap_enfants, handicap_adultes, addictologie, pmi, prevention_sante, etc. Famille obligatoire — sans filtre, le ratio mélangerait labos / hôpitaux / EHPAD et n'aurait pas de sens.

compare_national: true ajoute la densité France entière (DOM inclus) + écart en %. Coût : 1 RPC count_finess + 1 appel Melodi (cacheable).

lister_specialites_medicalesA

Liste les spécialités médicales (savoir_faire RPPS) avec leur libellé et le nombre de PS qui les portent. Tool d'aide à la découverte pour le LLM : avant d'appeler densite_professionnels_sante ou professionnels_rpps_par_dept avec un savoir_faire_code précis (ex 'SM02' Cardiologie), utiliser ce tool pour obtenir la liste exhaustive.

Filtre par défaut : profession_code='10' (Médecin) — retourne donc les spécialités médicales (cardiologie, dermato, gynéco, etc.). Passer profession_code pour énumérer les spécialités d'une autre profession (ex '60' Infirmier → spécialités IDE), ou null pour tous savoir_faire confondus.

Résultats triés par count_ps DESC (spécialités les plus représentées en premier). Source : RPPS / Annuaire Santé ANS (Supabase dump mensuel).

rpps_search_by_nameA

Recherche fuzzy de professionnels de santé par identité (nom + prénom optionnel + département optionnel). Utilise un matching trigram (pg_trgm) tolérant aux accents, typos et variations d'orthographe. Tri par pertinence décroissante. Source : RPPS / Annuaire Santé ANS (Supabase dump mensuel).

Usage typique : "trouve-moi le Dr Martin à Paris" (nom obligatoire, prénom et département facultatifs pour affiner). Sans département, recherche nationale (peut renvoyer beaucoup d'homonymes — utiliser le match_score pour trier).

Format de retour : objet { count, truncated, results, query_metadata } aligné sur les autres tools RPPS de listing. Chaque résultat porte un champ match_score ∈ [0..1] (score trigram pg_trgm). Un score < 0.5 indique souvent une homonymie partielle à confirmer côté caller.

Par défaut, ne renvoie que les PS de catégorie Civil (C) — droit privé : libéraux, salariés privés, hospitaliers contractuels, ~97 % de la base. Passer include_agents_publics: true pour inclure aussi les Agents publics (M) — fonctionnaires d'État + collectivités + militaires SSA, ~0,3 % (PH titulaires, médecins inspecteurs ARS, médecins conseils CNAM, médecins scolaires Éducation nationale, médecins PMI). Passer include_etudiants: true pour inclure aussi les Étudiants (E) — internes, externes, élèves IDE/SF, ~2,5 %. Source nomenclature : https://mos.esante.gouv.fr/NOS/TRE_R09-CategorieProfessionnelle/.

Source : Annuaire Santé, Agence du Numérique en Santé (ANS) — Licence Ouverte v2.0

professionnel_by_rppsA

Fiche d'un professionnel de santé par identifiant national (rpps_id / IDNPS, 11 ou 12 chiffres — IDNPS modernes émis depuis 2020 ont un préfixe "81" qui les fait à 12 chars, anciens IDs sans préfixe à 11 chars). Renvoie N entrées quand le PS exerce sur plusieurs sites (1 row par site). Si non trouvé en base locale (ingestion mensuelle, J-30 max), tente automatiquement un fallback live sur l'API FHIR ANS (gateway.api.esante.gouv.fr/fhir/v2) — fraîcheur quotidienne, gratuit (clé ESANTE-API-KEY issue de portal.api.esante.gouv.fr requise côté serveur). Le champ source distingue db (base locale) de ans_fhir (fallback live). include_freshness n'affecte que les retours source: "db" (FHIR ANS étant live). Source : Annuaire Santé, Agence du Numérique en Santé (ANS) — Licence Ouverte v2.0

finess_sirene_coverage_in_radiusA

Compare la couverture du référentiel FINESS DREES (sites physiques agréés LBM/pharmacie/etc.) au référentiel SIRENE DINUM (SIRET physiques actifs au NAF cible) dans un rayon géographique. Métrique : ratio sites FINESS / SIRET SIRENE. Utile pour détecter une sur-déclaration FINESS (sites encore listés mais SIRET fermés) ou une sous-déclaration DREES (sites SIRENE non agréés FINESS). Inclut une méthodologie explicite + caveats. Source : FINESS DREES + DINUM Recherche Entreprises + SIRENE INSEE.

Prompts

Interactive templates invoked by user choice

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cturkieh/france-data-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server