mcpField
M
myopendata

myopendata

本地服务
github.com/CloudCorpRecords法律与政务15 天前更新

关于 myopendata

myopendata 是面向查询马来西亚公共数据的 MCP 服务和命令行工具,涵盖数据集、仪表板、统计、天气、洪水预警和交通数据。它将这些来源整合在一个无需密钥的程序中,但仅实现上游文档工具的部分子集。

主要功能

  1. 01统一搜索数据集和仪表板
  2. 02查看数据集和仪表板详情
  3. 03查询 DOSM 数据集
  4. 04天气预报和洪水预警
  5. 05GTFS 路线和站点
  6. 06命令行与 stdio MCP 服务

适用场景

  1. 01按主题查找数据集或仪表板
  2. 02查看马来西亚天气和洪水预警
  3. 03查询 GTFS 公共交通路线和站点

MCP 相关

它以 stdio MCP 服务运行,向客户端提供搜索和获取数据集、仪表板、DOSM 数据、天气、预警及 GTFS 交通信息的工具。

配置

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

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

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

安装包
npm@reneturcios/myopendata0.1.0
ocighcr.io/cloudcorprecords/myopendata:0.1.0

工具

16

收录的工具列表 · 更新于 5 天前

参数类型必填说明
limitinteger否要返回的最大结果数。
querystring是搜索查询文本。

详细介绍

myopendata

myopendata 可读取马来西亚的开放数据:跨数据集目录和仪表板的统一搜索、数据集和仪表板详情、马来西亚统计局(DOSM)数据集、天气预报和预警、洪水预警,以及 GTFS 公共交通线路和站点。 一个二进制文件同时提供命令行界面和 stdio MCP 服务。

这是一次从头构建的实现,涵盖有文档说明的核心子集(32 个工具中的 16 个);不包括 parquet、原始 GTFS 解析、到站信息和位置搜索工具。它不是马来西亚政府的官方服务。

无需 API 密钥。此服务不需要密钥,因此无需任何配置即可使用 myopendata。可通过 MYOPENDATA_API_URL 覆盖 API 基础 URL;未设置时,调用将发送到 https://api.data.gov.my。

安装

npx @reneturcios/myopendata list-datasets

也可以运行容器映像:

docker run -i ghcr.io/cloudcorprecords/myopendata

容器默认启动 MCP 服务(见下文)。传入 CLI 参数即可将其用作 CLI。

CLI

myopendata search-all "e-payment statistics" --limit 10
myopendata list-datasets --limit 5
myopendata search-datasets population
myopendata dataset population_malaysia
myopendata list-dashboards
myopendata search-dashboards health
myopendata dashboard kawasanku
myopendata list-dosm
myopendata dosm population
myopendata weather-forecast --location "Kuala Lumpur"
myopendata weather-warnings
myopendata flood-warnings
myopendata transport-agencies
myopendata transit-routes prasarana --category rapid-rail-kl
myopendata transit-stops ktmb
myopendata hello Ada

myopendata --version

命令会输出上游 JSON 负载;hello 会输出问候字符串。退出代码:成功时为 0,调用失败(包括上游 API 错误)时为 1,用法错误时为 2。

MCP 服务

一个二进制文件提供两种用法。mcp 子命令会启动 stdio MCP 服务:

npx -y @reneturcios/myopendata mcp

MCP 客户端配置:

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

若要让服务连接到其他兼容主机,请在该服务的客户端 env 中添加 MYOPENDATA_API_URL。

工具
工具输入返回内容
search_allquery(必填)、limit(可选)跨数据集和仪表板的统一搜索结果。
list_datasets_cataloguelimit(可选)数据目录中的数据集。
search_datasets_cataloguequery(必填)、limit(可选)符合查询条件的目录数据集。
get_dataset_detailsid(必填)单个数据集的详情。
list_dashboardslimit(可选)可用仪表板。
search_dashboardsquery(必填)、limit(可选)符合查询条件的仪表板。
get_dashboard_detailsname(必填)单个仪表板的详情。
list_dosm_datasetslimit(可选)DOSM 数据集。
get_dosm_datasetid(必填)单个 DOSM 数据集。
get_weather_forecastlocation(可选)天气预报负载。
get_weather_warnings(无)当前天气预警。
get_flood_warnings(无)当前洪水预警。
list_transport_agencies(无)提供 GTFS 数据的交通机构。
get_transit_routesprovider(必填)、category(可选)GTFS 服务提供方的公共交通线路。
get_transit_stopsprovider(必填)、category(可选)GTFS 服务提供方的公共交通站点。
helloname(可选)问候字符串。用于连接测试的健康检查类工具。

上游文档中列出的已知 GTFS 服务提供方包括 mybas-johor、ktmb 和 prasarana;常用名称是原始服务的一项功能,本次重建不会对其进行规范化——请直接传入服务提供方 ID。

开发

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev     # run the CLI from source via tsx

许可证

MIT — 参见 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

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

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