mcpField
E
ekidata

ekidata

本地服务
github.com/CloudCorpRecords地图与出行01 周前更新

关于 ekidata

ekidata 是连接托管 MCP 服务的本地桥接程序,为需要英文日本官方公共数据的 Agent 和客户端提供车站、无障碍、灾害、预警及列车状态信息。它转发只读工具调用,不维护自有数据集。

主要功能

  1. 01市町村与车站信息
  2. 02无障碍厕所查询
  3. 03车站灾害风险类别
  4. 04实时河流与滑坡预警
  5. 05东京地区列车状态

适用场景

  1. 01查找车站内的无障碍厕所
  2. 02查询车站官方灾害数据
  3. 03查看实时地区预警
  4. 04查询东京地区列车状态

MCP 相关

它通过本地 stdio MCP 服务暴露托管服务的工具,并将调用转发至上游。结果原样返回。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"cloudcorprecords-ekidata": {
"command": "npx",
"args": [
"-y",
"@reneturcios/ekidata"
]
}
}
}
启动命令npx -y @reneturcios/ekidata

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@reneturcios/ekidata0.1.0
ocighcr.io/cloudcorprecords/ekidata:0.1.0

工具

10

收录的工具列表 · 更新于 1 周前

此工具无需参数。

详细介绍

ekidata

ekidata 是一个小型本地桥接服务,可连接到托管的 MCP 服务, 转发以英文提供的日本官方公共数据: 市町村和车站信息、无障碍卫生间查询、来自 MLIT 数据的 车站灾害风险类别、车站搜索、JMA 实时河流和滑坡警报,以及 东京地区列车运行状态。

该桥接服务不维护自己的数据集。它会在本地提供 上游服务的工具列表,与从实时端点捕获的内容完全一致, 并将每次工具调用转发到上游,原样返回结果。捕获的工具 均只读取公共数据。

工具

  • ping — 连接测试和数据新鲜度检查。无 参数,也没有必填字段。
  • get_municipality_context — 根据 5 位代码或准确名称获取 市町村官方数据。必填:name_or_code。可选:fields。
  • get_station_context — 根据车站名称或 station_id 解析出 相同的市町村信息。其捕获的架构中必填列表为空,因此 可以提供任一标识符。
  • get_toilet_by_station — 车站内的无障碍卫生间信息,包括楼层、 设施和最近的出口。必填:station。
  • get_public_toilet_by_city — 市町村内的公共卫生间信息,包括无障碍标记、地址和 坐标。必填:city。
  • get_station_hazard — 车站的官方灾害风险 类别,转发自 MLIT 数据。 必填:station_name。
  • station_search — 通过描述车站周边环境来查找车站,可用英文或日文, 并可使用 name_contains、pref、 limit、拉面、卫生间、尿布和洪水等级等筛选条件。 必填:q。
  • get_active_alerts — JMA 实时河流洪水预报 和滑坡警报。可选:area。无必填字段。
  • get_station_alerts — 获取车站所在都道府县的相同 JMA 警报。 必填:station_name。
  • get_train_status — 根据线路或车站名称查询东京地区列车 实时运行状态。必填:query。

配置

  • GACHI_MCP_URL(可选)— 覆盖上游 端点。默认值为 https://api.gachi-tokusuru.com/mcp。 (此覆盖接口是本次重建中标明的 自有实现。)
  • GACHI_API_KEY(可选)— 设置后,每个上游 请求都会携带 Authorization: Bearer <key> 标头。 未设置时,不会发送身份验证标头。(此 转发机制也是本次重建中标明的自有实现; 捕获原始接口时未使用密钥。)
转发机制

首次调用工具时,客户端会与上游建立可流式传输的 HTTP 会话:发送 JSON-RPC initialize 请求(protocolVersion 2025-03-26,clientInfo name ekidata),然后发送 notifications/initialized 通知,接着发送携带调用者原样参数的 tools/call 请求。当上游 在 initialize 响应中返回 Mcp-Session-Id 标头时, 该值会随会话的后续每个请求一起发送;此会话会在进程运行期间复用。 响应可能是普通 JSON,也可能是服务器发送事件; 两种格式都会读取。

上游成功结果会原样传递, 包括上游设置的任何 isError 标记。 失败情况——JSON-RPC 错误、非 2xx 状态、无法读取的响应 或无法完成的请求——会以 isError 结果返回, 其中文本以 ekidata error: 开头(此呈现方式是本次重建 中标明的自有实现)。

命令行工具

每个工具也可作为子命令使用,并接受一个 JSON 参数 字符串(不接受参数的工具则省略该字符串):

npx @reneturcios/ekidata ping
npx @reneturcios/ekidata get_municipality_context '{"name_or_code":"13104"}'
npx @reneturcios/ekidata station_search '{"q":"terminal station with late-night ramen"}'
npx @reneturcios/ekidata get_train_status '{"query":"Yamanote"}'
npx @reneturcios/ekidata --version

退出代码:成功时为 0,结果为 isError 时为 1, 用法错误时为 2。

MCP 服务

npx -y @reneturcios/ekidata mcp

MCP 客户端配置:

{
  "mcpServers": {
    "ekidata": {
      "command": "npx",
      "args": ["-y", "@reneturcios/ekidata", "mcp"]
    }
  }
}

Docker

docker run -i ghcr.io/cloudcorprecords/ekidata
docker run --rm ghcr.io/cloudcorprecords/ekidata --version

容器的默认命令为 mcp,因此第一种 形式是 stdio MCP 服务;其他参数会照常传递给命令行工具。

开发

npm install
npm run build
npm test
npm run dev

测试套件完全使用桩接的 JSON-RPC 上游运行,不会发起实时网络调用。

许可证

MIT — 参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。