Sgdata MCP
Singapore government data for AI agents: ACRA, HDB, COE, URA, SingStat, MAS, IRAS.
Connector by sypherin · GitHub account verified by the MCP Registry
Chalk Labs
Need help deploying Sgdata MCP?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/sypherin-sgdata-mcp
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 41 read · 2 write · 0 delete · 46 not yet classified
- Secrets
- None asked for
- Install scripts
- Not scanned yet
- Runs as
- Node.js package
Tools by what they do 89
Read from the source code; the running server may list different tools.
Read 41 · Look things up without changing anything.
sg_acra_formations_by_ssicsg_acra_get_entitysg_acra_search_entitiessg_asksg_births_latestsg_cessations_monthlysg_coe_latestsg_crime_comparesg_crime_latestsg_cross_datasetsg_dataset_querysg_dataset_schema
Show 29 more tools
sg_disease_latestsg_disease_listsg_ecda_centres_nearsg_ecda_search_centressg_electricity_latestsg_formations_comparesg_formations_historysg_formations_latestsg_formations_monthlysg_gdp_industry_comparesg_gdp_latestsg_hawker_searchsg_hawker_statssg_hdb_carpark_lookupsg_hdb_resale_searchsg_hdb_resale_statssg_iras_collectionsg_list_datasetssg_median_income_lookupsg_moe_schools_nearsg_moe_search_schoolssg_net_formationssg_population_latestsg_search_datasetssg_tool_catalogsg_tourism_latestsg_unemployment_latestsg_visualizesg_weather_forecast
Write 2 · Create, change, send or run things.
sg_dispatchsg_hdb_carparks_by_type
Not yet classified 46 · We could not tell from the name and description.
sg_air_temperaturesg_births_historysg_carpark_availabilitysg_coe_demand_supplysg_coe_historysg_cpi_historysg_cpi_latestsg_cpi_yoysg_crime_historysg_deathssg_dengue_clusterssg_disease_trend
Show 34 more tools
sg_divorcessg_ecda_vacancy_summarysg_electricity_historysg_employment_by_sectorsg_employment_growthsg_employment_sector_historysg_fx_basketsg_fx_historysg_fx_ratesg_gdp_historysg_hdb_carparks_by_addresssg_household_incomesg_iras_collection_historysg_iras_tax_mixsg_labour_forcesg_marriagessg_median_income_historysg_moe_school_by_namesg_population_historysg_psisg_rainfallsg_retail_sales_historysg_retail_sales_latestsg_retail_sales_yoysg_tourism_historysg_tradesg_unemployment_historysg_ura_new_sale_pipelinesg_ura_private_txn_historysg_ura_private_txn_latestsg_visitors_historysg_visitors_latestsg_visitors_top_sourcessg_wages
Files it touches
- Any path the agent passes to its tools
Tools (89)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
sg_acra_formations_by_ssicCount ACRA corporate entity formations for a given SSIC prefix and calendar year. Useful for macro questions like 'how many fintech (SSIC 64) companies were incorporated in 2025'. Returns the match count plus a 25-row sample sorted by incorporation date.
sg_acra_get_entityLook up a single ACRA corporate entity by exact UEN via a server-side datastore_search exact-match query (no local ingest). Returns the full row including entity name, type, status, SSIC, and address, or `found: false` if no match.
sg_acra_search_entitiesSearch the curated ACRA corporate registry resource server-side (via datastore_search; no local ingest). Filters: free-text substring on entity_name (`query`), SSIC prefix (`ssic_prefix`, e.g. '62' for IT), exact entity status (`status`, e.g. 'Live Company'), incorporation date window (`incorporated_after` / `incorporated_before`, YYYY-MM-DD), and postal code prefix (`postal_code_prefix`). query+status are pushed server-side; SSIC/postal/date predicates are refined client-side on the bounded fetched subset. Multi-word queries default to match:'all' (every token must appear in entity_name, rank…
sg_air_temperatureLive air temperature readings (deg C) from NEA weather stations across Singapore, with each station's name, coordinates and current value, plus an island-wide min/max/avg summary. Updated roughly every minute.
sg_askAsk a natural language question about Singapore government data. Automatically routes to the best matching tool. Examples: 'What is Singapore's GDP growth?', 'How many dengue cases?', 'Latest COE prices', 'Crime statistics'.
sg_births_historyMonthly live-birth count time series for a category (e.g. 'Total Live-Births'). Returns oldest-to-newest.
sg_births_latestGet the most recent month's live-birth counts by sex and ethnic group. Optionally filter by category (e.g. 'Total', 'Males', 'Chinese').
sg_carpark_availabilityLive HDB/LTA carpark lot availability across Singapore (updated every minute). Returns each carpark's number, available vs total lots, lot type, and update time. Use `carpark_number` for a substring match on the carpark id (e.g. 'HE12', 'BM'), and `limit` to cap the number of carparks returned (default 50). Without filters the list is large (~1900 carparks).
sg_cessations_monthlyGet monthly business cessation (closure/deregistration) counts for a specific industry or all industries (Total). Returns monthly time series from Jan 1990 to present. Data from ACRA via SingStat Table Builder.
sg_coe_demand_supplyCOE oversubscription ratio (bids_received / quota) for a single vehicle category over the last N months. Values > 1.0 indicate bids exceeded quota.
sg_coe_historyCOE premium time series for a single vehicle category. Returns bidding exercises in chronological order (oldest first), optionally trimmed to the last N months.
sg_coe_latestGet the most recent COE bidding result per vehicle category. If vehicle_class is supplied (e.g. 'Category A'), returns just that one; otherwise returns the latest exercise across all categories.
sg_cpi_historyMonthly CPI time series for a single sub-index (substring match on DataSeries). Returns oldest-to-newest, trimmed to last N months if months_back is given.
sg_cpi_latestMost recent CPI index value and YoY change for a matching sub-index (substring match on DataSeries). Defaults to 'All Items'.
sg_cpi_yoyYear-on-year inflation rate for a single CPI sub-index in a given month. If month is omitted, uses the most recent month. Month format: '2026Feb' or '2026-Feb'.
Show 74 more tools
sg_crime_compareRank all crime types by case count for a given year. Returns every crime type sorted descending by number of cases.
sg_crime_historyAnnual crime case count time series for a specific crime type (e.g. 'Total Crimes', 'Cheating'). Returns oldest-to-newest.
sg_crime_latestGet the most recent year's crime case counts by type. Optionally filter by crime type (substring match, e.g. 'Robbery', 'Cheating', 'Scam').
sg_cross_datasetCompare two Singapore datasets side-by-side over time. Joins both datasets on their time dimension (year/quarter/month) and returns aligned rows for correlation analysis. Examples: compare GDP vs unemployment, CPI vs retail sales, births vs population. Use dataset short IDs like 'gdp_yoy', 'unemployment', 'cpi_monthly', 'crime', etc.
sg_dataset_queryQuery any data.gov.sg dataset by ID with simple exact-match and substring (LIKE) filters, paginated. Automatically downloads and caches the dataset locally on first use, refreshing if the cache is older than 30 days. Filter keys must be the human column labels from sg_dataset_schema.
sg_dataset_schemaFetch the column schema and metadata for any data.gov.sg dataset by ID. Returns the human column labels (use these as filter keys for sg_dataset_query), agency, format, size, and last updated timestamp. Cheap call — does not download the dataset itself.
sg_deathsSingapore mortality indicators: crude death rate and infant mortality rate. Annual, from DOS via SingStat (M810481). Use `indicator` to choose ('Crude Death Rate' or 'Infant Mortality Rate'); defaults to crude death rate.
sg_dengue_clustersActive NEA dengue clusters in Singapore (live). The legacy realtime endpoint is decommissioned (HTTP 403), so this pulls NEA's official 'Dengue Clusters (GEOJSON)' dataset and returns each cluster's locality, case count and centroid, sorted by case size, plus totals. Optional `min_cases` filters to larger clusters.
sg_disease_latestGet the most recent week's infectious disease case counts. Optionally filter by disease name (substring match, e.g. 'Dengue', 'HFMD', 'Tuberculosis'). KNOWN ISSUE: upstream MOH feed on data.gov.sg appears frozen since 2022-W52 — check the returned `data_freshness.level` field; `frozen` means cross-check moh.gov.sg.
sg_disease_listList all diseases tracked in the Weekly Infectious Disease Bulletin with their total case counts across all weeks.
sg_disease_trendWeekly case count trend for a specific disease (e.g. 'Dengue Fever', 'HFMD'). Returns oldest-to-newest, optionally trimmed to last N weeks.
sg_dispatchInvoke any sgdata tool by name with a JSON args object. Get the exact arg names and shapes from sg_tool_catalog first. Args are validated against the tool's real schema — a validation error tells you the expected shape.
sg_divorcesSingapore divorce statistics. Defaults to total divorces & annulments; use `indicator` for other series (e.g. 'Civil Divorces', 'Muslim Divorces', 'Median Duration Of Marriage For Divorces'). Annual, from DOS via SingStat (M830201).
sg_ecda_centres_nearFind childcare centres whose postal_code shares a prefix with the supplied postal_code (default prefix length 2 — postal sector).
sg_ecda_search_centresSearch ECDA childcare & kindergarten centres. Filters: name substring, postal_code prefix, service_model ('Childcare', 'Kindergarten', etc.), has_infant_vacancy (true = at least one infant slot), spark_certified.
sg_ecda_vacancy_summaryAggregate vacancy count for a given level (infant/pg/n1/n2/k1/k2), optionally restricted to a postal_code prefix. Returns total vacancies, centres with vacancy, and centres reviewed.
sg_electricity_historyMonthly electricity generation time series for a given source (e.g. 'Total', 'Gas Turbine / Combined Cycle'). Returns oldest-to-newest, optionally trimmed to last N months.
sg_electricity_latestGet the most recent month's electricity generation figures by source. Optionally filter by source (e.g. 'Total', 'Gas').
sg_employment_by_sectorEmployment counts by sector for a given year. If year is omitted, uses the most recent year. If sector is supplied, filters to rows whose DataSeries contains that substring.
sg_employment_growthPercent change in employment for a sector between two years (substring match on DataSeries).
sg_employment_sector_historyEmployment time series for a single sector (substring match on DataSeries), oldest-to-newest. Optionally trimmed to last N years.
sg_formations_compareCompare business formation counts across multiple industries for a given year. Great for spotting which sectors are growing fastest. Optionally filter by SSIC codes.
sg_formations_historyGet the historical time series of business formations for a specific industry/SSIC code. Returns annual counts from 1990 to present. Use SSIC code (e.g. '62' for IT) or 'Total' for all industries.
sg_formations_latestGet the latest year's business formation counts by industry in Singapore. Shows how many new companies were registered in each SSIC sector. Data from ACRA via SingStat.
sg_formations_monthlyGet monthly business formation counts for a specific industry or all industries (Total). Returns monthly time series from Jan 1990 to present. Data from ACRA via SingStat Table Builder.
sg_fx_basketAll major SGD currency pairs for a single month. If month is omitted, uses the most recent month.
sg_fx_historyMonthly SGD rate time series for a single currency. Returns oldest-to-newest, trimmed to last N months.
sg_fx_rateMonthly SGD exchange rate for a given currency. Currency is matched as a substring against DataSeries (e.g. 'U S Dollar', 'Euro', 'Japanese Yen'). If month is omitted, returns the most recent month. Note the 'Per 100' note in the DataSeries label when present.
sg_gdp_historyTime series of YoY GDP growth for a single industry (substring match on DataSeries). Returns oldest-to-newest, trimmed to the last N quarters if quarters_back is given.
sg_gdp_industry_compareRank all industries by YoY growth for a given quarter (e.g. '2025Q4', '20254Q'). Returns every industry row with its growth value, sorted descending.
sg_gdp_latestGet the most recent YoY GDP growth rate for a matching industry (substring match on DataSeries, e.g. 'Manufacturing'). Omit industry to get the headline 'GDP At Constant 2015 Market Prices'.
sg_hawker_searchSearch for hawker centres by name or location (substring match). Returns name, location, type, stall counts.
sg_hawker_statsSummary statistics of all hawker centres — total count, breakdown by type, total stalls nationwide.
sg_hdb_carpark_lookupExact-match lookup for a single HDB carpark by car_park_no (e.g. 'BJ55', 'ACB'). Returns all reference columns for that carpark.
sg_hdb_carparks_by_addressSubstring search over HDB carpark addresses. Useful for 'find all carparks in Tampines' or 'carparks on Ang Mo Kio Ave 3'.
sg_hdb_carparks_by_typeFilter HDB carparks by type (e.g. 'MULTI-STOREY CAR PARK', 'SURFACE CAR PARK'), night_parking availability, or free_parking text (e.g. 'SUN & PH FR 7AM-10.30PM').
sg_hdb_resale_searchSearch HDB resale flat transactions (Jan 2017+). Filters: town, flat_type (e.g. '4 ROOM'), month range (YYYY-MM), price range. Returns paginated transaction rows.
sg_hdb_resale_statsAggregate HDB resale statistics (count, median, mean, min, max resale price) for a filtered slice. Filters: town, flat_type, month range.
sg_household_incomeSingapore resident household income from work. Returns the median monthly household income (or, with `indicator`, a chosen series such as average income, a specific decile, or the Gini coefficient). Annual, from DOS via SingStat (M810871).
sg_iras_collectionLook up IRAS tax collection by tax_type (substring match) and/or financial_year. If both omitted, returns the most recent year's full breakdown.
sg_iras_collection_historyAnnual tax collection time series for a single tax_type (substring match). Oldest-to-newest, trimmed to last N years.
sg_iras_tax_mixPercentage breakdown of IRAS total collection by tax type for a given financial_year.
sg_labour_forceSingapore resident labour force participation rate (LFPR), aged 15+. Defaults to the overall total rate; use `indicator` for an age band (e.g. '25 - 29 Years'). Annual (end-June), from MOM/DOS via SingStat (M182201).
sg_list_datasetsList all available curated Singapore datasets with their IDs, names, and agencies. Use this to discover dataset IDs for sg_cross_dataset or other tools.
sg_marriagesSingapore marriage statistics. Defaults to total marriages; use `indicator` for other series (e.g. 'First Marriages', 'Resident Marriages', 'Proportion Of Inter-Ethnic Marriages'). Annual, from DOS via SingStat (M830101).
sg_median_income_historyAnnual median income time series for a given sex ('Males', 'Females', or 'Total'). Returns oldest-to-newest, trimmed to last N years if years_back is given.
sg_median_income_lookupLook up median monthly income by year and/or sex. If year is omitted, returns the most recent year. sex values: 'Males', 'Females', 'Total'.
sg_moe_school_by_nameExact-match lookup for a single MOE school by full school_name. Falls back to the closest substring match if no exact hit.
sg_moe_schools_nearFind schools whose postal_code shares a prefix with the supplied postal_code. Default prefix length is 2 (Singapore postal sector). Not a true geographic radius — use this as a cheap proximity proxy.
sg_moe_search_schoolsSearch MOE-registered schools by name substring, mainlevel (PRIMARY/SECONDARY/MIXED LEVELS/JUNIOR COLLEGE/CENTRALISED INSTITUTE), zone (NORTH/SOUTH/EAST/WEST), SAP status, and Gifted Education Programme status.
sg_net_formationsGet net business growth (formations minus cessations) by month for a specific industry or all industries. Positive = more companies created than closed. Data from ACRA via SingStat.
sg_population_historyAnnual time series for a single population indicator (e.g. 'Total Population'). Returns oldest-to-newest, optionally trimmed to last N years.
sg_population_latestGet the most recent annual population figure for a matching indicator (substring match, e.g. 'Total Population', 'Median Age', 'Dependency Ratio'). Omit indicator to get all.
sg_psiLive NEA Pollutant Standards Index (PSI) for Singapore. Returns the national headline 24-hour PSI (the highest regional reading, per NEA convention) plus a per-region breakdown (north/south/east/west/central) of 24-hour PSI and 24-hour PM2.5 concentration. Updated hourly.
sg_rainfallLive 5-minute rainfall readings (mm) from NEA stations across Singapore. Returns every station's current reading plus the subset of stations that are actually reporting rain (value > 0). Updated every ~5 minutes.
sg_retail_sales_historyMonthly retail sales index time series for a sub-industry. Defaults to 'Total'. Returns oldest-to-newest, trimmed to last N months if given.
sg_retail_sales_latestMost recent retail sales index value for a matching sub-industry (substring match on DataSeries). Defaults to 'Total'.
sg_retail_sales_yoyYear-on-year percent change in retail sales index for a sub-industry in a given month (defaults to most recent month).
sg_search_datasetsSearch data.gov.sg for datasets matching a free-text keyword query. Returns dataset IDs and high-level metadata (name, agency, format, row count, last updated). Use this to discover datasets when no curated sg_* tool exists, then pass the datasetId into sg_dataset_schema or sg_dataset_query. Supports optional agency and format filters.
sg_tool_catalogList all sgdata tools with descriptions and full JSON input schemas, on demand. Optional case-insensitive substring filter on tool name or description (e.g. 'acra', 'hdb', 'carpark'). Call this FIRST when you need Singapore government data — then invoke the tool you found via sg_dispatch.
sg_tourism_historyTourism receipts time series for a specific component (e.g. 'Shopping', 'Accommodation', 'Food & Beverage'). Returns annual data oldest-to-newest.
sg_tourism_latestGet the most recent year's tourism receipts breakdown by component (shopping, accommodation, F&B, transport, etc.).
sg_tradeSingapore total merchandise trade (imports + exports) by commodity section, monthly, in thousand dollars. Defaults to total trade; use `segment` to pick a sub-series: 'total' | 'oil' | 'non-oil' | 'petroleum' | 'oil-bunkers'. From EnterpriseSG/DOS via SingStat (M451001). Monthly series are fetched per-segment to avoid the API's cell limit.
sg_unemployment_historyUnemployment rate time series for a given residential status (e.g. 'Overall', 'Residents', 'Citizens'). Returns quarterly data oldest-to-newest, optionally trimmed to last N quarters.
sg_unemployment_latestGet the most recent quarterly unemployment rates for Singapore. Returns seasonally adjusted and unadjusted rates by residential status (overall, residents, citizens).
sg_ura_new_sale_pipelineNew sale volume only, quarter-by-quarter, for pipeline analysis. Returns summed units per quarter across all sale_status values.
sg_ura_private_txn_historyURA private residential transaction volumes over time, optionally filtered to a single type_of_sale ('New Sale', 'Sub-Sale', 'Resale'). Oldest-to-newest, optionally trimmed.
sg_ura_private_txn_latestLatest quarter of URA private residential transactions, broken down by type_of_sale and sale_status.
sg_visitors_historyMonthly visitor arrivals time series for a source country. Defaults to 'Total International' if no country given. Returns oldest-to-newest, trimmed to last N months.
sg_visitors_latestMost recent monthly visitor arrivals for a matching source country (substring match). Defaults to 'Total International Visitor Arrivals'.
sg_visitors_top_sourcesTop N source countries by visitor arrivals for a given month. If month is omitted, uses the most recent month. Excludes the 'Total' row.
sg_visualizeGenerate an ASCII sparkline chart and summary statistics from a numeric time series. Pass labels (e.g. dates) and corresponding values. Returns sparkline, min/max/mean/latest, period-over-period change, and chart-ready JSON for frontend rendering.
sg_wagesAverage monthly nominal earnings per employee in Singapore (overall economy). Annual time series, from MOM/DOS via SingStat (M182941).
sg_weather_forecastNEA weather forecast for Singapore. By default returns the 2-hour nowcast per area (47 named areas, e.g. 'Ang Mo Kio', 'Bedok'). Pass horizon='24h' for the 24-hour outlook (general day/night summary, temperature & humidity ranges, wind, and per-region time-block forecasts). Optional `area` substring filter applies to the 2-hour forecast.
Signals
- Stars
- 0
- Forks
- 1
- Open issues
- 0
- Weekly downloads
- 38
- Last commit
- Sep 4, 2026 (1 month ago)
- Last release
- Jul 18, 2026 (3 months ago)
- Last package publish
- Sep 1, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.sypherin/sgdata-mcp- Version
- 0.5.2
- Auth
- No auth
- Packages
- npm @altronis/sgdata-mcp
- License
- MIT
- Repository
- github.com/sypherin/sgdata-mcp
- Website
- altronis.sg/blog/sgdata-mcp
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
More from sypherin
- 0.589score
TokenMark
sypherin
Measured local-LLM speeds and model picks for Strix Halo, DGX Spark, Mac and GPU cards.
ConnectorAFreshness: ALocal↓ 43/wkClaude Code +5 - 0.577score
Altronis MCP
sypherin
Ask the Altronis AI consultant, estimate AI cost (cloud vs own box), SG AI events, news.
ConnectorAFreshness: ALocal↓ 32/wkClaude Code +5 - 0.427score
gsd-help
sypherin
Execution-first workflow for GSD command `help`.
SkillDFreshness: D★ 1Claude Code +9 - 0.427score
gsd-list-phase-assumptions
sypherin
Execution-first workflow for GSD command `list-phase-assumptions`.
SkillDFreshness: D★ 1Claude Code +9 - 0.427score
gsd-plan-milestone-gaps
sypherin
Execution-first workflow for GSD command `plan-milestone-gaps`.
SkillDFreshness: D★ 1Claude Code +9 - 0.427score
gsd-progress
sypherin
Execution-first workflow for GSD command `progress`.
SkillDFreshness: D★ 1Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get Sgdata MCP running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
Sgdata MCP. Agent Mart. https://agentmart.dev/connectors/sypherin-sgdata-mcp (last updated 2026-10-24)