Skip to main content
Glama
cturkieh

France Data MCP

finess_sirene_coverage_in_radius

Read-onlyIdempotent

Compare FINESS (DREES) and SIRENE (INSEE) registries within a geographic radius to detect over-declaration or under-declaration of healthcare facilities. Uses NAF code and optional FINESS families for accurate matching.

Instructions

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. V0.13.2 : si familles n'est pas passé, le scope FINESS est auto-dérivé du NAF cible (garantit un ratio cohérent — sinon finess_sites mélangerait toutes les familles co-localisées dans le rayon). Le matching FINESS↔SIRET est gaté par activité NAF↔famille (cas Hôpital Franco-Britannique : IFSI et labo au 4 rue Kléber ne sont plus confondus). Source : FINESS DREES + DINUM Recherche Entreprises + SIRENE INSEE.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
lonYesLongitude WGS84 du centre de la zone.
latYesLatitude WGS84 du centre de la zone.
radius_kmNoRayon de la zone en km (0.1-50, défaut 5).
nafYesCode NAF SIRENE à comparer (ex: '8690B' labos d'analyses médicales, '4773Z' pharmacies, '8621Z' médecine générale).
famillesNoFamilles FINESS à inclure côté DREES. V0.13.2 : si omis, auto-dérivé du NAF cible via la table naf-finess-mapping (ex: naf=8690B → familles=[labo] ; naf=8610Z → multi-familles hospitalières). Passer explicitement si vous voulez restreindre davantage le scope. Valeurs : 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.
max_unites_legalesNoNombre maximum d'unités légales DINUM à déplier (1-25, défaut 10). Au-delà : truncated_unites_legales=true.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
finess_sitesYesNombre de sites FINESS dans le rayon (référentiel DREES).
sirene_siretsYesNombre de SIRET physiques actifs au NAF cible dans le rayon (DINUM/SIRENE).
matched_countNoNombre de matchs greedy Dice ≥ 0.7.
coverage_ratioYesmatched / finess_sites ∈ [0, 1]. null si `sirene_sirets === 0` (zone rurale + NAF rare → ratio non calculable).
finess_only_countNo
sirene_only_countNo
matched_samplesNo
finess_only_samplesNo
sirene_only_samplesNo
methodologyYesDescription LLM-friendly de l'algorithme appliqué.
caveatsNoLimitations méthodologiques explicites (discipline zéro overclaim).
truncated_unites_legalesNotrue si le cap `maxUnitesLegales` a été atteint avant énumération complète.
familles_auto_deriveesYesFamilles FINESS auto-dérivées du `naf` cible quand `familles` n'est pas passé (V0.13.2 couche 1 — garantit un ratio cohérent). `null` si le caller a passé `familles` explicitement.
familles_excluees_nafNoFamilles passées en input mais incompatibles avec le `naf` cible, exclues du périmètre FINESS (V0.13.2 couche 2). Absent si tout est cohérent ou si `familles` n'a pas été passé.
coverage_statusYesStatut typé du calcul (toujours présent). `computed` = calcul nominal (finess_sites peut être 0 sur rayon vide). `scope_empty_unknown_naf` = NAF non mappé, court-circuit (corriger le NAF ou compléter naf-finess-mapping). `scope_empty_familles_incompatible` = `familles` toutes incompatibles avec le NAF (réviser le couple ou omettre `familles` pour auto-derive). Le `caveats[]` reste exposé en parallèle pour lecture humaine — ce champ fait foi pour le routage.
perimetreNoLentille de la source : ce que le comptage inclut/exclut. Lire `completeness_note` et la restituer au lecteur final.
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations (readOnlyHint, destructiveHint, idempotentHint, openWorldHint) are complemented by extensive behavioral details: it computes a ratio, includes methodology, version-specific behavior (auto-derivation of familles), and matching logic with NAF↔famille gating. No contradiction with annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is packed with information in a few sentences, each serving a distinct purpose: purpose, utility, version update, matching logic, sources. It is front-loaded with the main action, and every sentence earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity (6 parameters, 3 required, output schema exists), the description covers purpose, usage context, parameter behavior, version details, and methodology. It leaves no obvious gaps for an agent to invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

With 100% schema description coverage, the baseline is met, and the description adds significant value: it explains the auto-derivation of 'familles' from 'naf', provides version context, and gives examples of NAF-to-famille mapping. This goes beyond the enum list in the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'compare' and the resources (FINESS DREES and SIRENE DINUM databases), specifying the geographic radius scope. It distinguishes itself from sibling tools like 'reconcilier_finess_sirene' by focusing on coverage ratio detection of over-declaration or under-declaration.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly states when to use the tool: to detect sur-déclaration FINESS or sous-déclaration DREES, and mentions methodology and caveats. While it does not explicitly state when not to use it, it provides clear context and purpose, guiding the agent appropriately.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Install Server

Other Tools

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