mcpField
H
hithereiamaliff-mcp-datagovmy

hithereiamaliff-mcp-datagovmy

远程服务
github.com/hithereiamaliff法律与政务318 周前更新
代码仓库

关于 hithereiamaliff-mcp-datagovmy

hithereiamaliff-mcp-datagovmy 是用于访问马来西亚开放数据 API 的 MCP 服务,整合数据集与仪表板检索、Parquet、天气、洪水及公共交通工具;它并非马来西亚政府官方服务。

主要功能

  1. 01搜索数据集与仪表板
  2. 02获取数据集和仪表板详情
  3. 03解析 Parquet 文件
  4. 04天气、地震与洪水预警
  5. 05GTFS 公交数据与地点搜索

适用场景

  1. 01查找马来西亚政府数据集
  2. 02检查 Parquet 数据及相关仪表板
  3. 03查询天气或洪水信息
  4. 04查找公交线路、站点和到站信息

MCP 相关

该服务通过 MCP 端点提供马来西亚开放数据工具,包括数据集、仪表板、天气、洪水和 GTFS 操作。托管的 Streamable HTTP 端点无需 API 密钥或地理编码凭据即可使用。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://server.smithery.ai/@hithereiamaliff/mcp-datagovmy/mcp
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

全部服务地址
Streamable HTTPhttps://server.smithery.ai/@hithereiamaliff/mcp-datagovmy/mcp需要授权

工具

详细介绍

马来西亚开放数据 MCP

MCP 端点: https://mcp.techmavie.digital/datagovmy/mcp

分析仪表板: https://mcp.techmavie.digital/datagovmy/analytics/dashboard

用于马来西亚开放数据 API 的 MCP(模型上下文协议)服务,提供数据集、仪表板、DOSM、天气、洪水、parquet 文件和 GTFS 公共交通数据相关工具。

这不是马来西亚政府、Jabatan Digital Negara 或 Ministry of Digital 的官方 MCP 服务。

功能

  • 跨数据集和仪表板统一搜索
  • 从 data-gov-my/datagovmy-meta 实时获取元数据
  • 纯 JavaScript parquet 解析,支持原始、摘要和最新时期模式
  • GTFS 静态和实时公共交通工具
  • 无需凭据即可对 GTFS 位置进行地理编码
  • 内置分析端点和仪表板
地理编码

GTFS 位置搜索现在仅使用 Nominatim(OpenStreetMap)。

  • 无需 Google Maps、GrabMaps 或 AWS 凭据
  • 托管 MCP URL 可直接使用,无需任何凭据
  • 请求会受到限流并缓存,以减少对公共 Nominatim 服务的影响
  • 可自托管的运营者可以选择设置 NOMINATIM_CONTACT_EMAIL

快速开始

托管服务

直接使用托管端点:

https://mcp.techmavie.digital/datagovmy/mcp

MCP 客户端配置示例:

{
  "mcpServers": {
    "malaysia-opendata": {
      "transport": "streamable-http",
      "url": "https://mcp.techmavie.digital/datagovmy/mcp"
    }
  }
}

无需 API 密钥或地理编码凭据。

自托管

详细的 VPS 说明请参阅 deploy/DEPLOYMENT.md。

npm install
npm run build
npm run start:http

工具概览

搜索和元数据
  • search_all
  • list_datasets_catalogue
  • search_datasets_catalogue
  • filter_datasets_catalogue
  • get_dataset_filters
  • get_dataset_details
  • list_dashboards
  • search_dashboards
  • get_dashboard_details
  • get_dashboard_charts
  • list_dosm_datasets
  • get_dosm_dataset
文件和仪表板
  • parse_parquet_file
  • get_parquet_info
  • find_dashboard_for_parquet
天气和洪水
  • get_weather_forecast
  • get_weather_warnings
  • get_earthquake_warnings
  • get_flood_warnings
交通和 GTFS
  • list_transport_agencies
  • get_transport_data
  • get_gtfs_static
  • get_gtfs_realtime_vehicle_position
  • parse_gtfs_static
  • parse_gtfs_realtime
  • get_transit_routes
  • get_transit_stops
  • get_transit_arrivals
  • search_transit_stops_by_location
  • find_nearest_transit_stops
其他
  • hello

更多详情和使用指南请参阅 TOOLS.md 和 PROMPT.md。

本地开发

# Install dependencies
npm install

# Run the HTTP server in development mode
npm run dev:http

# Build and run the production server locally
npm run build
npm run start:http

# Verify the server
curl http://localhost:8080/health
curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

分析

托管服务提供以下端点:

  • /analytics 用于获取 JSON 统计数据
  • /analytics/tools 用于获取工具使用统计数据
  • /analytics/dashboard 用于访问 HTML 仪表板

配置

核心环境变量
变量默认值描述
PORT8080HTTP 服务端口
HOST0.0.0.0绑定地址
API_BASE_URLhttps://api.data.gov.my马来西亚开放数据 API 基础 URL
CACHE_TTL3600000元数据缓存 TTL,单位为毫秒
AXIOS_TIMEOUT30000HTTP 超时时间,单位为毫秒
GITHUB_FETCH_BATCH_SIZE20并发获取 GitHub 元数据的数量
GH_PATempty可选的 GitHub 令牌,用于提高 GitHub API 速率限制
ANALYTICS_RESET_KEYempty用于分析重置/导入端点的密钥
ANALYTICS_DIR/app/data分析数据存储目录
FIREBASE_DATABASE_URLempty用于持久化分析数据的 Firebase Realtime Database URL
FIREBASE_CREDENTIALS_PATH.credentials/firebase-service-account.jsonFirebase 服务账号路径
NOMINATIM_CONTACT_EMAILempty可选的联系邮箱,自托管部署时会附加到 Nominatim 查询中

.env 示例:

GH_PAT=your_github_pat_here
[email protected]
ANALYTICS_RESET_KEY=your_analytics_reset_key_here
ANALYTICS_DIR=/app/data
FIREBASE_DATABASE_URL=your_firebase_database_url_here
FIREBASE_CREDENTIALS_PATH=.credentials/firebase-service-account.json

Nominatim 说明

该服务现在依赖公共 Nominatim 来搜索 GTFS 位置名称。代码包含:

  • 自定义 User-Agent
  • 通过 NOMINATIM_CONTACT_EMAIL 提供可选的 email 支持
  • 串行发送请求,最低间隔为 1 秒
  • 正向和负向结果缓存

如果预计地理编码请求量会持续较高,请考虑自托管兼容的地理编码服务,或通过自己获准使用的服务进行路由。

项目结构

src/
  index.ts
  http-server.ts
  config.ts
  datacatalogue.tools.ts
  dashboards.tools.ts
  dosm.tools.ts
  flood.tools.ts
  gtfs.tools.ts
  parquet.tools.ts
  transport.tools.ts
  unified-search.tools.ts
  weather.tools.ts
  firebase-analytics.ts
  utils/

deploy/
  DEPLOYMENT.md
  nginx-mcp.conf

故障排除

# Docker logs
docker compose logs -f

# Local health check
curl http://localhost:8080/health

# Hosted MCP tool list
curl -X POST https://mcp.techmavie.digital/datagovmy/mcp \
  -H "Content-Type: application/json" \
  -d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'

许可证

MIT。请参阅 LICENSE。

致谢

评论

支持 Markdown

第一次接触 MCP?

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

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