Mcp Reunion — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Reunion (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
MCP server for La Réunion public open data, exposed over stdio for Claude Desktop and other MCP clients.
Primary source: the OpenDataSoft Explore v2.1 API at data.regionreunion.com. A small National elections module also queries tabular-api.data.gouv.fr for the 2024 anticipated legislative + European results that the regional portal doesn't carry. Currently 99 tools across 22 modules. A catalog module lets the client reach any of the ~270 datasets at data.regionreunion.com that aren't wired to a dedicated tool yet.
reunion_find_commune\ (fuzzy resolver to canonical INSEE code), \reunion_commune_profile\ (population + QPV + schools + businesses + accidents + museums in one call), \reunion_compare_communes\ (side-by-side on 2-5 communes), \reunion_iris_profile\ (IRIS metadata + 2014 income/poverty/inequality indicators).demandeurs-d-emploi-…-a-la-reunion) — Pôle emploi jobseeker counts by age/sex and by commune.base-permanente-des-equipements-geolocalisee-la-reunion, equipements-sportifs) — INSEE BPE facilities and the national sport-equipment inventory, filtered to Réunion.ban-lareunion, bal-la-possession, communes-millesime-france, cantons-millesime-france, intercommunalites-millesime-france, iris-millesime-france, les-20-quartiers-villesaintdenis) — BAN/BAL addresses and the official communes / cantons / EPCI / IRIS / Saint-Denis quarters reference layers.etablissements-touristiques-lareunion-wssoubik, hebergements-classespublic, localisation-potentielle-ecolodge-lareunion) — tourism establishments, classified accommodations, ecolodge zones.tabular-api.data.gouv.fr — Ministère de l'Intérieur) — 2024 anticipated legislative results (rounds 1 & 2) per Réunion circonscription, and 2024 European results aggregated for département 974. Complements the 2022 results carried by the regional portal.logements-et-logements-sociaux-…, couts-et-surfaces-moyens-…) — departmental housing atlas and social-housing costs.donnees-essentielles-marches-publics-…, subventions-attribuees-…) — La Possession public procurement contracts and association grants.sites-mobiles-5g-a-la-reunion, arcep_regions) — 5G cell sites per operator and FttH deployment coverage.potentiel foncier land reserves, Sitadel residential construction permits.base-permanente-des-plu-de-la-reunion, liste-des-permis-de-constuire-…) — PLU zoning and non-residential building permits (Sitadel).donnees-synop-essentielles-ommpublic) — Météo France SYNOP observations for Réunion stations: temperature, humidity, wind, pressure, rainfall; plus a station-listing tool.search_catalog, inspect_dataset, query_dataset. Lets the agent discover and query any of the ~270 datasets not covered by a dedicated module, with a raw ODSQL where clause as escape hatch.The data.regionreunion.com catalog exposes ~270 datasets. More modules can be added incrementally — see Extending below.
The dedicated modules above cover the most-asked topics, but the portal has ~270 datasets in total. Instead of writing a new module for every long-tail question, the catalog module gives the MCP client three generic tools that together act as an escape hatch onto the whole portal:
where clause, select, order_by, limit.Typical flow when the user asks about something no dedicated module covers (e.g. volcanology, elections, library attendance, …):
reunion_search_catalog({ query: "volcan" })
→ returns e.g. dataset_id "suivi-volcanologique-piton-fournaise"
reunion_inspect_dataset({ dataset_id: "suivi-volcanologique-piton-fournaise" })
→ returns fields like date, type_evenement, magnitude, profondeur…
reunion_query_dataset({
dataset_id: "suivi-volcanologique-piton-fournaise",
where: "type_evenement = 'éruption' AND date >= date'2023-01-01'",
order_by: "date DESC",
limit: 20
})Net effect: the agent can answer questions backed by any of the ~270 datasets without anyone having to code a new module first. Datasets that turn out to be popular via query_dataset are candidates for being promoted into their own dedicated module with curated field names.
npm install
npm run build
npm test
npm run dev{
"mcpServers": {
"reunion": {
"command": "npx",
"args": ["mcp-reunion"]
}
}
}Each module lives in src/modules/ and wires an OpenDataSoft dataset to one or more MCP tools via the shared ReunionClient (src/client.ts). To add a module:
https://data.regionreunion.com/api/explore/v2.1/catalog/datasets?limit=100./catalog/datasets/<id>) to know what to expose.src/modules/weather.ts or transport.ts.src/modules/index.ts and bump TOOL_COUNT.stdiohttps://data.regionreunion.com/api/explore/v2.1MIT — adapted from lacausecrypto/mcp-new-caledonia.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.