150,000+ agents registered. Trust scores show their math.Explore →
Explorer/MCP/cturkieh/france-data
REMOTE

france-data

cturkieh/france-data

France Data MCP permet aux agents IA d’interroger, croiser et enrichir automatiquement plusieurs référentiels publics français via une interface MCP unifiée. France Data MCP fournit une couche d’intelligence territoriale française conçue pour le reasoning multi-sources et l’orchestration agentique. Le serveur combine données territoriales, géocodage, santé publique, référentiels administratifs et enrichissement multi-sources afin de permettre des workflows complexes de raisonnement géospatial et territorial. Contrairement à de simples wrappers API, les tools sont conçus pour être chaînables par les agents IA afin de résoudre automatiquement des questions métier complexes. Exemples de workflows agentiques : → « Cette pharmacie est-elle réellement encore active ? » Détection des SIRET fermés invisibles côté DREES via cross-source FINESS ↔ RPPS ↔ SIRENE → « Où installer un spécialiste à Metz ? » Croisement densité médicale Ameli + RPPS + cartographie FINESS → « Quels sont les concurrents M&A potentiels d’un groupe pharmacie ? » Historique SIRENE + matching adresse + détection de rebrandings non propagés → « Cartographier l’offre de soins d’un canton » Combinaison FINESS + RPPS + entreprises + coverage ratio géospatial Sources intégrées : FINESS DREES RPPS / Annuaire Santé ANS Annuaire Santé Ameli INSEE SIRENE IGN Géoplateforme geo.api.gouv.fr (DINUM) Capabilities : • orchestration multi-référentiels • géocodage et enrichissement territorial • reasoning multi-étapes pour agents IA • workflows géospatiaux chaînables • cross-reference intelligence entre référentiels publics • compatibilité MCP HTTP + wrappers npm/stdIO • observabilité Sentry

34 tools available ↓
The Journeyman
A reasonable amount of history and nothing concerning in the scan.
Time indexed (5mo)
34toolsRemote/ HTTP5moindexed
100% uptime · 302ms avgChecked Sep 4, 2026
Quality Score
45/95
Established
Risk Score
0/100
Clean
▸How is this calculated?
Quality Breakdown
Tenure13.8/20
156 days indexed
Capability19.9/25
Tools: 7.9/13 (34 tools)
Description: 5/5 ✓
Endpoint: 7/7 ✓
Adoption1.2/25
Use count: 1.2/20 (1 uses)
Multi-registry: 0/5 (1 registry)
Reliability10/25
Currently live: 10/10 ✓
Uptime history: 0/15 No checks yet
Security scan: 0 pts in v1.0; ready to weight when coverage improves
Risk
0— Clean
No signals detected.
The scanner shows
34 tools. Nothing caught our attention.
First indexed May 12, 2026
Server Profile
⚙
Tools catalogued
34
34 tools available. Full list below.
☁
Hosting
Remote / HTTP
Runs on the internet. No access to your filesystem, SSH keys, or environment variables.
○
Registry presence
Not verified
Not yet verified by the Official MCP Registry.
●
Liveness
100%
Based on 48 checks. Average response: 302ms.
Publisher Verification
Not yet verified by the Official MCP Registry.
Endpoint
https://france-data--cturkieh.run.tools
Tools (34)
autocomplete_commune
Recherche de communes françaises par nom, code postal ou code INSEE. Idéal pour autocomplétion. Source : geo.api.gouv.fr (DINUM/Etalab). Un (au moins) parmi `nom`, `codePostal`, `code` est requis. Alias acceptés : `q`/`query`/`search` → `nom`, `codepostal`/`postal_code` → `codePostal`, `code_insee`/`insee` → `code`.
get_commune_by_code
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. Alias acceptés : `code_insee`/`codeInsee`/`insee` → `code`.
geocode_adresse
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_geocode
Géocodage inverse : à partir de coordonnées GPS, retrouve l'adresse la plus proche. Source : IGN Géoplateforme.
population_par_commune
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`. Alias acceptés : `code_insee`/`codeInsee`/`insee` → `code`.
population_par_departement
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). Alias acceptés : `code_dept`/`dept`/`departement`/`code_departement` → `code`.
Show all 34 tools ↓
entreprises_in_radius
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_siren
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_freshness
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), Centres de Santé CNAM (hebdomadaire). 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é), `> 14` côté CDS = alerte (job hebdo 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_rpps
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_etablissement
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_sirene
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_actif
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_siret
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_radius
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_categorie
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_finess
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).
centres_sante_in_radius
Recherche des Centres de Santé (CDS) dans un rayon géographique (PostGIS ST_DWithin). Source : Annuaire santé Ameli, Assurance Maladie (mention obligatoire L.1461-2 CSP — sync hebdomadaire CNAM). Différenciateur métier vs `etablissements_finess_in_radius` filtré famille=124 : expose **carte_vitale**, **APCV**, **spécialités exercées sur place** (Annexe A nomenclature CNAM, ~70 codes). CDS = structures de soins ambulatoires non lucratives encadrées L.6323-1 CSP (associations, mutuelles, communes, hôpitaux). Volume ~3K en France. Filtres : - `specialite_codes` : array Annexe A (ex: ['01'] médecine générale, ['53'] dentaire). Match any-of — retourne les CDS qui exercent AU MOINS UNE des spécialités demandées. - `accepte_carte_vitale` : true / false / omis. Quasi-totalité accepte CV en pratique → filtre surtout utile en `false` pour audits. - `type_etab_codes` : ['124'] CDS standard, ['125'] CDS dentaire (deprecated CNAM, en voie d'extinction). Coords = centroïde commune (~3 km moyenne) — pour précision adresse, pivoter via `etab_finess` retourné avec `etablissement_by_finess`. PAS d'horaires/tarifs/secteur 1/2 (retirés du nouvel annuaire CNAM post-2025). Alias acceptés : `radius`/`radius_meters` → `radius_km`, `latitude`/`longitude` → `lat`/`lon`.
centres_sante_by_finess
Récupère le détail d'un Centre de Santé (CDS) par son numéro FINESS. Différenciateur métier vs `etablissement_by_finess` : expose **carte_vitale**, **APCV**, et **spécialités exercées sur place** (Annexe A CNAM). Retourne un `LookupResult` discriminé par `found`. `found: true` → payload CDS complet (raison sociale, accepte_carte_vitale/apcv, specialites.codes/libelles alignés, type_etab 124/125, adresse, coords centroïde commune, telephone). `found: false` → `{found: false, key, lookupStatus: 'not_found', message}` quand le numéro FINESS pointe vers une structure non-CDS (hôpital, EHPAD, labo) ou un CDS très récent (CNAM latence ~1 sem). Source : Annuaire santé Ameli, Assurance Maladie (sync hebdomadaire CNAM, mention obligatoire L.1461-2 CSP). Pour les structures non-CDS, utiliser `etablissement_by_finess`. Alias acceptés : `numFiness`/`finess`/`etab_finess` → `num_finess`.
professionnels_in_radius
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_dept
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_ameli
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_ameli
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_radius
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`. Le filtrage rayon est résolu à la granularité **commune** (une commune est incluse si son centroïde représentatif est dans le rayon), cohérent avec la précision centroïde ci-dessus ; tri par distance commune croissante. Si la commune la plus proche contient plus de `limit` PS correspondants, le résultat est intégralement puisé dans cette commune (les communes plus lointaines sont évincées du même `limit`) : augmenter `limit` ou resserrer les filtres pour couvrir plusieurs communes. Source : Annuaire Santé, Agence du Numérique en Santé (ANS) — Licence Ouverte v2.0
professionnels_rpps_par_dept
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_etablissement
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_sante
Densité de professionnels de santé pour 100 000 habitants, au niveau **département** (`code_dept`) OU **commune** (`code_insee`, V0.9). Exactement un des deux requis. 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 ou commune. Pour une spécialité médicale, passer `savoir_faire_code` (ex 'SM04' Cardiologie — code 'SM02' est Anesthésie-réanimation, pas Cardiologie). Pour une autre profession que médecin, passer `profession_code` (60 infirmier, 21 pharmacien, etc.). Pour libéraux seuls, passer `mode_exercice_codes: ['L']`. Limitation Paris/Marseille/Lyon : au niveau commune (`code_insee`), les rows RPPS portent l'arrondissement (75108, 13201, 69383). Pour la métropole entière, utiliser `code_dept` (75, 13, 69). `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). Alias acceptés : `dept`/`departement` → `code_dept`, `codeInsee`/`insee` → `code_insee`. 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_sante
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). Alias acceptés : `dept`/`departement` → `code_dept`.
panorama_sante_territoire
Panorama santé d'une commune française en 1 appel (V0.9). Agrège en parallèle : population (INSEE Melodi), densités médecins + infirmiers + pharmaciens avec comparaison nationale (méthodo DREES), et nombre d'établissements FINESS par famille (default ["labo","pharmacie","ehpad","mco","msp_cpts"]). Remplace 7-10 appels MCP individuels par 1 seul. Ne renvoie AUCUNE interprétation métier (pas de qualification automatique 'désert médical') — le caller LLM applique sa grille. **Granularité mixte** : les densités professionnels et la population sont calculées au niveau **commune** ; le décompte FINESS est agrégé au niveau **département** dérivé du code INSEE (limitation V0.9 — pas de RPC count_finess_by_commune encore). Le champ `niveauEtablissements` du résultat indique `"departement"` (succès), `"indisponible"` (dept indérivable, ex code DOM tronqué) — utiliser cette information pour ne pas confondre ratios commune et dept. Limitation Paris/Marseille/Lyon : le code INSEE correspond à un arrondissement (ex 75108 Paris 8e, 13206 Marseille 6e, 69383 Lyon 3e). Pour la métropole entière, appeler `densite_professionnels_sante` au niveau département. Alias acceptés : `codeInsee`/`insee`/`code` → `code_insee`. Sources : RPPS / Annuaire Santé ANS (mensuel), FINESS DREES (bimensuel), INSEE Melodi (PMUN 2023).
inspect_site
Vue 360 d'un établissement de santé en 1 appel (V0.10). Pendant naturel de `panorama_sante_territoire` côté **site** : agrège en parallèle (a) identification FINESS DREES (raison sociale, adresse, téléphone), (b) statut administratif SIRENE via le resolver SIRET (verdicts site + groupe, best_match, SIREN explorés, dinum_errors, explication LLM-friendly), (c) professionnels rattachés via num_finess (sample borné + flag `truncated` si le site a plus de PS — PAS un count total), (d) historique INSEE (timeline périodes administratives par SIRET candidat). Remplace 3 appels MCP individuels (`verifier_site_actif` + `rpps_dans_etablissement` + `historique_etablissement`) par 1 seul. Utile pour : prospection (qualifier un site avant outreach), audit territorial (cross-check rapide d'un FINESS suspect), enrichissement CRM en batch. **Format de retour** : objet `LookupResult`. Quand `found: true`, payload avec 4 sections (finess, statut_site, professionnels, historique). La section `historique` peut être `available: false` quand le FINESS existe mais qu'aucun SIRET candidat n'a été identifié (RPPS vide + DINUM 0 match) — dans ce cas le `message` reprend celui de `historique_etablissement`. Quand `num_finess` est absent de FINESS DREES, retourne `{found: false, lookupStatus: 'not_found', message}`. Coût : 3 sous-appels parallèles. Cache PostgreSQL absorbe la duplication FINESS-RPC ; le pivot RPPS→DINUM est exécuté en double (verifier + historique partagent la cascade), surcoût p95 ≤ 600 ms — acceptable pour un agrégateur. Pour les besoins ciblés (juste le verdict, juste l'historique), préférer les tools individuels. Alias acceptés : `numFiness`/`finess`/`id` → `num_finess`.
lister_specialites_medicales
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 'SM04' 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_name
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_rpps
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_radius
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.

Is this your server?

Create a free RNWY account to connect your on-chain identity to this server. MCP server claiming is coming; register now and you'll be first in line.

Create your account →
More from cturkieh
io.github.cturkieh/france-data-mcp
French territorial intelligence MCP: cross-reference health, business & geo public registries.
Similar servers
GCP MCP
Enables managing Google Cloud Platform resources through natural language commands in Claude Desktop, supporting comprehensive operations across compute, storage, databases, networking, monitoring, and IAM without manual credential setup.
MCP Embedding Search
A Model Context Protocol server that searches transcript segments in a Turso database using vector similarity, allowing users to find relevant content by asking questions without generating new embeddings.
ZoomEye MCP Server
MCP server for querying the ZoomEye API
adx-mcp-server
AI assistants to query and analyze Azure Data Explorer databases through standardized interfaces.
Notion MCP Server
A Model Context Protocol server that connects Claude and other AI assistants to your Notion workspace, allowing AIs to interact with databases, pages, and blocks.
GZOO Cortex
Local-first knowledge graph for developers. Watches project files, extracts entities and relationships via LLMs, and lets you query across projects in natural language with source citations. Provides 4 MCP tools: get_status, list_projects, find_entity, query_cortex.
Indexed from Smithery · Updates nightlyView on Smithery →