Hosted MCP server · #109 most used on Smithery

Malaysia Open Data MCP Server

hithereiamaliff/mcp-datagovmy

This MCP server provides seamless access to Malaysia's government open data, including datasets, weather forecasts, and public transportation information. Enable efficient querying and retrieval of real-time and historical data with built-in rate limiting and error handling. Empower applications to integrate comprehensive Malaysian public data effortlessly. Note: this is NOT an official MCP server by the Government of Malaysia or anyone from Malaysia's Open Data/Jabatan Digital Negara/Ministry of Digital team.

Uses
5.1k
Tools
31
Runs
Hosted
Listed
1.3y ago

Get started

Add it to your agent

npx -y @smithery/cli@latest install hithereiamaliff/mcp-datagovmy --client claude

Swap --client claude for cursor, vscode, windsurf or another client. The CLI asks for any required settings.

What it can do

31 tools

datagovmy_list_datasets_catalogue2 paramsLists all datasets from the comprehensive catalogue with rich metadata
ParameterTypeDescription
limitnumberNumber of results to return (1-100)
offsetnumberNumber of records to skip for pagination
datagovmy_search_datasets_catalogue2 params⚠️ CONSIDER USING search_all INSTEAD: This only searches datasets. For comprehensive results across datasets and dashboards, use search_a…

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

ParameterTypeDescription
limitnumberNumber of results to return (1-100)
querystringSearch query to match against dataset metadata
datagovmy_filter_datasets_catalogue7 paramsFilter datasets by various criteria such as frequency, geography, etc.
ParameterTypeDescription
limitnumberNumber of results to return (1-100)
offsetnumberNumber of records to skip for pagination
frequencystringFilter by data frequency (e.g., DAILY, MONTHLY, ANNUAL)
geographyarrayFilter by geographic coverage
yearRangearrayFilter by year range [start, end]
dataSourcearrayFilter by data source organization
demographyarrayFilter by demographic coverage
datagovmy_get_dataset_filtersGet available filter options for datasets
datagovmy_get_dataset_details1 paramGet comprehensive metadata for a dataset by ID
ParameterTypeDescription
idstringID of the dataset to retrieve metadata for
datagovmy_list_dosm_datasets3 paramsLists available datasets from the Department of Statistics Malaysia
ParameterTypeDescription
limitnumberMaximum number of datasets to return
offsetnumberNumber of datasets to skip
dataset_idstringOptional specific dataset ID to list (e.g., "cpi_core", "cpi_strata")
datagovmy_get_dosm_dataset3 paramsGets data from a specific DOSM dataset
ParameterTypeDescription
idstringID of the dataset to retrieve (e.g., "cpi_core", "cpi_strata")
limitnumberMaximum number of records to return
offsetnumberNumber of records to skip
datagovmy_get_weather_forecast2 paramsGets weather forecast for Malaysia
ParameterTypeDescription
daysnumberNumber of days to forecast (1-7)
locationstringLocation name (e.g., "Kuala Lumpur", "Penang")
datagovmy_get_weather_warnings2 paramsGets current weather warnings for Malaysia
ParameterTypeDescription
typestringType of warning (e.g., "rain", "flood", "all")
locationstringLocation name to filter warnings
datagovmy_get_earthquake_warnings2 paramsGets earthquake warnings for Malaysia
ParameterTypeDescription
daysnumberNumber of days to look back (1-30)
magnitudenumberMinimum magnitude to include
datagovmy_list_dashboards2 paramsLists all available dashboards from the Malaysia Open Data platform
ParameterTypeDescription
limitnumberNumber of results to return (1-100)
offsetnumberNumber of records to skip for pagination
datagovmy_search_dashboards2 params⚠️ CONSIDER USING search_all INSTEAD: This only searches dashboards. For comprehensive results across datasets and dashboards, use search…

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

ParameterTypeDescription
limitnumberNumber of results to return (1-100)
querystringSearch query to match against dashboard metadata
datagovmy_get_dashboard_details1 paramGet comprehensive metadata for a dashboard by name
ParameterTypeDescription
namestringName of the dashboard to retrieve metadata for
datagovmy_get_dashboard_charts1 paramGet chart configurations for a specific dashboard
ParameterTypeDescription
namestringName of the dashboard to retrieve charts for
datagovmy_search_all3 params⭐⭐⭐ PRIMARY SEARCH TOOL: Always use this first for any data or visualization queries. Searches across both datasets and dashboards with i…

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

ParameterTypeDescription
limitnumberNumber of results to return (1-20)
querystringSearch query to match against all content
prioritizestringType of content to prioritize in results
datagovmy_parse_parquet_file2 paramsParse and display data from a Parquet file URL
ParameterTypeDescription
urlstringURL of the Parquet file to parse
maxRowsnumberMaximum number of rows to return (1-2000)
datagovmy_get_parquet_info1 paramGet metadata and structure information about a Parquet file
ParameterTypeDescription
urlstringURL of the Parquet file to analyze
datagovmy_find_dashboard_for_parquet1 paramFind the corresponding dashboard for a Parquet file
ParameterTypeDescription
urlstringURL of the parquet file
datagovmy_parse_gtfs_static3 paramsParse GTFS Static data for a specific transport provider. IMPORTANT: For transit queries like "Show me routes from Rapid Penang", use get…

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 user queries.

ParameterTypeDescription
categorystringCategory for Prasarana data (required only for prasarana provider)
providerstringProvider name (e.g., "mybas-johor", "ktmb", "prasarana")
force_refreshbooleanForce refresh the cache
datagovmy_parse_gtfs_realtime3 paramsParse GTFS Realtime data for a specific transport provider. IMPORTANT: For transit queries like "Show me bus locations from Rapid Penang"…

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 mapped to the correct provider-category pairs.

ParameterTypeDescription
categorystringCategory for Prasarana data (required only for prasarana provider)
providerstringProvider name (e.g., "mybas-johor", "ktmb", "prasarana")
force_refreshbooleanForce refresh the cache
datagovmy_get_transit_routes3 paramsGet transit routes from GTFS data. IMPORTANT: For transit route queries like "Show me bus routes for Rapid Penang", use this tool directl…

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.

ParameterTypeDescription
categorystringCategory for Prasarana data (required only for prasarana provider)
providerstringProvider name (e.g., "mybas-johor", "ktmb", "prasarana")
route_idstringSpecific route ID to filter by
datagovmy_get_transit_stops4 paramsGet transit stops from GTFS data. IMPORTANT: For transit stop queries like "Show me bus stops for Rapid Penang", use this tool directly w…

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 automatically mapped to the correct provider and category. No need to use list_transport_agencies first.

ParameterTypeDescription
stop_idstringSpecific stop ID to retrieve (optional)
categorystringCategory for Prasarana data (required only for prasarana provider)
providerstringProvider name (e.g., "mybas-johor", "ktmb", "prasarana")
route_idstringFilter stops by route ID (optional)
datagovmy_get_transit_arrivals5 paramsGet real-time transit arrivals at a specific stop. IMPORTANT: Use this tool directly for queries like "When will the next bus arrive at m…

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

ParameterTypeDescription
limitnumberMaximum number of arrivals to return (default: 10)
stop_idstringID of the stop to get arrivals for
categorystringCategory for Prasarana data (required only for prasarana provider)
providerstringProvider name (e.g., "mybas-johor", "ktmb", "prasarana", or common names like "rapid penang")
route_idstringOptional: filter arrivals by route
datagovmy_search_transit_stops_by_location8 paramsSearch for transit stops near a named location. IMPORTANT: Use this tool for queries like "Show me bus stops near KLCC" or "What buses st…

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 specific terms in the provider parameter like "rapid kl bus", "rapid rail", "mrt feeder", "lrt", "mrt" instead of using "prasarana" with a separate category parameter. DO NOT use provider="prasarana" with category="rapid-r

ParameterTypeDescription
limitnumberMaximum number of stops to return (default: 5)
countrystringCountry code to limit geocoding results (default: "my" for Malaysia)
categorystringCategory for Prasarana data (required only for prasarana provider)
locationstringLocation name to search for (e.g., "KLCC", "KL Sentral", "Penang Airport")
providerstringProvider name (e.g., "mybas-johor", "ktmb", "prasarana", or common names like "rapid penang")
max_distancenumberMaximum distance in kilometers (default: 5)
arrivals_limitnumberMaximum number of arrivals to include per stop (default: 3)
include_arrivalsbooleanWhether to include upcoming arrivals for each stop (default: true)
datagovmy_find_nearest_transit_stops6 paramsFind the nearest transit stops to a given location. IMPORTANT: Use this tool directly for queries like "Where is the nearest bus stop to …

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?"

ParameterTypeDescription
limitnumberMaximum number of stops to return (default: 5)
categorystringCategory for Prasarana data (required only for prasarana provider)
latitudenumberLatitude of the user's location
providerstringProvider name (e.g., "mybas-johor", "ktmb", "prasarana", or common names like "rapid penang")
longitudenumberLongitude of the user's location
max_distancenumberMaximum distance in kilometers (default: 5)
datagovmy_list_transport_agencies2 paramsLists available transport agencies with GTFS data
ParameterTypeDescription
limitnumberMaximum number of agencies to return
offsetnumberNumber of agencies to skip
datagovmy_get_transport_data3 paramsGets GTFS data for a specific transport agency
ParameterTypeDescription
limitnumberMaximum number of records to return
offsetnumberNumber of records to skip
dataset_idstringID of the GTFS dataset (e.g., "gtfs_rapidkl", "gtfs_prasarana")
datagovmy_get_gtfs_static4 paramsGets GTFS static data for a specific transport provider
ParameterTypeDescription
limitnumberMaximum number of records to return
offsetnumberNumber of records to skip
categorystringCategory for Prasarana data (required only for prasarana provider)
providerstringProvider name (e.g., "rapidkl", "ktmb", "prasarana")
datagovmy_get_gtfs_realtime_vehicle_position4 paramsGets GTFS realtime vehicle position data for a specific transport provider
ParameterTypeDescription
limitnumberMaximum number of records to return
offsetnumberNumber of records to skip
categorystringCategory for Prasarana data (required only for prasarana provider)
providerstringProvider name (e.g., "rapidkl", "ktmb", "prasarana")
datagovmy_get_flood_warnings3 paramsGets current flood warnings for Malaysia
ParameterTypeDescription
statestringState name to filter warnings (e.g., "Selangor", "Johor")
districtstringDistrict name to filter warnings
severitystringSeverity level to filter (e.g., "warning", "alert", "danger")
datagovmy_helloA simple test tool to verify that the MCP server is working correctly