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 claudeSwap --client claude for cursor, vscode, windsurf or another client. The CLI asks for any required settings.
claude mcp add --transport http malaysia-open-data https://server.smithery.ai/hithereiamaliff/mcp-datagovmy/mcpA hosted server: nothing to install. Run /mcp in Claude Code to sign in if it asks.
[mcp_servers.malaysia-open-data]
url = "https://server.smithery.ai/hithereiamaliff/mcp-datagovmy/mcp"Add to ~/.codex/config.toml.
{
"mcpServers": {
"malaysia-open-data": {
"url": "https://server.smithery.ai/hithereiamaliff/mcp-datagovmy/mcp"
}
}
}Add to ~/.cursor/mcp.json.
{
"servers": {
"malaysia-open-data": {
"type": "http",
"url": "https://server.smithery.ai/hithereiamaliff/mcp-datagovmy/mcp"
}
}
}Add to .vscode/mcp.json.
gemini mcp add --transport http malaysia-open-data https://server.smithery.ai/hithereiamaliff/mcp-datagovmy/mcpSaved to .gemini/settings.json.
What it can do
31 tools
datagovmy_list_datasets_catalogue2 paramsLists all datasets from the comprehensive catalogue with rich metadata
| Parameter | Type | Description |
|---|---|---|
limit | number | Number of results to return (1-100) |
offset | number | Number 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. ⚠️
| Parameter | Type | Description |
|---|---|---|
limit | number | Number of results to return (1-100) |
query | string | Search query to match against dataset metadata |
datagovmy_filter_datasets_catalogue7 paramsFilter datasets by various criteria such as frequency, geography, etc.
| Parameter | Type | Description |
|---|---|---|
limit | number | Number of results to return (1-100) |
offset | number | Number of records to skip for pagination |
frequency | string | Filter by data frequency (e.g., DAILY, MONTHLY, ANNUAL) |
geography | array | Filter by geographic coverage |
yearRange | array | Filter by year range [start, end] |
dataSource | array | Filter by data source organization |
demography | array | Filter by demographic coverage |
datagovmy_get_dataset_filtersGet available filter options for datasets
datagovmy_get_dataset_details1 paramGet comprehensive metadata for a dataset by ID
| Parameter | Type | Description |
|---|---|---|
id | string | ID of the dataset to retrieve metadata for |
datagovmy_list_dosm_datasets3 paramsLists available datasets from the Department of Statistics Malaysia
| Parameter | Type | Description |
|---|---|---|
limit | number | Maximum number of datasets to return |
offset | number | Number of datasets to skip |
dataset_id | string | Optional specific dataset ID to list (e.g., "cpi_core", "cpi_strata") |
datagovmy_get_dosm_dataset3 paramsGets data from a specific DOSM dataset
| Parameter | Type | Description |
|---|---|---|
id | string | ID of the dataset to retrieve (e.g., "cpi_core", "cpi_strata") |
limit | number | Maximum number of records to return |
offset | number | Number of records to skip |
datagovmy_get_weather_forecast2 paramsGets weather forecast for Malaysia
| Parameter | Type | Description |
|---|---|---|
days | number | Number of days to forecast (1-7) |
location | string | Location name (e.g., "Kuala Lumpur", "Penang") |
datagovmy_get_weather_warnings2 paramsGets current weather warnings for Malaysia
| Parameter | Type | Description |
|---|---|---|
type | string | Type of warning (e.g., "rain", "flood", "all") |
location | string | Location name to filter warnings |
datagovmy_get_earthquake_warnings2 paramsGets earthquake warnings for Malaysia
| Parameter | Type | Description |
|---|---|---|
days | number | Number of days to look back (1-30) |
magnitude | number | Minimum magnitude to include |
datagovmy_list_dashboards2 paramsLists all available dashboards from the Malaysia Open Data platform
| Parameter | Type | Description |
|---|---|---|
limit | number | Number of results to return (1-100) |
offset | number | Number 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. ⚠️
| Parameter | Type | Description |
|---|---|---|
limit | number | Number of results to return (1-100) |
query | string | Search query to match against dashboard metadata |
datagovmy_get_dashboard_details1 paramGet comprehensive metadata for a dashboard by name
| Parameter | Type | Description |
|---|---|---|
name | string | Name of the dashboard to retrieve metadata for |
datagovmy_get_dashboard_charts1 paramGet chart configurations for a specific dashboard
| Parameter | Type | Description |
|---|---|---|
name | string | Name 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. ⭐⭐⭐
| Parameter | Type | Description |
|---|---|---|
limit | number | Number of results to return (1-20) |
query | string | Search query to match against all content |
prioritize | string | Type of content to prioritize in results |
datagovmy_parse_parquet_file2 paramsParse and display data from a Parquet file URL
| Parameter | Type | Description |
|---|---|---|
url | string | URL of the Parquet file to parse |
maxRows | number | Maximum number of rows to return (1-2000) |
datagovmy_get_parquet_info1 paramGet metadata and structure information about a Parquet file
| Parameter | Type | Description |
|---|---|---|
url | string | URL of the Parquet file to analyze |
datagovmy_find_dashboard_for_parquet1 paramFind the corresponding dashboard for a Parquet file
| Parameter | Type | Description |
|---|---|---|
url | string | URL 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.
| Parameter | Type | Description |
|---|---|---|
category | string | Category for Prasarana data (required only for prasarana provider) |
provider | string | Provider name (e.g., "mybas-johor", "ktmb", "prasarana") |
force_refresh | boolean | Force 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.
| Parameter | Type | Description |
|---|---|---|
category | string | Category for Prasarana data (required only for prasarana provider) |
provider | string | Provider name (e.g., "mybas-johor", "ktmb", "prasarana") |
force_refresh | boolean | Force 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.
| Parameter | Type | Description |
|---|---|---|
category | string | Category for Prasarana data (required only for prasarana provider) |
provider | string | Provider name (e.g., "mybas-johor", "ktmb", "prasarana") |
route_id | string | Specific 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.
| Parameter | Type | Description |
|---|---|---|
stop_id | string | Specific stop ID to retrieve (optional) |
category | string | Category for Prasarana data (required only for prasarana provider) |
provider | string | Provider name (e.g., "mybas-johor", "ktmb", "prasarana") |
route_id | string | Filter 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".
| Parameter | Type | Description |
|---|---|---|
limit | number | Maximum number of arrivals to return (default: 10) |
stop_id | string | ID of the stop to get arrivals for |
category | string | Category for Prasarana data (required only for prasarana provider) |
provider | string | Provider name (e.g., "mybas-johor", "ktmb", "prasarana", or common names like "rapid penang") |
route_id | string | Optional: 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
| Parameter | Type | Description |
|---|---|---|
limit | number | Maximum number of stops to return (default: 5) |
country | string | Country code to limit geocoding results (default: "my" for Malaysia) |
category | string | Category for Prasarana data (required only for prasarana provider) |
location | string | Location name to search for (e.g., "KLCC", "KL Sentral", "Penang Airport") |
provider | string | Provider name (e.g., "mybas-johor", "ktmb", "prasarana", or common names like "rapid penang") |
max_distance | number | Maximum distance in kilometers (default: 5) |
arrivals_limit | number | Maximum number of arrivals to include per stop (default: 3) |
include_arrivals | boolean | Whether 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?"
| Parameter | Type | Description |
|---|---|---|
limit | number | Maximum number of stops to return (default: 5) |
category | string | Category for Prasarana data (required only for prasarana provider) |
latitude | number | Latitude of the user's location |
provider | string | Provider name (e.g., "mybas-johor", "ktmb", "prasarana", or common names like "rapid penang") |
longitude | number | Longitude of the user's location |
max_distance | number | Maximum distance in kilometers (default: 5) |
datagovmy_list_transport_agencies2 paramsLists available transport agencies with GTFS data
| Parameter | Type | Description |
|---|---|---|
limit | number | Maximum number of agencies to return |
offset | number | Number of agencies to skip |
datagovmy_get_transport_data3 paramsGets GTFS data for a specific transport agency
| Parameter | Type | Description |
|---|---|---|
limit | number | Maximum number of records to return |
offset | number | Number of records to skip |
dataset_id | string | ID of the GTFS dataset (e.g., "gtfs_rapidkl", "gtfs_prasarana") |
datagovmy_get_gtfs_static4 paramsGets GTFS static data for a specific transport provider
| Parameter | Type | Description |
|---|---|---|
limit | number | Maximum number of records to return |
offset | number | Number of records to skip |
category | string | Category for Prasarana data (required only for prasarana provider) |
provider | string | Provider name (e.g., "rapidkl", "ktmb", "prasarana") |
datagovmy_get_gtfs_realtime_vehicle_position4 paramsGets GTFS realtime vehicle position data for a specific transport provider
| Parameter | Type | Description |
|---|---|---|
limit | number | Maximum number of records to return |
offset | number | Number of records to skip |
category | string | Category for Prasarana data (required only for prasarana provider) |
provider | string | Provider name (e.g., "rapidkl", "ktmb", "prasarana") |
datagovmy_get_flood_warnings3 paramsGets current flood warnings for Malaysia
| Parameter | Type | Description |
|---|---|---|
state | string | State name to filter warnings (e.g., "Selangor", "Johor") |
district | string | District name to filter warnings |
severity | string | Severity level to filter (e.g., "warning", "alert", "danger") |