hithereiamaliff avatar

Hithereiamaliff Mcp Datagovmy

hithereiamaliff/mcp-datagovmy

Connects Claude to Malaysia's government open data ecosystem through a unified MCP interface. You get search and metadata tools for datasets and dashboards, live parquet file parsing in three modes (raw, summary, latest period), GTFS static and realtime transit data with Nominatim geocoding, plus weather forecasts, earthquake warnings, and flood alerts from the Malaysian Meteorological Department. The hosted endpoint works credential free, or you can self host with optional Firebase analytics persistence. Reach for this when you need programmatic access to DOSM statistics, public transit schedules, environmental warnings, or any of the 200+ datasets in the data.gov.my catalogue without manually wrangling APIs.

GitHub stars
3
tools
31
auth
Secret needed
transport
HTTP
last updated
Sep 11, 2025

Tools

31 tools

Public tool metadata for what this MCP can expose to an agent.

datagovmy_list_datasets_catalogueLists all datasets from the comprehensive catalogue with rich metadata2 params

Lists all datasets from the comprehensive catalogue with rich metadata

Parameters* required
limitnumber
Number of results to return (1-100)
offsetnumber
Number of records to skip for pagination
datagovmy_search_datasets_catalogue⚠️ CONSIDER USING search_all INSTEAD: This only searches datasets. For comprehensive results across datasets and dashboards, use search_all tool. ⚠️2 params

⚠️ CONSIDER USING search_all INSTEAD: This only searches datasets. For comprehensive results across datasets and dashboards, use search_all tool. ⚠️

Parameters* required
limitnumber
Number of results to return (1-100)
querystring
Search query to match against dataset metadata
datagovmy_filter_datasets_catalogueFilter datasets by various criteria such as frequency, geography, etc.7 params

Filter datasets by various criteria such as frequency, geography, etc.

Parameters* required
dataSourcearray
Filter by data source organization
demographyarray
Filter by demographic coverage
frequencystring
Filter by data frequency (e.g., DAILY, MONTHLY, ANNUAL)
geographyarray
Filter by geographic coverage
limitnumber
Number of results to return (1-100)
offsetnumber
Number of records to skip for pagination
yearRangearray
Filter by year range [start, end]
datagovmy_get_dataset_filtersGet available filter options for datasets

Get available filter options for datasets

No parameter schema in public metadata yet.

datagovmy_get_dataset_detailsGet comprehensive metadata for a dataset by ID1 params

Get comprehensive metadata for a dataset by ID

Parameters* required
idstring
ID of the dataset to retrieve metadata for
datagovmy_list_dosm_datasetsLists available datasets from the Department of Statistics Malaysia3 params

Lists available datasets from the Department of Statistics Malaysia

Parameters* required
dataset_idstring
Optional specific dataset ID to list (e.g., "cpi_core", "cpi_strata")
limitnumber
Maximum number of datasets to return
offsetnumber
Number of datasets to skip
datagovmy_get_dosm_datasetGets data from a specific DOSM dataset3 params

Gets data from a specific DOSM dataset

Parameters* required
idstring
ID of the dataset to retrieve (e.g., "cpi_core", "cpi_strata")
limitnumber
Maximum number of records to return
offsetnumber
Number of records to skip
datagovmy_get_weather_forecastGets weather forecast for Malaysia2 params

Gets weather forecast for Malaysia

Parameters* required
daysnumber
Number of days to forecast (1-7)
locationstring
Location name (e.g., "Kuala Lumpur", "Penang")
datagovmy_get_weather_warningsGets current weather warnings for Malaysia2 params

Gets current weather warnings for Malaysia

Parameters* required
locationstring
Location name to filter warnings
typestring
Type of warning (e.g., "rain", "flood", "all")
datagovmy_get_earthquake_warningsGets earthquake warnings for Malaysia2 params

Gets earthquake warnings for Malaysia

Parameters* required
daysnumber
Number of days to look back (1-30)
magnitudenumber
Minimum magnitude to include
datagovmy_list_dashboardsLists all available dashboards from the Malaysia Open Data platform2 params

Lists all available dashboards from the Malaysia Open Data platform

Parameters* required
limitnumber
Number of results to return (1-100)
offsetnumber
Number of records to skip for pagination
datagovmy_search_dashboards⚠️ CONSIDER USING search_all INSTEAD: This only searches dashboards. For comprehensive results across datasets and dashboards, use search_all tool. ⚠️2 params

⚠️ CONSIDER USING search_all INSTEAD: This only searches dashboards. For comprehensive results across datasets and dashboards, use search_all tool. ⚠️

Parameters* required
limitnumber
Number of results to return (1-100)
querystring
Search query to match against dashboard metadata
datagovmy_get_dashboard_detailsGet comprehensive metadata for a dashboard by name1 params

Get comprehensive metadata for a dashboard by name

Parameters* required
namestring
Name of the dashboard to retrieve metadata for
datagovmy_get_dashboard_chartsGet chart configurations for a specific dashboard1 params

Get chart configurations for a specific dashboard

Parameters* required
namestring
Name of the dashboard to retrieve charts for
datagovmy_search_all⭐⭐⭐ PRIMARY SEARCH TOOL: Always use this first for any data or visualization queries. Searches across both datasets and dashboards with intelligent fallback. ⭐⭐⭐3 params

⭐⭐⭐ PRIMARY SEARCH TOOL: Always use this first for any data or visualization queries. Searches across both datasets and dashboards with intelligent fallback. ⭐⭐⭐

Parameters* required
limitnumber
Number of results to return (1-20)
prioritizestring
Type of content to prioritize in resultsone of dataset · dashboard
querystring
Search query to match against all content
datagovmy_parse_parquet_fileParse and display data from a Parquet file URL2 params

Parse and display data from a Parquet file URL

Parameters* required
maxRowsnumber
Maximum number of rows to return (1-2000)
urlstring
URL of the Parquet file to parse
datagovmy_get_parquet_infoGet metadata and structure information about a Parquet file1 params

Get metadata and structure information about a Parquet file

Parameters* required
urlstring
URL of the Parquet file to analyze
datagovmy_find_dashboard_for_parquetFind the corresponding dashboard for a Parquet file1 params

Find the corresponding dashboard for a Parquet file

Parameters* required
urlstring
URL of the parquet file
datagovmy_parse_gtfs_staticParse GTFS Static data for a specific transport provider. IMPORTANT: For transit queries like "Show me routes from Rapid Penang", use get_transit_routes directly with the provider name. This is a low-level tool - prefer using get_transit_routes or get_transit_stops for most us...3 params

Parse GTFS Static data for a specific transport provider. IMPORTANT: For transit queries like "Show me routes from Rapid Penang", use get_transit_routes directly with the provider name. This is a low-level tool - prefer using get_transit_routes or get_transit_stops for most us...

Parameters* required
categorystring
Category for Prasarana data (required only for prasarana provider)
force_refreshboolean
Force refresh the cache
providerstring
Provider name (e.g., "mybas-johor", "ktmb", "prasarana")
datagovmy_parse_gtfs_realtimeParse GTFS Realtime data for a specific transport provider. IMPORTANT: For transit queries like "Show me bus locations from Rapid Penang", use this tool directly with the provider name. Common names like "rapid penang", "rapid kuantan", or "mybas johor" are automatically mappe...3 params

Parse GTFS Realtime data for a specific transport provider. IMPORTANT: For transit queries like "Show me bus locations from Rapid Penang", use this tool directly with the provider name. Common names like "rapid penang", "rapid kuantan", or "mybas johor" are automatically mappe...

Parameters* required
categorystring
Category for Prasarana data (required only for prasarana provider)
force_refreshboolean
Force refresh the cache
providerstring
Provider name (e.g., "mybas-johor", "ktmb", "prasarana")
datagovmy_get_transit_routesGet transit routes from GTFS data. IMPORTANT: For transit route queries like "Show me bus routes for Rapid Penang", use this tool directly with the provider name.3 params

Get transit routes from GTFS data. IMPORTANT: For transit route queries like "Show me bus routes for Rapid Penang", use this tool directly with the provider name.

Parameters* required
categorystring
Category for Prasarana data (required only for prasarana provider)
providerstring
Provider name (e.g., "mybas-johor", "ktmb", "prasarana")
route_idstring
Specific route ID to filter by
datagovmy_get_transit_stopsGet transit stops from GTFS data. IMPORTANT: For transit stop queries like "Show me bus stops for Rapid Penang", use this tool directly with the provider name. The tool supports common names like "rapid penang", "rapid kuantan", "ktmb", or "mybas johor" which will be automatic...4 params

Get transit stops from GTFS data. IMPORTANT: For transit stop queries like "Show me bus stops for Rapid Penang", use this tool directly with the provider name. The tool supports common names like "rapid penang", "rapid kuantan", "ktmb", or "mybas johor" which will be automatic...

Parameters* required
categorystring
Category for Prasarana data (required only for prasarana provider)
providerstring
Provider name (e.g., "mybas-johor", "ktmb", "prasarana")
route_idstring
Filter stops by route ID (optional)
stop_idstring
Specific stop ID to retrieve (optional)
datagovmy_get_transit_arrivalsGet real-time transit arrivals at a specific stop. IMPORTANT: Use this tool directly for queries like "When will the next bus arrive at my stop?" or "Show me arrival times for Rapid Penang buses at stop X".5 params

Get real-time transit arrivals at a specific stop. IMPORTANT: Use this tool directly for queries like "When will the next bus arrive at my stop?" or "Show me arrival times for Rapid Penang buses at stop X".

Parameters* required
categorystring
Category for Prasarana data (required only for prasarana provider)
limitnumber
Maximum number of arrivals to return (default: 10)
providerstring
Provider name (e.g., "mybas-johor", "ktmb", "prasarana", or common names like "rapid penang")
route_idstring
Optional: filter arrivals by route
stop_idstring
ID of the stop to get arrivals for
datagovmy_search_transit_stops_by_locationSearch for transit stops near a named location. IMPORTANT: Use this tool for queries like "Show me bus stops near KLCC" or "What buses stop at KL Sentral?" This tool geocodes the location name to coordinates, then finds nearby stops. CRITICAL: For Rapid KL services, ALWAYS use...8 params

Search for transit stops near a named location. IMPORTANT: Use this tool for queries like "Show me bus stops near KLCC" or "What buses stop at KL Sentral?" This tool geocodes the location name to coordinates, then finds nearby stops. CRITICAL: For Rapid KL services, ALWAYS use...

Parameters* required
arrivals_limitnumber
Maximum number of arrivals to include per stop (default: 3)
categorystring
Category for Prasarana data (required only for prasarana provider)
countrystring
Country code to limit geocoding results (default: "my" for Malaysia)
include_arrivalsboolean
Whether to include upcoming arrivals for each stop (default: true)
limitnumber
Maximum number of stops to return (default: 5)
locationstring
Location name to search for (e.g., "KLCC", "KL Sentral", "Penang Airport")
max_distancenumber
Maximum distance in kilometers (default: 5)
providerstring
Provider name (e.g., "mybas-johor", "ktmb", "prasarana", or common names like "rapid penang")
datagovmy_find_nearest_transit_stopsFind the nearest transit stops to a given location. IMPORTANT: Use this tool directly for queries like "Where is the nearest bus stop to my location?" or "How do I get to the nearest Rapid Penang bus stop?"6 params

Find the nearest transit stops to a given location. IMPORTANT: Use this tool directly for queries like "Where is the nearest bus stop to my location?" or "How do I get to the nearest Rapid Penang bus stop?"

Parameters* required
categorystring
Category for Prasarana data (required only for prasarana provider)
latitudenumber
Latitude of the user's location
limitnumber
Maximum number of stops to return (default: 5)
longitudenumber
Longitude of the user's location
max_distancenumber
Maximum distance in kilometers (default: 5)
providerstring
Provider name (e.g., "mybas-johor", "ktmb", "prasarana", or common names like "rapid penang")
datagovmy_list_transport_agenciesLists available transport agencies with GTFS data2 params

Lists available transport agencies with GTFS data

Parameters* required
limitnumber
Maximum number of agencies to return
offsetnumber
Number of agencies to skip
datagovmy_get_transport_dataGets GTFS data for a specific transport agency3 params

Gets GTFS data for a specific transport agency

Parameters* required
dataset_idstring
ID of the GTFS dataset (e.g., "gtfs_rapidkl", "gtfs_prasarana")
limitnumber
Maximum number of records to return
offsetnumber
Number of records to skip
datagovmy_get_gtfs_staticGets GTFS static data for a specific transport provider4 params

Gets GTFS static data for a specific transport provider

Parameters* required
categorystring
Category for Prasarana data (required only for prasarana provider)
limitnumber
Maximum number of records to return
offsetnumber
Number of records to skip
providerstring
Provider name (e.g., "rapidkl", "ktmb", "prasarana")
datagovmy_get_gtfs_realtime_vehicle_positionGets GTFS realtime vehicle position data for a specific transport provider4 params

Gets GTFS realtime vehicle position data for a specific transport provider

Parameters* required
categorystring
Category for Prasarana data (required only for prasarana provider)
limitnumber
Maximum number of records to return
offsetnumber
Number of records to skip
providerstring
Provider name (e.g., "rapidkl", "ktmb", "prasarana")
datagovmy_get_flood_warningsGets current flood warnings for Malaysia3 params

Gets current flood warnings for Malaysia

Parameters* required
districtstring
District name to filter warnings
severitystring
Severity level to filter (e.g., "warning", "alert", "danger")
statestring
State name to filter warnings (e.g., "Selangor", "Johor")
datagovmy_helloA simple test tool to verify that the MCP server is working correctly

A simple test tool to verify that the MCP server is working correctly

No parameter schema in public metadata yet.

Sponsors

Readme

Malaysia 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.


View the full README on GitHub

Details

Repository
github.com/hithereiamaliff/mcp-datagovmy
Category
Data & Analytics
Transport
HTTP
Auth
Required
Registry
MCP registry, active

More from hithereiamaliff

Related Data & Analytics MCP servers

View all
1alcastaro avatarDatos Gob Do Mcp Serveralcastaro/datos.gob.do-mcp-serverMCP server for datos.gob.do — Dominican Republic open government data (CKAN 2.11).3stars
2artgas1 avatarXmlriver Mcpartgas1/xmlriver-mcpGoogle/Yandex SERP parsing and Yandex Wordstat keyword frequency via XMLRiver XML API3stars
3aernouddekker avatarNumbersmcpaernouddekker/macos-mcpMCP server for macOS Numbers.app — spreadsheet access via AppleScript0stars
4jdsource avatarClearMarketjdsource/clearmarketReference data for prediction markets: graded resolution clarity, cross-venue links, provenance.3stars
5kenosinc avatarsigrok MCP Serverkenosinc/sigrok-mcp-serverWraps sigrok-cli for signal analysis: capture data, decode protocols, and query instruments.3stars
6adelaidasofia avatarFastMCP server for surgical queries against a vault knowledge graph (NetworkX noadelaidasofia/graph-query-mcpFastMCP server for surgical queries against a vault knowledge graph (NetworkX node-link JSON).…2stars