Back to Browse

Myopendata MCP Server

Developer ToolsModerate6.7MCP RegistryLocal
Free

Server data from the Official MCP Registry

Malaysia open data: datasets, dashboards, DOSM, weather, floods and transit, keyless.

About

Malaysia open data: datasets, dashboards, DOSM, weather, floods and transit, keyless.

Security Report

6.7
Moderate6.7Moderate Risk

myopendata is a keyless, read-only client for Malaysia's public open data API (data.gov.my) with no shell execution, no dynamic code evaluation, no hardcoded secrets, and no data exfiltration paths; all inputs are validated with zod and the server only issues GET requests to the configurable base URL. Minor observations are limited to the base URL being overridable via environment variable and lightweight error-handling notes, none of which materially lower the score given that permissions match the server's purpose. Supply chain analysis found 3 known vulnerabilities in dependencies (0 critical, 2 high severity). Package verification found 1 issue.

8 files analyzed · 7 issues found

Security scores are indicators to help you make informed decisions, not guarantees. Always review permissions before connecting any MCP server.

Permissions Required

This plugin requests these system permissions. Most are normal for its category.

HTTP Network Access

Connects to external APIs or services over the internet.

env_vars

Check that this permission is expected for this type of plugin.

How to Install

Add this to your MCP configuration file:

{
  "mcpServers": {
    "io-github-cloudcorprecords-myopendata": {
      "args": [
        "-y",
        "@reneturcios/myopendata"
      ],
      "command": "npx"
    }
  }
}

Documentation

View on GitHub

From the project's GitHub README.

myopendata

myopendata reads Malaysia's open data: a unified search across the dataset catalogue and dashboards, dataset and dashboard details, Department of Statistics Malaysia (DOSM) datasets, weather forecasts and warnings, flood warnings, and GTFS transit routes and stops. One binary serves a command-line interface and a stdio MCP server.

This is a clean-room rebuild covering a labelled core subset of the documented tools (16 of 32); parquet, raw GTFS parsing, arrivals and location-search tools are not included. It is not an official Government of Malaysia server.

No API key is needed. The service is keyless, so myopendata works with nothing configured. The API base URL can be overridden with MYOPENDATA_API_URL; when it is not set, calls go to https://api.data.gov.my.

Install

npx @reneturcios/myopendata list-datasets

Or run the container image:

docker run -i ghcr.io/cloudcorprecords/myopendata

The container defaults to the MCP server (see below). Pass CLI arguments to use it as a CLI instead.

CLI

myopendata search-all "e-payment statistics" --limit 10
myopendata list-datasets --limit 5
myopendata search-datasets population
myopendata dataset population_malaysia
myopendata list-dashboards
myopendata search-dashboards health
myopendata dashboard kawasanku
myopendata list-dosm
myopendata dosm population
myopendata weather-forecast --location "Kuala Lumpur"
myopendata weather-warnings
myopendata flood-warnings
myopendata transport-agencies
myopendata transit-routes prasarana --category rapid-rail-kl
myopendata transit-stops ktmb
myopendata hello Ada

myopendata --version

Commands print the upstream JSON payload; hello prints a greeting string. Exit codes: 0 on success, 1 when a call fails (including an upstream API error), 2 for usage errors.

MCP server

One bin serves both faces. The mcp subcommand starts a stdio MCP server:

npx -y @reneturcios/myopendata mcp

MCP client configuration:

{
  "mcpServers": {
    "myopendata": {
      "command": "npx",
      "args": ["-y", "@reneturcios/myopendata", "mcp"]
    }
  }
}

To point the server at a different compatible host, add MYOPENDATA_API_URL to the client's env for this server.

Tools

ToolInputWhat it returns
search_allquery (required), limit (optional)Unified search results across datasets and dashboards.
list_datasets_cataloguelimit (optional)Datasets in the data catalogue.
search_datasets_cataloguequery (required), limit (optional)Catalogue datasets matching the query.
get_dataset_detailsid (required)Details for one dataset.
list_dashboardslimit (optional)Available dashboards.
search_dashboardsquery (required), limit (optional)Dashboards matching the query.
get_dashboard_detailsname (required)Details for one dashboard.
list_dosm_datasetslimit (optional)DOSM datasets.
get_dosm_datasetid (required)One DOSM dataset.
get_weather_forecastlocation (optional)The weather forecast payload.
get_weather_warnings(none)Current weather warnings.
get_flood_warnings(none)Current flood warnings.
list_transport_agencies(none)Transport agencies with GTFS data.
get_transit_routesprovider (required), category (optional)Transit routes for a GTFS provider.
get_transit_stopsprovider (required), category (optional)Transit stops for a GTFS provider.
helloname (optional)A greeting string. Health-check style tool for connectivity testing.

Known GTFS providers in the upstream documentation include mybas-johor, ktmb, and prasarana; common names are a feature of the original server and are not normalised by this rebuild — pass the provider id directly.

Development

npm install
npm run build   # tsc -> dist/
npm test        # node test runner over test/*.test.ts, no network (fake fetch fixtures)
npm run dev     # run the CLI from source via tsx

License

MIT — see LICENSE.

Reviews

No reviews yet

Be the first to review this server!