内容
# Gachi 数据 API — 日本车站及无障碍数据(API · MCP · 开放数据集)
> **这是一个托管服务,您无需自行托管。**
> 在 **https://api.gachi-tokusuru.com** 获取免费的 API 密钥,并连接到下面的远程端点。
> 本仓库中的源代码已公开,以保证透明度;数据存放在托管的后端,因此本地克隆不会返回数据。
**深入、晦涩的日本数据,您在其他地方找不到** — 车站、无障碍设施、空置、危险。经过人工验证,以英语为主,为 AI 代理构建。提供 **MCP 服务器**、**REST API** 和免费的 **开放数据集**。一个密钥可用于 API 和 MCP。
- **526 个东京车站** — 无障碍 / 多功能卫生间,包含楼层、性别、设备标志(轮椅、造口、婴儿换尿布台)和 **最近的车站出口**(通过空间连接计算的原始第一方值 — 不在任何原始数据集中)。
- **612 个全国市镇** — 公共卫生间,包含轮椅 / 婴儿座 / 造口标志、地址和坐标。
- **免费开放数据集** — 日本车站大师(实体解析,日本全国 9,145 个车站)和 2000-2025 年客流量,共享一个 `station_id`: https://github.com/eng213035/gachi-open-datasets (Zenodo DOI `10.5281/zenodo.21199500`).
车站名称接受日语(新宿)或罗马拼音(Shinjuku, Kita-Senju)作为主要车站。
## 连接
- **端点:** `https://api.gachi-tokusuru.com/mcp`
- **传输:** 可流式 HTTP(远程)
- **身份验证:** `Authorization: Bearer <API_KEY>` — 在 https://api.gachi-tokusuru.com 获取免费密钥
```json
{
"mcpServers": {
"japan-toilet": {
"url": "https://api.gachi-tokusuru.com/mcp",
"headers": { "Authorization": "Bearer YOUR_API_KEY" }
}
}
}
```
## 工具
| 工具 | 参数 | 返回值 |
|------|----------|---------|
| `get_toilet_by_station` | `station`(日语或罗马拼音) | 东京车站的无障碍卫生间,包含 `nearest_exit` |
| `get_public_toilet_by_city` | `city`(日语) | 某个市镇的公共卫生间(大城市前 50 名) |
| `get_station_hazard` | `station_name`(日语或罗马拼音) | 车站的官方 MLIT 危险类别(洪水 / 液化 / 风暴潮),实时中继,缓存 14 天 — 无派生分数。山体滑坡和海啸受许可证限制(`available:false` + 官方地图链接)。不是官方危险地图的替代品。 |
## REST 端点
- `GET /v1/station-toilets/search?station=Shinjuku` — 东京车站的无障碍卫生间
- `GET /v1/toilets/nearby?lat=&lng=&radius=&wheelchair=&ostomate=&diaper=` — 某个点的附近公共卫生间
- `GET /v1/stations/{station_id}/hazard` — **车站的官方 MLIT 危险类别,实时中继**(洪水淹没深度等级,液化 / 地形,风暴潮存在)。值直接从 国土交通省 不動産情報ライブラリ 返回,附带属性,缓存 14 天 — **无派生分数**,且 **不是官方危险地图的替代品**。山体滑坡和海啸源层受许可证限制,因此返回 `available:false`,并附带官方危险地图链接。同时可作为 MCP 工具 `get_station_hazard(station_name)` 使用。`station_id` 来自 [日本车站大师](https://github.com/eng213035/gachi-open-datasets)(例如 `st_00001`);423 个车站中有坐标(2 个车站未定位 → `hazard: null`)。
所有端点均使用相同的 `Authorization: Bearer <key>`,并共享一个每月的配额。完整规范:`/openapi.yaml`,文档:`/docs`。
## 示例
```bash
curl -X POST https://api.gachi-tokusuru.com/mcp \
-H "Authorization: Bearer YOUR_API_KEY" -H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call",
"params":{"name":"get_toilet_by_station","arguments":{"station":"Shinjuku"}}}'
```
## 定价
免费 1k · 专业版 $19/100k · 全通 $49/200k · 企业版 $149/500k。完整详情:https://api.gachi-tokusuru.com
付费计划是自助服务:Stripe 结账后,客户将被重定向到 `/activate?session_id=…`,该页面验证付款,解析付费金额的计划,并颁发 API 密钥(每个会话幂等 — 重新加载显示相同的密钥)。无需手动密钥处理。
## 运维说明(内部)
- **订阅取消尚未与密钥吊销联动**(此版本中无 Stripe webhook)。取消订阅者的密钥在手动禁用之前仍可使用。**每月对账**: 将 Stripe 的活跃订阅与已颁发的 `key:*` 记录进行比较,并为已过期的订阅者禁用密钥。`customer.subscription.deleted` webhook → 自动吊销是下一阶段。
计划在 `/activate` 中通过付费金额检测(`AMOUNT_TO_PLAN`:$19/$49/$149)。如果新计划重用现有金额,请添加显式映射。
## 许可(两层 — 请仔细阅读)
- **本仓库中的代码**:MIT(参见 [LICENSE](LICENSE))。仅适用于服务器代码。
- **API 返回的数据** **不是 MIT**。它源自:
- 东京都政府 社会福祉局 — 无障碍卫生间数据集(**CC BY 4.0**)
- BODIK 全国公共卫生间开放数据(**CC BY 4.0** 或等效的市政条款)
- 通过 ODPT(公共交通开放数据中心)获取的英文车站名称
- `nearest_exit` 是 gachi-tokusuru.com 的原始派生值。
- 每次 API 响应中都会返回属性。不保证及时性、准确性和完整性。