马来西亚开放数据MCP
MCP端点: https://mcp.techmavie.digital/datagovmy/mcp
分析仪表板: https://mcp.techmavie.digital/datagovmy/analytics/dashboard
马来西亚开放数据API的MCP(模型上下文协议)服务器,配备数据集、仪表板、DOSM、天气、洪水、拼花文件和GTFS交通数据工具。
这是 不 马来西亚政府、Jabatan Digital Negara或数字部的官方MCP服务器。
特性
- 跨数据集和仪表板的统一搜索
- 从以下位置获取实时元数据
data-gov-my/datagovmy-meta - 纯JavaScript拼花解析,具有原始、摘要和最新周期模式
- GTFS静态和实时运输工具
- GTFS位置搜索的零凭证地理编码
- 内置分析端点和仪表板
地理编码
GTFS位置搜索现在使用 仅限提名(OpenStreetMap).
- 无需谷歌地图、GrabMaps或AWS凭据
- 托管的MCP URL在无凭据的情况下按原样工作
- 请求被限制和缓存,以便对公共提名服务更友好
- 自托管运营商可以选择设置
NOMINATIM_CONTACT_EMAIL
快速开始
托管服务器
直接使用托管端点:
https://mcp.techmavie.digital/datagovmy/mcpMCP客户端配置示例:
{
"mcpServers": {
"malaysia-opendata": {
"transport": "streamable-http",
"url": "https://mcp.techmavie.digital/datagovmy/mcp"
}
}
}不需要API密钥或地理编码凭据。
自托管
详细的VPS使用说明 部署/DEPLOYMENT.md.
npm install
npm run build
npm run start:http工具概述
搜索和元数据
search_alllist_datasets_cataloguesearch_datasets_cataloguefilter_datasets_catalogueget_dataset_filtersget_dataset_detailslist_dashboardssearch_dashboardsget_dashboard_detailsget_dashboard_chartslist_dosm_datasetsget_dosm_dataset
文件和仪表板
parse_parquet_fileget_parquet_infofind_dashboard_for_parquet
天气和洪水
get_weather_forecastget_weather_warningsget_earthquake_warningsget_flood_warnings
运输和GTFS
list_transport_agenciesget_transport_dataget_gtfs_staticget_gtfs_realtime_vehicle_positionparse_gtfs_staticparse_gtfs_realtimeget_transit_routesget_transit_stopsget_transit_arrivalssearch_transit_stops_by_locationfind_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"}'分析
托管服务器公开:
/analyticsJSON统计数据/analytics/tools用于工具使用统计信息/analytics/dashboard用于HTML仪表板
配置
核心环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
PORT | 8080 | HTTP服务器端口 |
HOST | 0.0.0.0 | 绑定地址 |
API_BASE_URL | https://api.data.gov.my | 马来西亚开放数据API基础URL |
CACHE_TTL | 3600000 | 元数据缓存TTL(毫秒) |
AXIOS_TIMEOUT | 30000 | HTTP超时(毫秒) |
GITHUB_FETCH_BATCH_SIZE | 20 | 并发GitHub元数据获取 |
GH_PAT | empty | 用于更高GitHub API速率限制的可选GitHub令牌 |
ANALYTICS_RESET_KEY | 空 | 分析重置/导入端点的密钥 |
ANALYTICS_DIR | /app/data | 分析存储目录 |
FIREBASE_DATABASE_URL | empty | 用于分析持久性的Firebase实时数据库URL |
FIREBASE_CREDENTIALS_PATH | .credentials/firebase-service-account.json | Firebase服务帐户路径 |
NOMINATIM_CONTACT_EMAIL | empty | 可选的联系电子邮件附加到自托管部署的Nominim查询中 |
示例 .env:
GH_PAT=your_github_pat_here
NOMINATIM_CONTACT_EMAIL=your-email@example.com
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提名备注
服务器现在依赖于公共提名进行GTFS位置名称搜索。该代码包括:
- 习俗
User-Agent - 可选的
email通过支持NOMINATIM_CONTACT_EMAIL - 序列化请求,每二层有一个请求
- 正负结果缓存
如果您希望持续的地理编码流量,请考虑自行托管兼容的地理编码器或通过您自己批准的服务进行路由。
项目结构
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。看 许可证.
