mcpField
M
myopendata

myopendata

Local
github.com/CloudCorpRecordsLegal & Government1Updated 5d ago

About myopendata

myopendata is a Malaysia open-data MCP server and CLI for people and agents querying public datasets, dashboards, statistics, weather, flood alerts, and transit data. It combines these sources in one keyless binary, though it implements a documented subset of the upstream tools.

Key features

  1. 01Unified dataset and dashboard search
  2. 02Dataset and dashboard details
  3. 03DOSM dataset access
  4. 04Weather and flood warnings
  5. 05GTFS routes and stops
  6. 06CLI and stdio MCP server

Use cases

  1. 01Find datasets or dashboards by topic
  2. 02Check Malaysia weather and flood warnings
  3. 03Look up GTFS transit routes and stops

MCP support

It runs as a stdio MCP server and exposes tools for searching and retrieving datasets, dashboards, DOSM data, weather, warnings, and GTFS transit information.

Configuration

Local server config is the same for every client. Copy it into your client’s MCP config file.

mcp.json · Universal config
{
"mcpServers": {
"cloudcorprecords-myopendata": {
"command": "npx",
"args": [
"-y",
"@reneturcios/myopendata"
]
}
}
}
Run commandnpx -y @reneturcios/myopendata

Local servers need a runtime on your machine (e.g. Node.js 18+). Config file locations differ by client; see your client’s docs.

Packages
npm@reneturcios/myopendata0.1.0
ocighcr.io/cloudcorprecords/myopendata:0.1.0

Tools

16

Saved tool list · updated 5d ago

ParameterTypeRequiredDescription
limitintegerNoMaximum number of results to return.
querystringYesSearch query text.

Details

From the project 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.

Comments

Markdown supported

New to MCP?

From what the protocol is to installing your first server, these answers cover most first questions.

An open protocol that defines how AI applications connect to external tools and data in a uniform way. Clients talk to the model; MCP servers provide tools, resources and prompt templates. They exchange standard messages, so one server can be reused by many clients.