CAT
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Cross AI Tools

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by @mertduzgun

Independent project, not affiliated with Anthropic

Hithereiamaliff Mcp Datagovmy

hithereiamaliff/mcp-datagovmy
331 toolsauthHTTPregistry active
Summary

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.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →

Tools

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

31 tools
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
limitnumber
Number of results to return (1-100)
offsetnumber
Number of records to skip for pagination
frequencystring
Filter by data frequency (e.g., DAILY, MONTHLY, ANNUAL)
geographyarray
Filter by geographic coverage
yearRangearray
Filter by year range [start, end]
dataSourcearray
Filter by data source organization
demographyarray
Filter by demographic coverage
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
limitnumber
Maximum number of datasets to return
offsetnumber
Number of datasets to skip
dataset_idstring
Optional specific dataset ID to list (e.g., "cpi_core", "cpi_strata")
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
typestring
Type of warning (e.g., "rain", "flood", "all")
locationstring
Location name to filter warnings
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)
querystring
Search query to match against all content
prioritizestring
Type of content to prioritize in resultsone of dataset · dashboard
datagovmy_parse_parquet_fileParse and display data from a Parquet file URL2 params

Parse and display data from a Parquet file URL

Parameters* required
urlstring
URL of the Parquet file to parse
maxRowsnumber
Maximum number of rows to return (1-2000)
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)
providerstring
Provider name (e.g., "mybas-johor", "ktmb", "prasarana")
force_refreshboolean
Force refresh the cache
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)
providerstring
Provider name (e.g., "mybas-johor", "ktmb", "prasarana")
force_refreshboolean
Force refresh the cache
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
stop_idstring
Specific stop ID to retrieve (optional)
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)
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
limitnumber
Maximum number of arrivals to return (default: 10)
stop_idstring
ID of the stop to get arrivals for
categorystring
Category for Prasarana data (required only for prasarana provider)
providerstring
Provider name (e.g., "mybas-johor", "ktmb", "prasarana", or common names like "rapid penang")
route_idstring
Optional: filter arrivals by route
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
limitnumber
Maximum number of stops to return (default: 5)
countrystring
Country code to limit geocoding results (default: "my" for Malaysia)
categorystring
Category for Prasarana data (required only for prasarana provider)
locationstring
Location name to search for (e.g., "KLCC", "KL Sentral", "Penang Airport")
providerstring
Provider name (e.g., "mybas-johor", "ktmb", "prasarana", or common names like "rapid penang")
max_distancenumber
Maximum distance in kilometers (default: 5)
arrivals_limitnumber
Maximum number of arrivals to include per stop (default: 3)
include_arrivalsboolean
Whether to include upcoming arrivals for each stop (default: true)
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
limitnumber
Maximum number of stops to return (default: 5)
categorystring
Category for Prasarana data (required only for prasarana provider)
latitudenumber
Latitude of the user's location
providerstring
Provider name (e.g., "mybas-johor", "ktmb", "prasarana", or common names like "rapid penang")
longitudenumber
Longitude of the user's location
max_distancenumber
Maximum distance in kilometers (default: 5)
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
limitnumber
Maximum number of records to return
offsetnumber
Number of records to skip
dataset_idstring
ID of the GTFS dataset (e.g., "gtfs_rapidkl", "gtfs_prasarana")
datagovmy_get_gtfs_staticGets GTFS static data for a specific transport provider4 params

Gets GTFS static data for a specific transport provider

Parameters* required
limitnumber
Maximum number of records to return
offsetnumber
Number of records to skip
categorystring
Category for Prasarana data (required only for prasarana provider)
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
limitnumber
Maximum number of records to return
offsetnumber
Number of records to skip
categorystring
Category for Prasarana data (required only for prasarana provider)
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
statestring
State name to filter warnings (e.g., "Selangor", "Johor")
districtstring
District name to filter warnings
severitystring
Severity level to filter (e.g., "warning", "alert", "danger")
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.

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.

  • 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_all
  • list_datasets_catalogue
  • search_datasets_catalogue
  • filter_datasets_catalogue
  • get_dataset_filters
  • get_dataset_details
  • list_dashboards
  • search_dashboards
  • get_dashboard_details
  • get_dashboard_charts
  • list_dosm_datasets
  • get_dosm_dataset

Files and dashboards

  • parse_parquet_file
  • get_parquet_info
  • find_dashboard_for_parquet

Weather and floods

  • get_weather_forecast
  • get_weather_warnings
  • get_earthquake_warnings
  • get_flood_warnings

Transport and GTFS

  • list_transport_agencies
  • get_transport_data
  • get_gtfs_static
  • get_gtfs_realtime_vehicle_position
  • parse_gtfs_static
  • parse_gtfs_realtime
  • get_transit_routes
  • get_transit_stops
  • get_transit_arrivals
  • search_transit_stops_by_location
  • find_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:

  • /analytics for JSON stats
  • /analytics/tools for tool usage stats
  • /analytics/dashboard for the HTML dashboard

Configuration

Core environment variables

VariableDefaultDescription
PORT8080HTTP server port
HOST0.0.0.0Bind address
API_BASE_URLhttps://api.data.gov.myMalaysia Open Data API base URL
CACHE_TTL3600000Metadata cache TTL in ms
AXIOS_TIMEOUT30000HTTP timeout in ms
GITHUB_FETCH_BATCH_SIZE20Concurrent GitHub metadata fetches
GH_PATemptyOptional GitHub token for higher GitHub API rate limits
ANALYTICS_RESET_KEYemptySecret key for analytics reset/import endpoints
ANALYTICS_DIR/app/dataAnalytics storage directory
FIREBASE_DATABASE_URLemptyFirebase Realtime Database URL for analytics persistence
FIREBASE_CREDENTIALS_PATH.credentials/firebase-service-account.jsonFirebase service account path
NOMINATIM_CONTACT_EMAILemptyOptional contact email appended to Nominatim queries for self-hosted deployments

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

Nominatim Notes

The server now depends on public Nominatim for GTFS location-name searches. The code includes:

  • A custom User-Agent
  • Optional email support via NOMINATIM_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

  • Malaysia Open Data Portal
  • Department of Statistics Malaysia
  • Malaysian Meteorological Department
  • Nominatim
  • Model Context Protocol
Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
Keep your Mac awake
Keep your Mac awake
Keep your Mac awake while Claude Code and 40+ AI agents run. Sleeps when they're idle.
One time payment $9 →
Context.devContext.dev
Context.dev
Integrate web data into your AI product. One API to scrape website & brand data.
Get API Key Now →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Categories
Data & Analytics
Registryactive
TransportHTTP
AuthRequired
UpdatedSep 11, 2025
View on GitHub

Related Data & Analytics MCP Servers

View all →
Google Sheets

com.mcparmory/google-sheets

Create, read, and modify spreadsheet data, formatting, and sheets
25
Google Sheets

domdomegg/google-sheets-mcp

Allow AI systems to read, write, and query spreadsheet data via Google Sheets.
2
Google Sheets Mcp

henilcalagiya/google-sheets-mcp

Powerful tools for automating Google Sheets using Model Context Protocol (MCP)
14
Futuristic Risk Intelligence

cct15/war-dashboard-data

Geopolitical conflict risk, political events, and maritime traffic data for AI agents
1
Mcp Google Sheets Full

moooonad/mcp-google-sheets-full

Full Google Sheets MCP: 26 tools + run_sheets_script escape hatch. User OAuth, no service account.
CSV to JSON API

io.github.br0ski777/csv-to-json

Parse CSV to JSON array. Auto-detect delimiter, headers. x402 micropayment.