mcp-singapore
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@mcp-singapore show recent HDB resale transactions in Bedok"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
mcp-singapore
A TypeScript MCP server for Singapore public data: specialized tools, catalog discovery, official statistics, real-time feeds, and controlled dataset exports. Uses the stdio transport and requires Node.js 22.12 or later.
64 tools · 22 specialized datasets · 4664 datasets · 74 agencies. Snapshot: 2026-10-21.
The bundled index contains dataset metadata, not a copy of every observation. Records are retrieved on demand. Coverage dates, update frequency, formats, and definitions vary by provider. See COVERAGE.md for the generated inventory.
Data coverage
Domain | Available data |
Housing | HDB resale transactions since 2017, rentals, median rents, private property indices, HDB population |
Business | UEN/ACRA entity registry and detailed alphabetical ACRA partitions |
Education | School directory, preschool locations, catalog and SingStat education statistics |
Food | Hawker centres and closure dates |
Health | Infectious disease bulletins and healthcare schemes |
Culture and sports | Museum attendance and sports facilities |
Tourism | Visitor arrivals and hotel statistics |
Environment | Recycling, greenhouse gas emissions, annual air quality |
Weather | Temperature, rain, humidity, wind, 2-hour/24-hour/four-day forecasts, PSI, PM2.5, UV |
Transport | Available taxis, parking spaces, traffic cameras; authenticated LTA bus and traffic feeds |
Geography | OneMap geocoding, geographic exports, nearby facilities, SVY21/WGS84 conversion |
Economy and society | Unemployment, government spending, SingStat tables |
International comparisons | World Bank indicators for Singapore and up to five comparison countries |
The full catalog also covers census data, incomes, trade, energy, CPF, infrastructure, urban planning, and other topics. Historical observations are not presented as current measurements.
Related MCP server: OneMap MCP Server
Dataset reference library
Browse 288 dataset guides across 74 agencies for publisher descriptions, snapshot coverage, source links, and schema-validated MCP request examples. The selection includes all 22 specialized datasets. Guides describe discovery and access; live data availability must be checked with the provider.
Install from source
git clone https://github.com/Hug0x0/mcp-singapore.git
cd mcp-singapore
npm ci
npm run build
npm testConfigure a compatible MCP client with an absolute path to the cloned project:
{
"mcpServers": {
"singapore": {
"command": "node",
"args": ["/absolute/path/to/mcp-singapore/dist/index.js"]
}
}
}The package name is @hug0x0/mcp-singapore. Publication to npm has not been performed; use the source installation until a published version is explicitly verified.
Credentials
Public data.gov.sg, SingStat, and World Bank endpoints support public exploration subject to provider quotas. A data.gov.sg API key is recommended for production use. LTA and OneMap require their own credentials.
Environment variable | Purpose |
| Optional data.gov.sg key, sent in |
| Required for LTA DataMall bus arrivals and other LTA tools |
| Required for OneMap address search and reverse geocoding |
Set variables in the MCP client's env configuration or in the server process environment. .env.example is a template; the server does not automatically load .env files. Credentials are sent in request headers, never in tool arguments or request URLs.
{
"mcpServers": {
"singapore": {
"command": "node",
"args": ["/absolute/path/to/mcp-singapore/dist/index.js"],
"env": {
"DATA_GOV_SG_API_KEY": "your-data-gov-sg-key",
"LTA_ACCOUNT_KEY": "your-lta-key",
"ONEMAP_TOKEN": "your-onemap-token"
}
}
}
}Request credentials from data.gov.sg, LTA DataMall, and OneMap. Configure only the services you use. Renew expired OneMap tokens with the provider.
Research workflow
Use
singapore_find_relevant_toolsto route an English question to relevant tools.Use
singapore_search_catalogto search the bundled index by English keywords, agency, format, status, and coverage.Use
singapore_inspect_datasetto inspect current metadata and normalized field names. Field metadata is paginated;include_rawincludes the original column mapping.Use
singapore_query_datasetor a specialized tool to retrieve records with filters, field searches, sorting, projection, and pagination.Use
singapore_download_datasetto initiate and poll an export when Datastore does not support the dataset.
Example catalog query:
{"query":"resale flat prices","limit":5}Then query singapore_query_hdb_resale:
{"filters":{"town":"ANG MO KIO","flat_type":"4 ROOM"},"sort":"month desc","limit":10,"offset":0}Filters use exact equality and preserve the provider's representation. Column search uses an object such as {"school_name":"RAFFLES"}. Inspect field names first. Numeric values may be strings; missing-value markers are preserved.
For SingStat, search {"query":"population"}, inspect resource M810001, then call singapore_get_statistics with {"resource_id":"M810001","series_contains":"Total Population","period_limit":5}. Series and period filtering occur locally after table retrieval; period can restrict the upstream request to an exact period.
Analysis and nearby searches
singapore_compare_hdb_prices scans the complete official CSV export before calculating medians, quartiles, and prices per square metre. It reports exclusions and coverage rather than extrapolating from a single page.
singapore_find_nearby_facilities supports HDB carparks with live availability, hawker centres, preschools, park facilities, and sports facilities. Unsupported geometries and missing coordinates are counted. Preschool coverage does not include primary or secondary schools.
singapore_convert_coordinates converts SVY21 easting/northing to WGS84 longitude/latitude and back within supported Singapore bounds.
MCP resources and results
Resources: singapore://sources, singapore://coverage, singapore://usage, singapore://topics.
Prompt: research-singapore, with a question argument.
Results contain ok, served_at, data, and sources, in both structuredContent and JSON text. served_at is the response emission time; HTTP provenance includes actual fetched_at, cache use, and cache age. Provider observation and update timestamps remain authoritative for the data itself.
The server bounds page sizes, request queues, output size, HTTP responses, and caches. It preserves continuation parameters and rejects oversized outputs explicitly. Requests use fixed provider origins and reject redirects. Credentials and request bodies are not sent to telemetry services.
Maintenance and verification
npm run build
npm test
npm run docs:generate
npm run docs:check
npm run check:schema
npm run test:smoke
npm run test:smoke -- --all
npm run test:smoke -- --mode=auth
npm run test:package
npm audit
npm run refresh:catalogLive verification is separate from ordinary pull-request tests. Authenticated checks are explicitly skipped when credentials are absent. The latest report is in docs/live-verification.json. Successful checks do not guarantee future provider availability.
Catalog refresh validates complete pagination, dataset integrity, and required fields before replacing the index. Manual workflows provide catalog refresh proposals and provider verification artifacts. The source catalog and provider responses can change independently of this server.
Documentation
Sources
License
MIT for the server code. Data remains subject to its providers' terms and attribution requirements. See the Singapore Open Data Licence and individual dataset metadata.
Available Tools
64 toolssingapore_catalog_summaryARead-onlyIdempotent
List dataset counts by publishing agency and file format, with catalog snapshot date.
Inputs: no named parameters. Returns: ok, data, error, status, +11 more
singapore_compare_hdb_pricesARead-onlyIdempotent
Compare HDB resale prices across towns and a bounded month interval using the entire official CSV export (64 MiB maximum). Does not extrapolate from a Datastore page. Exports may still be processing: retry on EXPORT_PENDING.
Inputs: towns (required), to_month (required), from_month (required), flat_type. Returns: ok, data, error, status, +11 more
singapore_convert_coordinatesARead-onlyIdempotent
Convert SVY21 easting/northing metres to WGS84 longitude/latitude or the reverse within Singapore. Uses SLA projection parameters; no API key.
Inputs: x (required), y (required), from (required). Returns: ok, data, error, status, +11 more
singapore_download_datasetARead-only
Start or poll a dataset export. Call initiate once, then poll on later calls. Returns provider download URL (may expire), never downloads large files into the conversation. Suitable for CSV/GeoJSON/KML and datasets without datastore support.
Inputs: dataset_id (required), action. Returns: ok, data, error, status, +11 more
singapore_find_nearby_bus_stopsBRead-onlyIdempotent
Search a bounded set of LTA bus-stop pages near WGS84 coordinates. Requires LTA_ACCOUNT_KEY. Complete is true only after an upstream short page; continuation identifies the next unscanned page.
Inputs: latitude (required), longitude (required), limit, offset, +3 more. Returns: ok, data, error, status, +11 more
singapore_find_nearby_facilitiesARead-onlyIdempotent
Find nearby HDB carparks with live availability, hawker centres, preschools, park facilities or sport facilities. Reads a bounded full official export (64 MiB max). Only Point geometries with validated WGS84 coordinates are considered; omitted geometries are counted. No arbitrary download URL input.
Inputs: category (required), latitude (required), longitude (required), limit, +3 more. Returns: ok, data, error, status, +11 more
singapore_find_relevant_toolsARead-onlyIdempotent
Route an English question to tools and datasets. Deterministic keyword matching; suggestions are not evidence or computed facts. Search catalog with English keywords.
Inputs: question (required), limit. Returns: ok, data, error, status, +11 more
singapore_get_air_temperatureBRead-onlyIdempotent
NEA temperature (degrees Celsius). Singapore local dates; latest if omitted. Local limits apply to timestamp groups. Consume local offsets before continuing the preserved upstream pagination token.
Inputs: area, date, limit, offset, +3 more. Returns: ok, data, error, status, +11 more
singapore_get_bus_arrivalsARead-onlyIdempotent
Live next buses at a bus stop, estimated arrival, load and accessibility. Requires LTA_ACCOUNT_KEY. Bus stop codes retain leading zeros.
Inputs: bus_stop_code (required), service_no. Returns: ok, data, error, status, +11 more
singapore_get_capabilitiesCRead-onlyIdempotent
Local configuration and source availability. Reports only whether credentials are configured, never their values. No network requests.
Inputs: no named parameters. Returns: ok, data, error, status, +11 more
singapore_get_carpark_availabilityARead-onlyIdempotent
HDB/URA carpark live available lots by carpark number. Does not include coordinates: join with carpark directory to locate carparks.
Inputs: limit, offset, date_time, carpark_number. Returns: ok, data, error, status, +11 more
singapore_get_collectionBRead-onlyIdempotent
Get a collection and its child dataset metadata to discover related historical series or ACRA partitions.
Inputs: collection_id (required). Returns: ok, data, error, status, +11 more
singapore_get_forecast_24hCRead-onlyIdempotent
NEA 24-hour weather forecast. Singapore local dates; latest if omitted. Local limits apply to timestamp groups. Consume local offsets before continuing the preserved upstream pagination token.
Inputs: area, date, limit, offset, +3 more. Returns: ok, data, error, status, +11 more
singapore_get_forecast_2hBRead-onlyIdempotent
NEA 2-hour area forecasts. Singapore local dates; latest if omitted. Local limits apply to timestamp groups. Consume local offsets before continuing the preserved upstream pagination token.
Inputs: area, date, limit, offset, +3 more. Returns: ok, data, error, status, +11 more
singapore_get_forecast_4dayCRead-onlyIdempotent
NEA four-day outlook. Singapore local dates; latest if omitted. Local limits apply to timestamp groups. Consume local offsets before continuing the preserved upstream pagination token.
Inputs: area, date, limit, offset, +3 more. Returns: ok, data, error, status, +11 more
singapore_get_indicatorARead-onlyIdempotent
World Bank historical indicator for Singapore, optionally comparing up to five ISO3 countries. Latest years first; null values are preserved. Definitions and publication lag can differ from SingStat. No key required.
Inputs: indicator (required), page, limit, to_year, +2 more. Returns: ok, data, error, status, +11 more
singapore_get_pm25BRead-onlyIdempotent
NEA PM2.5 (micrograms per cubic metre). Singapore local dates; latest if omitted. Local limits apply to timestamp groups. Consume local offsets before continuing the preserved upstream pagination token.
Inputs: area, date, limit, offset, +3 more. Returns: ok, data, error, status, +11 more
singapore_get_psiBRead-onlyIdempotent
NEA PSI and pollutants by region. Singapore local dates; latest if omitted. Local limits apply to timestamp groups. Consume local offsets before continuing the preserved upstream pagination token.
Inputs: area, date, limit, offset, +3 more. Returns: ok, data, error, status, +11 more
singapore_get_rainfallCRead-onlyIdempotent
NEA rainfall (mm). Singapore local dates; latest if omitted. Local limits apply to timestamp groups. Consume local offsets before continuing the preserved upstream pagination token.
Inputs: area, date, limit, offset, +3 more. Returns: ok, data, error, status, +11 more
singapore_get_relative_humidityCRead-onlyIdempotent
NEA humidity (%). Singapore local dates; latest if omitted. Local limits apply to timestamp groups. Consume local offsets before continuing the preserved upstream pagination token.
Inputs: area, date, limit, offset, +3 more. Returns: ok, data, error, status, +11 more
singapore_get_sourcesBRead-onlyIdempotent
List connected official data sources, documentation and API key requirements. This server reads public information; no account mutation tools.
Inputs: no named parameters. Returns: ok, data, error, status, +11 more
singapore_get_statisticsARead-onlyIdempotent
Read SingStat time series, retaining unit and footnotes. Fetches table (or one exact upstream period), then filters series locally and keeps the last N upstream periods per series. Values remain strings to preserve missing-value markers. Use series_offset to paginate series.
Inputs: resource_id (required), order, period, to_period, +5 more. Returns: ok, data, error, status, +11 more
singapore_get_taxi_availabilityARead-onlyIdempotent
Available taxi coordinates from data.gov.sg, optionally within a radius sorted by distance. Latest unless date_time supplied. Coordinates use WGS84; returns a bounded sample and total match count.
Inputs: limit, offset, latitude, date_time, +2 more. Returns: ok, data, error, status, +11 more
singapore_get_traffic_imagesBRead-onlyIdempotent
Traffic camera image URLs, coordinates and timestamps. Optional radius filter. Image URLs are returned, never fetched by this server.
Inputs: limit, offset, latitude, camera_id, +3 more. Returns: ok, data, error, status, +11 more
singapore_get_uv_indexCRead-onlyIdempotent
NEA UV index. Singapore local dates; latest if omitted. Local limits apply to timestamp groups. Consume local offsets before continuing the preserved upstream pagination token.
Inputs: area, date, limit, offset, +3 more. Returns: ok, data, error, status, +11 more
singapore_get_wind_directionBRead-onlyIdempotent
NEA wind direction (degrees). Singapore local dates; latest if omitted. Local limits apply to timestamp groups. Consume local offsets before continuing the preserved upstream pagination token.
Inputs: area, date, limit, offset, +3 more. Returns: ok, data, error, status, +11 more
singapore_get_wind_speedBRead-onlyIdempotent
NEA wind speed (knots). Singapore local dates; latest if omitted. Local limits apply to timestamp groups. Consume local offsets before continuing the preserved upstream pagination token.
Inputs: area, date, limit, offset, +3 more. Returns: ok, data, error, status, +11 more
singapore_inspect_datasetBRead-onlyIdempotent
Get live dataset metadata, schema, format, coverage and last update. Field IDs may be internal: use columnMetadata.map/metaMapping names for datastore filters.
Inputs: dataset_id (required), include_raw, fields_limit, fields_offset. Returns: ok, data, error, status, +11 more
singapore_inspect_statisticsBRead-onlyIdempotent
Get SingStat table metadata, frequency, units, definitions, notes, series and coverage before reading observations.
Inputs: resource_id (required), include_raw, series_limit, series_offset. Returns: ok, data, error, status, +11 more
singapore_list_catalog_pageARead-onlyIdempotent
List a current live page of data.gov.sg catalog (upstream page size). Use search_catalog for fast search of the bundled snapshot.
Inputs: page. Returns: ok, data, error, status, +11 more
singapore_list_collectionsBRead-onlyIdempotent
List a live page of data.gov.sg collections and their child dataset IDs. Page size is controlled by the provider.
Inputs: page. Returns: ok, data, error, status, +11 more
singapore_list_curated_datasetsBRead-onlyIdempotent
Browse curated datasets and tool names by topic. Includes coverage dates: some series are historical. The full catalog is searchable separately.
Inputs: topic. Returns: ok, data, error, status, +11 more
singapore_list_indicatorsARead-onlyIdempotent
Curated World Bank indicators for Singapore. Other valid indicator codes work with get_indicator.
Inputs: no named parameters. Returns: ok, data, error, status, +11 more
singapore_list_weather_stationsBRead-onlyIdempotent
Discover weather stations, IDs and WGS84 coordinates by observed measure; search by ID/name. No observations omitted from a claimed national inventory.
Inputs: limit, query, offset, measure. Returns: ok, data, error, status, +11 more
singapore_lookup_datasetARead-onlyIdempotent
Resolve an exact dataset ID in the bundled snapshot. No network; a missing entry may exist in the live catalog.
Inputs: dataset_id (required). Returns: ok, data, error, status, +11 more
singapore_query_air_quality_annualARead-onlyIdempotent
Query Air Quality, Annual (Singapore Department of Statistics). Topic: environment. Inspect dataset d_b733fb074ed97f4d322525467b0fa457 first for filter fields. Supports exact filters, column text search, fields, sort and pagination. Returns source coverage from the bundled catalog; fetch metadata for current coverage.
Inputs: q, sort, limit, fields, +2 more. Returns: ok, data, error, status, +11 more
singapore_query_businessesARead-onlyIdempotent
Query Entities Registered with ACRA (Accounting and Corporate Regulatory Authority). Topic: economy. Inspect dataset d_3f960c10fed6145404ca7b821f263b87 first for filter fields. Supports exact filters, column text search, fields, sort and pagination. Returns source coverage from the bundled catalog; fetch metadata for current coverage.
Inputs: q, sort, limit, fields, +2 more. Returns: ok, data, error, status, +11 more
singapore_query_carpark_directoryARead-onlyIdempotent
Query HDB Carpark Information (Housing & Development Board). Topic: transport. Inspect dataset d_23f946fa557947f93a8043bbef41dd09 first for filter fields. Supports exact filters, column text search, fields, sort and pagination. Returns source coverage from the bundled catalog; fetch metadata for current coverage.
Inputs: q, sort, limit, fields, +2 more. Returns: ok, data, error, status, +11 more
singapore_query_datasetARead-onlyIdempotent
Query any tabular data.gov.sg dataset. Exact filters, column text search, projection, sorting and pagination. Preserve upstream values/units; no SQL. Non-tabular or unsupported datasets can be downloaded instead.
Inputs: dataset_id (required), q, sort, limit, +3 more. Returns: ok, data, error, status, +11 more
singapore_query_government_expenditureARead-onlyIdempotent
Query Government Total Expenditure (Ministry of Finance). Topic: finance. Inspect dataset d_00f95040967791729d51bd7cd6af2355 first for filter fields. Supports exact filters, column text search, fields, sort and pagination. Returns source coverage from the bundled catalog; fetch metadata for current coverage.
Inputs: q, sort, limit, fields, +2 more. Returns: ok, data, error, status, +11 more
singapore_query_greenhouse_emissionsARead-onlyIdempotent
Query Greenhouse Gas Emissions By Sector, Annual (Singapore Department of Statistics). Topic: environment. Inspect dataset d_1b8dcef6bf32ece26deca60e59d99f71 first for filter fields. Supports exact filters, column text search, fields, sort and pagination. Returns source coverage from the bundled catalog; fetch metadata for current coverage.
Inputs: q, sort, limit, fields, +2 more. Returns: ok, data, error, status, +11 more
singapore_query_hawker_centresBRead-onlyIdempotent
Query List of Government Markets Hawker Centres (National Environment Agency). Topic: food. Inspect dataset d_68a42f09f350881996d83f9cd73ab02f first for filter fields. Supports exact filters, column text search, fields, sort and pagination. Returns source coverage from the bundled catalog; fetch metadata for current coverage.
Inputs: q, sort, limit, fields, +2 more. Returns: ok, data, error, status, +11 more
singapore_query_hawker_closuresBRead-onlyIdempotent
Query Dates of Hawker Centres Closure (National Environment Agency). Topic: food. Inspect dataset d_bda4baa634dd1cc7a6c7cad5f19e2d68 first for filter fields. Supports exact filters, column text search, fields, sort and pagination. Returns source coverage from the bundled catalog; fetch metadata for current coverage.
Inputs: q, sort, limit, fields, +2 more. Returns: ok, data, error, status, +11 more
singapore_query_hdb_median_rentARead-onlyIdempotent
Query Median Rent By Town And Flat Type (Housing & Development Board). Topic: housing. Inspect dataset d_23000a00c52996c55106084ed0339566 first for filter fields. Supports exact filters, column text search, fields, sort and pagination. Returns source coverage from the bundled catalog; fetch metadata for current coverage.
Inputs: q, sort, limit, fields, +2 more. Returns: ok, data, error, status, +11 more
singapore_query_hdb_populationARead-onlyIdempotent
Query HDB Resident Population by Geographical Distribution (Housing & Development Board). Topic: population. Inspect dataset d_0a6c6d71f6fa14e2d27e406f1d018439 first for filter fields. Supports exact filters, column text search, fields, sort and pagination. Returns source coverage from the bundled catalog; fetch metadata for current coverage.
Inputs: q, sort, limit, fields, +2 more. Returns: ok, data, error, status, +11 more
singapore_query_hdb_rentalsARead-onlyIdempotent
Query Renting Out of Flats from Jan 2021 (Housing & Development Board). Topic: housing. Inspect dataset d_c9f57187485a850908655db0e8cfe651 first for filter fields. Supports exact filters, column text search, fields, sort and pagination. Returns source coverage from the bundled catalog; fetch metadata for current coverage.
Inputs: q, sort, limit, fields, +2 more. Returns: ok, data, error, status, +11 more
singapore_query_hdb_resaleARead-onlyIdempotent
Query Resale flat prices based on registration date from Jan-2017 onwards (Housing & Development Board). Topic: housing. Inspect dataset d_8b84c4ee58e3cfc0ece0d773c8ca6abc first for filter fields. Supports exact filters, column text search, fields, sort and pagination. Returns source coverage from the bundled catalog; fetch metadata for current coverage.
Inputs: q, sort, limit, fields, +2 more. Returns: ok, data, error, status, +11 more
singapore_query_healthcare_schemesARead-onlyIdempotent
Query Healthcare Schemes and Subsidies (Ministry of Health). Topic: health. Inspect dataset d_586ee0cbc5c79ff8167a46132a405239 first for filter fields. Supports exact filters, column text search, fields, sort and pagination. Returns source coverage from the bundled catalog; fetch metadata for current coverage.
Inputs: q, sort, limit, fields, +2 more. Returns: ok, data, error, status, +11 more
singapore_query_hotel_statisticsARead-onlyIdempotent
Query Monthly Gazetted Hotels Statistics (Singapore Tourism Board). Topic: tourism. Inspect dataset d_1db0bd2ffd95ac09c66db600e60d3400 first for filter fields. Supports exact filters, column text search, fields, sort and pagination. Returns source coverage from the bundled catalog; fetch metadata for current coverage.
Inputs: q, sort, limit, fields, +2 more. Returns: ok, data, error, status, +11 more
singapore_query_infectious_diseasesARead-onlyIdempotent
Query Weekly Infectious Disease Bulletin Cases (Ministry of Health). Topic: health. Inspect dataset d_ca168b2cb763640d72c4600a68f9909e first for filter fields. Supports exact filters, column text search, fields, sort and pagination. Returns source coverage from the bundled catalog; fetch metadata for current coverage.
Inputs: q, sort, limit, fields, +2 more. Returns: ok, data, error, status, +11 more
singapore_query_land_areaARead-onlyIdempotent
Query Land Area (As At December), Annual (Singapore Department of Statistics). Topic: geography. Inspect dataset d_0b2c034da121ef8efc71949af1694b4d first for filter fields. Supports exact filters, column text search, fields, sort and pagination. Returns source coverage from the bundled catalog; fetch metadata for current coverage.
Inputs: q, sort, limit, fields, +2 more. Returns: ok, data, error, status, +11 more
singapore_query_ltaBRead-onlyIdempotent
LTA lists and alerts. Requires LTA_ACCOUNT_KEY. Stop/service filters are allowed only on provider endpoints supporting them. Offsets apply only to paginated datasets.
Inputs: dataset (required), limit, offset, service_no, +1 more. Returns: ok, data, error, status, +11 more
singapore_query_museum_visitorsARead-onlyIdempotent
Query Visitorship to National Museums and Heritage Institutions (Ministry of Culture, Community and Youth). Topic: culture. Inspect dataset d_618a1224b896b436ce650be1f77c804e first for filter fields. Supports exact filters, column text search, fields, sort and pagination. Returns source coverage from the bundled catalog; fetch metadata for current coverage.
Inputs: q, sort, limit, fields, +2 more. Returns: ok, data, error, status, +11 more
singapore_query_private_property_pricesARead-onlyIdempotent
Query Price Indices Of Non-Landed Private Residential Properties By Locality (1st Quarter 2009 = 100), Quarterly (Singapore Department of Statistics). Topic: housing. Inspect dataset d_65f5bf43d377db3939d93eb6f744d950 first for filter fields. Supports exact filters, column text search, fields, sort and pagination. Returns source coverage from the bundled catalog; fetch metadata for current coverage.
Inputs: q, sort, limit, fields, +2 more. Returns: ok, data, error, status, +11 more
singapore_query_recycling_ratesARead-onlyIdempotent
Query Recycling Rate By Waste Type (National Environment Agency). Topic: environment. Inspect dataset d_9740df787da2b59a0b5bd76a6c33453d first for filter fields. Supports exact filters, column text search, fields, sort and pagination. Returns source coverage from the bundled catalog; fetch metadata for current coverage.
Inputs: q, sort, limit, fields, +2 more. Returns: ok, data, error, status, +11 more
singapore_query_schoolsARead-onlyIdempotent
Query General information of schools (Ministry of Education). Topic: education. Inspect dataset d_688b934f82c1059ed0a6993d2a829089 first for filter fields. Supports exact filters, column text search, fields, sort and pagination. Returns source coverage from the bundled catalog; fetch metadata for current coverage.
Inputs: q, sort, limit, fields, +2 more. Returns: ok, data, error, status, +11 more
singapore_query_sport_facilitiesARead-onlyIdempotent
Query Sport Facilities (Sport Singapore). Topic: culture. Inspect dataset d_2cfb0867cdeb2b7303068995699dc33b first for filter fields. Supports exact filters, column text search, fields, sort and pagination. Returns source coverage from the bundled catalog; fetch metadata for current coverage.
Inputs: q, sort, limit, fields, +2 more. Returns: ok, data, error, status, +11 more
singapore_query_unemploymentARead-onlyIdempotent
Query Average Resident Unemployment Rate By Sex, Age And Highest Qualification Attained (HQA), Annual (Singapore Department of Statistics). Topic: employment. Inspect dataset d_11a640f1e61c1a680efeac8c775cdcb5 first for filter fields. Supports exact filters, column text search, fields, sort and pagination. Returns source coverage from the bundled catalog; fetch metadata for current coverage.
Inputs: q, sort, limit, fields, +2 more. Returns: ok, data, error, status, +11 more
singapore_query_visitor_arrivalsARead-onlyIdempotent
Query International Visitor Arrivals By Place Of Residence, Monthly (Singapore Department of Statistics). Topic: tourism. Inspect dataset d_7e7b2ee60c6ffc962f80fef129cf306e first for filter fields. Supports exact filters, column text search, fields, sort and pagination. Returns source coverage from the bundled catalog; fetch metadata for current coverage.
Inputs: q, sort, limit, fields, +2 more. Returns: ok, data, error, status, +11 more
singapore_reverse_geocodeBRead-onlyIdempotent
OneMap reverse geocoding of Singapore WGS84 coordinates to nearby addresses. Requires ONEMAP_TOKEN.
Inputs: latitude (required), longitude (required), radius_m. Returns: ok, data, error, status, +11 more
singapore_search_acraBRead-onlyIdempotent
Search one detailed ACRA partition by entity name or UEN. Select A-Z or Others explicitly; no automatic scan of all partitions. Inspect returned schema for provider field names.
Inputs: partition (required), uen, name, limit, +1 more. Returns: ok, data, error, status, +11 more
singapore_search_addressARead-onlyIdempotent
OneMap official address/building/postal-code geocoding (WGS84 plus SVY21). Requires ONEMAP_TOKEN. Search pages are provider pages, usually 10 results.
Inputs: query (required), page. Returns: ok, data, error, status, +11 more
singapore_search_catalogARead-onlyIdempotent
Search the bundled full data.gov.sg catalog by English keywords, agency and format. No network needed. Results include snapshot date. Use inspect_dataset then query_dataset; non-tabular datasets may require download. Use list_catalog_page for updates since the snapshot.
Inputs: limit, query, agency, format, +5 more. Returns: ok, data, error, status, +11 more
singapore_search_statisticsARead-onlyIdempotent
Search SingStat Table Builder across all official economic, population, labour, trade, health and social tables. Returns resource IDs to use with inspect_statistics/get_statistics. Use English terms.
Inputs: query (required), limit, offset. Returns: ok, data, error, status, +11 more
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 64 tools
The core pattern is clear: generic catalog tools (search_catalog, inspect_dataset, query_dataset, download_dataset) plus per-dataset convenience wrappers. However, ~20 singapore_query_<topic> tools overlap heavily with singapore_query_dataset, and discovery is split across search_catalog, list_catalog_page, list_curated_datasets, catalog_summary, and find_relevant_tools, so an agent can hesitate between near-equivalent entry points. Descriptions do a good job steering (e.g. compare_hdb_prices vs query_hdb_resale, find_nearby_bus_stops vs get_bus_arrivals), which keeps it from being worse.
Every tool uses the singapore_ prefix plus a consistent snake_case verb_noun form (query_*, get_*, list_*, search_*, inspect_*, find_nearby_*, convert_*). Verb choice maps predictably to intent: query for tabular data, get for live readings, list/search for discovery.
64 tools is far beyond a comfortable surface for a single server, even a broad national data portal. Much of the bulk comes from per-dataset query wrappers that duplicate query_dataset's capability and could be replaced by a curated dataset list.
Coverage is broad and coherent: catalog discovery, metadata inspection, tabular querying, export/download, live weather, transport, SingStat, geocoding, World Bank, and capability/source introspection, with a consistent read-only posture. Gaps are minor — e.g. some discovery paths (curated topics) versus the live catalog could be unified, and a few domain areas rely on single datasets.
Maintenance
Related MCP Connectors
Singapore property & financial data APIs for AI agents. 27 MCP tools. x402 micropayments.
294 public-data tools across 60 domains; source freshness varies. Free tier.
Read-only discovery for 447 Malaysian public datasets with freshness, licence, and provenance.
Search 77k public-sector open data APIs across 10 countries. Read-only, no API key.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceProvides access to Singapore's data.gov.sg government datasets and collections, enabling search, metadata retrieval, and dataset downloads through the CKAN datastore API.4MIT
- FlicenseNot gradedqualityDmaintenanceProvides comprehensive access to Singapore's OneMap APIs, enabling AI assistants to perform location searches, routing, and coordinate conversions. It features over 35 tools for accessing thematic layers, population statistics, and public transport data.1-
- AlicenseNot gradedqualityBmaintenanceEnables access to Singapore government open data and real-time environment/transport feeds including weather, air quality, taxi availability, and traffic incidents.97 npmMIT
- FlicenseNot gradedqualityDmaintenanceProvides AI agents with live, structured access to Singapore government open data including weather, transport, property, and company registry via 35 well-described tools.1-