hithereiamaliff-mcp-datagovmy
RemoteAbout hithereiamaliff-mcp-datagovmy
hithereiamaliff-mcp-datagovmy is an MCP server for accessing Malaysia's open-data APIs. It combines dataset and dashboard discovery with parquet, weather, flood, and public-transit tools; it is not an official Malaysian government server.
Key features
- 01Search datasets and dashboards
- 02Fetch dataset and dashboard details
- 03Parse parquet files
- 04Weather, earthquake, and flood alerts
- 05GTFS transit data and location search
Use cases
- 01Finding Malaysian government datasets
- 02Inspecting parquet data and related dashboards
- 03Checking weather or flood information
- 04Looking up transit routes, stops, and arrivals
MCP support
The server exposes Malaysia open-data tools through an MCP endpoint, including dataset, dashboard, weather, flood, and GTFS operations. A hosted Streamable HTTP endpoint is available without API keys or geocoding credentials.
Configuration
Remote servers need no local install. Pick your client, then copy the config or install in one click.
https://server.smithery.ai/@hithereiamaliff/mcp-datagovmy/mcpclaude mcp add --transport http ai-smithery-hithereiamaliff-mcp-datagovmy https://server.smithery.ai/@hithereiamaliff/mcp-datagovmy/mcp{"mcpServers":{"ai-smithery-hithereiamaliff-mcp-datagovmy":{"type":"http","url":"https://server.smithery.ai/@hithereiamaliff/mcp-datagovmy/mcp"}}}Open in Cursor{"servers":{"ai-smithery-hithereiamaliff-mcp-datagovmy":{"type":"http","url":"https://server.smithery.ai/@hithereiamaliff/mcp-datagovmy/mcp"}}}Open in VS Code{"mcpServers":{"ai-smithery-hithereiamaliff-mcp-datagovmy":{"type":"http","url":"https://server.smithery.ai/@hithereiamaliff/mcp-datagovmy/mcp"}}}{"mcpServers":{"ai-smithery-hithereiamaliff-mcp-datagovmy":{"serverUrl":"https://server.smithery.ai/@hithereiamaliff/mcp-datagovmy/mcp"}}}Run commands in a terminal; paste JSON into the client’s MCP config and restart. Servers that need sign-in will prompt on first connect.
https://server.smithery.ai/@hithereiamaliff/mcp-datagovmy/mcpAuth requiredTools
Details
From the project READMEMalaysia Open Data MCP
MCP Endpoint: https://mcp.techmavie.digital/datagovmy/mcp
Analytics Dashboard: https://mcp.techmavie.digital/datagovmy/analytics/dashboard
MCP (Model Context Protocol) server for Malaysia's open data APIs, with tools for datasets, dashboards, DOSM, weather, floods, parquet files, and GTFS transit data.
This is not an official MCP server from the Government of Malaysia, Jabatan Digital Negara, or the Ministry of Digital.
Features
- Unified search across datasets and dashboards
- Live metadata fetching from
data-gov-my/datagovmy-meta - Pure JavaScript parquet parsing with raw, summary, and latest-period modes
- GTFS static and realtime transit tools
- Zero-credential geocoding for GTFS location search
- Built-in analytics endpoints and dashboard
Geocoding
GTFS location search now uses Nominatim (OpenStreetMap) only.
- No Google Maps, GrabMaps, or AWS credentials are required
- The hosted MCP URL works as-is with zero credentials
- Requests are throttled and cached to be friendlier to the public Nominatim service
- Self-hosted operators can optionally set
NOMINATIM_CONTACT_EMAIL
Quick Start
Hosted server
Use the hosted endpoint directly:
https://mcp.techmavie.digital/datagovmy/mcp
Example MCP client config:
{
"mcpServers": {
"malaysia-opendata": {
"transport": "streamable-http",
"url": "https://mcp.techmavie.digital/datagovmy/mcp"
}
}
}
No API keys or geocoding credentials are needed.
Self-hosted
Detailed VPS instructions live in deploy/DEPLOYMENT.md.
npm install
npm run build
npm run start:http
Tool Overview
Search and metadata
search_alllist_datasets_cataloguesearch_datasets_cataloguefilter_datasets_catalogueget_dataset_filtersget_dataset_detailslist_dashboardssearch_dashboardsget_dashboard_detailsget_dashboard_chartslist_dosm_datasetsget_dosm_dataset
Files and dashboards
parse_parquet_fileget_parquet_infofind_dashboard_for_parquet
Weather and floods
get_weather_forecastget_weather_warningsget_earthquake_warningsget_flood_warnings
Transport and 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
Misc
hello
More detail and usage guidance lives in TOOLS.md and PROMPT.md.
Local Development
# 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
The hosted server exposes:
/analyticsfor JSON stats/analytics/toolsfor tool usage stats/analytics/dashboardfor the HTML dashboard
Configuration
Core environment variables
| Variable | Default | Description |
|---|---|---|
PORT | 8080 | HTTP server port |
HOST | 0.0.0.0 | Bind address |
API_BASE_URL | https://api.data.gov.my | Malaysia Open Data API base URL |
CACHE_TTL | 3600000 | Metadata cache TTL in ms |
AXIOS_TIMEOUT | 30000 | HTTP timeout in ms |
GITHUB_FETCH_BATCH_SIZE | 20 | Concurrent GitHub metadata fetches |
GH_PAT | empty | Optional GitHub token for higher GitHub API rate limits |
ANALYTICS_RESET_KEY | empty | Secret key for analytics reset/import endpoints |
ANALYTICS_DIR | /app/data | Analytics storage directory |
FIREBASE_DATABASE_URL | empty | Firebase Realtime Database URL for analytics persistence |
FIREBASE_CREDENTIALS_PATH | .credentials/firebase-service-account.json | Firebase service account path |
NOMINATIM_CONTACT_EMAIL | empty | Optional contact email appended to Nominatim queries for self-hosted deployments |
Example .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 Notes
The server now depends on public Nominatim for GTFS location-name searches. The code includes:
- A custom
User-Agent - Optional
emailsupport viaNOMINATIM_CONTACT_EMAIL - Serialized requests with a 1 request/second floor
- Positive and negative result caching
If you expect sustained geocoding traffic, consider self-hosting a compatible geocoder or routing through your own approved service.
Project Structure
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
Troubleshooting
# 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"}'
License
MIT. See LICENSE.
Acknowledgments
Comments
New to MCP?
From what the protocol is to installing your first server, these answers cover most first questions.
An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.