内容
# mcp-reunion
[](https://github.com/Hug0x0/mcp-reunion/blob/main/LICENSE)
[](https://glama.ai/mcp/servers/Hug0x0/mcp-reunion)
为[留尼汪岛](https://data.regionreunion.com/)公共开放数据提供MCP服务器,通过`stdio`为Claude Desktop和其他MCP客户端提供服务。
## 覆盖范围
主要来源:`data.regionreunion.com`上的OpenDataSoft Explore v2.1 API。一个小型**国家选举**模块还查询`tabular-api.data.gouv.fr`以获取2024年预期的立法+欧洲结果,而区域门户网站不提供这些信息。目前**99个工具**分布在22个模块中。一个**目录**模块允许客户端访问`data.regionreunion.com`上的大约270个数据集,这些数据集尚未连接到专用工具。
## 模块
- **行政** — 公共行政本地计数器(annuaire),RNA协会注册,选举官员,2022年总统和立法选举结果(每轮立法选举),BOAMP公共采购通知,QPV优先社区,2000年以来的婴儿姓名。
- **市镇** — 复合工具,连接多个数据集:`reunion_find_commune`(模糊解析为规范INSEE代码),`reunion_commune_profile`(人口 + QPV + 学校 + 企业 + 事故 + 博物馆,一次调用),`reunion_compare_communes`(并排比较2-5个市镇),`reunion_iris_profile`(IRIS元数据 + 2014年收入/贫困/不平等指标)。
- **文化** — 法国博物馆目录,Joconde收藏搜索,公共图书馆,节日,年度博物馆参观人数。
- **经济** — SIRENE v3企业搜索,INSEE每月CPI,FEDER 2014-2020受益人,共同工作空间,IRIS级收入/贫困指标。
- **教育** — 中学和高中IPS,2024年Generation标签,Parcoursup项目,地理位置学校目录,REP/REP+优先教育学校,高等教育入学,培训组织/CFA。
- **就业** (`demandeurs-d-emploi-…-a-la-reunion`) — Pôle emploi求职者按年龄/性别和市镇划分的计数。
- **环境** — OpenAQ空气质量,家庭废物吨数,RGE生态改造公司,ZNIEFF保护区,国家公园边界,石油产品消费,水资源管理兴趣点。
- **设施** (`base-permanente-des-equipements-geolocalisee-la-reunion`, `equipements-sportifs`) — INSEE BPE设施和国家体育设备库存,过滤到留尼汪岛。
- **地理** (`ban-lareunion`, `bal-la-possession`, `communes-millesime-france`, `cantons-millesime-france`, `intercommunalites-millesime-france`, `iris-millesime-france`, `les-20-quartiers-villesaintdenis`) — BAN/BAL地址和官方市镇/县/EPCI/IRIS/圣但尼区参考层。
- **健康** — CNAM医疗专业人员目录,COVID统计数据,病理,FINESS,Possession医疗专业人员。
- **酒店业** (`etablissements-touristiques-lareunion-wssoubik`, `hebergements-classespublic`, `localisation-potentielle-ecolodge-lareunion`) — 旅游设施,分类住宿,生态旅馆区。
- **国家选举** (`tabular-api.data.gouv.fr` — 内政部) — 2024年预期立法结果(两轮)按留尼汪岛选区划分,2024年欧洲结果汇总为974部门。补充区域门户网站提供的2022年结果。
- **住房** (`logements-et-logements-sociaux-…`, `couts-et-surfaces-moyens-…`) — 部门住房地图集和社会住房成本。
- **Possession** (`donnees-essentielles-marches-publics-…`, `subventions-attribuees-…`) — La Possession公共采购合同和协会补助金。
- **社会** — CAF受益人和补助金额,托儿设施(圣但尼+Possession)。
- **电信** (`sites-mobiles-5g-a-la-reunion`, `arcep_regions`) — 各运营商的5G蜂窝站点和FttH部署覆盖率。
- **领土** — DVF房地产交易,INSEE市镇人口,La Poste邮政编码,`potentiel foncier`土地储备,Sitadel住宅建筑许可证。
- **旅游** — 家庭小径,峡谷路线,SIT Soubik地标和文化兴趣点,徒步路线,沿海小径,游泳池,2017年以来的每月旅游频率。
- **交通** — TMJA道路交通,功能性道路分类,Car Jaune GTFS站点/路线,区域自行车网络,道路事故(2016-2019),车辆技术检查价格,国家道路上的每日流量和速度限制。
- **城市规划** (`base-permanente-des-plu-de-la-reunion`, `liste-des-permis-de-constuire-…`) — PLU分区和非住宅建筑许可证(Sitadel)。
- **天气** (`donnees-synop-essentielles-ommpublic`) — 留尼汪岛气象站的Météo France SYNOP观测数据:温度,湿度,风,压力,降雨量;以及一个站点列表工具。
- **目录** (元)— `search_catalog`,`inspect_dataset`,`query_dataset`。允许代理发现和查询其他270个数据集中的任何一个,带有原始ODSQL `where`子句作为逃脱口。
`data.regionreunion.com`目录公开了约270个数据集。可以逐步添加更多模块 — 请参见下面的*扩展*。
## 访问尚未连接的数据集
上述专用模块涵盖了最常见的话题,但门户网站共有约270个数据集。为了避免为每个长尾问题编写新模块,**目录**模块为门户网站提供了三个通用工具,作为整个门户网站的逃脱口:
1. **`reunion_search_catalog`** — 跨所有数据集的关键词/主题/发布者搜索。返回数据集ID,标题,描述,记录计数。
2. **`reunion_inspect_dataset`** — 给定数据集ID,返回其完整模式(字段名称+类型),以便代理知道可以过滤哪些字段。
3. **`reunion_query_dataset`** — 使用原始ODSQL `where`子句,`select`,`order_by`,`limit`从任何数据集获取记录。
当用户询问的内容没有被专用模块覆盖时(例如火山学,选举,图书馆出席率...),典型的流程如下:
```
reunion_search_catalog({ query: "volcan" })
→ 返回例如数据集ID "suivi-volcanologique-piton-fournaise"
reunion_inspect_dataset({ dataset_id: "suivi-volcanologique-piton-fournaise" })
→ 返回字段如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
})
```
净效果:代理可以根据其他270个数据集中的任何一个回答问题,而无需有人首先编写新模块。通过`query_dataset`变得流行的那些数据集是被提升到其自己的专用模块并具有精选字段名称的候选者。
## 安装
```bash
npm install
npm run build
npm test
npm run dev
```
## Claude Desktop
```json
{
"mcpServers": {
"reunion": {
"command": "npx",
"args": ["mcp-reunion"]
}
}
}
```
## 扩展
每个模块都位于`src/modules/`中,并通过共享的`ReunionClient`(`src/client.ts`)将OpenDataSoft数据集连接到一个或多个MCP工具。要添加模块:
1. 在`https://data.regionreunion.com/api/explore/v2.1/catalog/datasets?limit=100`处查找数据集ID。
2. 检查其字段(`/catalog/datasets/<id>`)以了解要公开的内容。
3. 编写一个遵循`src/modules/weather.ts`或`transport.ts`中模式的模块。
4. 在`src/modules/index.ts`中注册它并增加`TOOL_COUNT`。
## 生产说明
- 运行时:Node.js 18+
- 传输:`stdio`
- 上游API:`https://data.regionreunion.com/api/explore/v2.1`
- 认证:无
- 源数据语言:主要是法语
## 许可证
MIT — 改编自 [lacausecrypto/mcp-new-caledonia](https://github.com/lacausecrypto/mcp-new-caledonia)。