
Sgdata Mcp
io.github.sypherinPublished by GitHub account sypherinv0.5.2Updated Oct 27, 2026
Singapore government data for AI agents: ACRA, HDB, COE, URA, SingStat, MAS, IRAS. 87 tools.
Overview
Local MCP server giving assistants 87 tools to query Singapore government open data — corporate registry, housing, prices, labour, health and more.
- What you can do
- Search and look up ACRA corporate entities and business formations/cessations
- Query HDB resale prices, carparks, URA private property transactions and COE bidding results
- Retrieve economic indicators: GDP, CPI, unemployment, income, employment, retail sales, MAS FX rates, IRAS tax and electricity
- Pull population, births, crime, tourism, disease, hawker centre, school and childcare data, plus live feeds for air quality, weather, rainfall, carpark availability and dengue clusters
- Discover and query any data.gov.sg dataset generically, with schema lookup and search
- Run natural-language questions, cross-dataset comparisons and ASCII sparkline visualizations; a catalog and dispatch pair lets…
- When to use it
- Useful when you need Singapore-specific public statistics or registry lookups inside an assistant session — company searches by UEN or industry, property and COE price trends, or economic and demographic indicators — without writing API calls yourself.
- Requirements
- Runs as a local stdio process, typically launched with npx from the npm package, so Node.js is needed. No API keys or accounts. Network access to data.gov.sg is required; results are cached in a local SQLite file under the user's home directory, whose location can be overridden with SGDATA_MCP_CACHE_DIR.
Installation
In SourceWeft
- Open Sgdata Mcp in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
@altronis/sgdata-mcp
A Singapore government data MCP server. 87 tools — 24 curated datasets + 7 SingStat tables + 6 live real-time feeds, CLI mode, data visualization, cross-dataset queries, natural language queries. Covering ACRA + HDB + URA + COE + CPI + GDP + employment + IRAS + MAS FX + MOE + ECDA + tourism + retail + population + crime + health + energy + hawkers + air quality + weather + carparks + live dengue. No API keys. Runs anywhere MCP runs. Full write-up: https://altronis.sg/blog/sgdata-mcp
[npm version] [license: MIT] [node] [MCP]
@altronis/sgdata-mcp is an MCP server that
lets Claude, Cursor, Continue, or any other MCP-compatible client query
Singapore government open data directly from data.gov.sg — corporate registry,
real estate, labour, prices, public services, capital flows, crime, health,
demographics, energy, and more.
It runs as a local stdio process on your machine. No hosted backend, no API
keys. Small curated datasets cache locally at ~/.sgdata-mcp/sgdata.sqlite;
large datasets (ACRA, HDB resale) and real-time feeds query data.gov.sg
server-side so they never download a whole dataset onto your disk.
v0.5.5: two helper tools for small-context clients. sg_tool_catalog
lists the tools (filter by keyword to get their input schemas) and
sg_dispatch calls any of them by name, so a client can expose just these two
instead of all 87 schemas. Dispatched calls are checked against the target
tool's schema, the same as a direct call.
v0.5.0: 13 new tools + a smaller footprint. Real-time feeds — sg_psi
(air quality), sg_weather_forecast, sg_air_temperature, sg_rainfall,
sg_carpark_availability, and sg_dengue_clusters (live NEA clusters — current
dengue, vs the frozen weekly-bulletin feed). SingStat tables —
sg_household_income, sg_wages, sg_deaths, sg_marriages, sg_divorces,
sg_trade, sg_labour_force. sg_search_datasets now actually searches
(data.gov.sg's q param is a no-op upstream, so it filters a cached catalog
locally). ACRA + HDB-resale tools query server-side (datastore_search)
instead of ingesting the full 56 MB / 23 MB datasets — no more multi-GB local
cache. FX tools fixed (upstream metadata endpoint 404s; they now read live data
via datastore_search).
⚠️
sg_acra_formations_by_ssicis a heavy tool. ACRA's SSIC+year filter can't be pushed server-side, so it crawls 27 shards with rate-limit backoff — expect ~1–3 minutes, and for older years the count is a lower bound (bounded: true). For fast formation counts by SSIC use the SingStatsg_formations_history/sg_formations_compare/sg_formations_monthlytools instead.
v0.4.1: sg_dataset_query no longer hangs on very large datasets
(size-gated server-side paging via datastore_search + a 60s ingest guard);
sg_fx_rate / sg_fx_history now accept ISO currency codes (USD, GBP,
JPY, EUR, …); sg_tourism_latest now emits data_freshness (its upstream
stops at 2014); and the _history tools return an available label list on a
no-match so callers can self-correct.
v0.4.0 highlights: data_freshness metadata block emitted on every
_latest tool — last_period, last_record_date, age_days, and a
categorical level of fresh / ok / stale / frozen so agents can
detect when an upstream data.gov.sg feed has gone silent. Fixes silent
stale-data on sg_disease_latest (MOH stopped publishing the Weekly
Infectious Disease Bulletin via data.gov.sg around epi week 2022-W52).
v0.3.2: Monthly business formations + cessations + net growth tools via SingStat Table Builder. Track month-by-month company creation vs closure for any SSIC industry. 74 tools total.
v0.3.1: Annual formation counts by industry via SingStat Table Builder.
v0.3.0: 8 new datasets, CLI mode, ASCII sparkline visualization, cross-dataset correlation queries, natural language query routing.
Data freshness
@altronis/sgdata-mcp is only as fresh as data.gov.sg. Some datasets are
updated weekly (COE bidding, CPI), some monthly (unemployment, CPI sub-items),
some quarterly (URA private property), and some have effectively stopped
updating. Starting in v0.4.0 every _latest tool returns a data_freshness
block so you can detect drift programmatically:
Known frozen datasets (as of v0.4.1):
If you find another upstream feed has gone silent, please open an issue — we'll add it to this table and surface the warning in the tool description.
What you can ask Claude
Drop this server into Claude Desktop and you immediately unlock questions like:
- "Find all AI/ML companies (SSIC 62019) incorporated in Singapore in 2025."
- "What's the median resale price of 4-room HDB flats in Punggol over the last 6 months?"
- "What is the latest COE Category A premium, and how has it trended over 12 months?"
- "How many dengue cases were reported this week?"
- "What's Singapore's unemployment rate? Show me the trend."
- "Compare GDP growth vs crime rates over the last 5 years."
- "How many scam cases were recorded in 2024?"
- "What is Singapore's population and how fast is it growing?"
- "How much electricity did Singapore generate last month?"
- "Are birth rates declining? Show me the last 12 months."
- "What were Singapore's tourism receipts by component?"
- "Find hawker centres near Tampines."
- "Which CPI categories are running hottest vs headline inflation?"
- "Look up DBS Bank by UEN 196800306E."
Your model picks the right tool, fills in the filters, and returns structured rows. You never write a URL.
Quick start
Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json
(macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):
Restart Claude Desktop. The 74 sg_* tools appear in the MCP tools menu.
Cursor
Add to ~/.cursor/mcp.json:
Claude Code
CLI mode (new in v0.3.0)
Query Singapore data directly from the terminal — no MCP client needed:
Standalone (kick the tyres)
What's in the box
Datasets (24)
Plus 3 generic fallback tools, 1 visualization tool, 2 cross-dataset tools, and 1 natural language query tool: 74 tools. The 6 real-time feeds and 7 SingStat tables from v0.5.0 bring it to 87 data tools, plus the 2 helpers from v0.5.5.
New in v0.3.0
Data visualization — sg_visualize
Generate ASCII sparkline charts and summary statistics from any time series. Returns sparklines, min/max/mean/latest, period-over-period change, and chart-ready JSON for frontend rendering.
Cross-dataset queries — sg_cross_dataset
Compare any two datasets side-by-side over time. Automatically aligns different time granularities (monthly, quarterly, annual):
Returns aligned rows with both values for correlation analysis.
Natural language queries — sg_ask
Ask questions in plain English — the tool routes to the right dataset automatically:
CLI mode — no MCP client needed
Query data directly from your terminal:
Tools (87 + 2 helpers)
The tables below list 74 of them; the 13 added in v0.5.0 are listed at the top.
Meta tools
Generic tools — any data.gov.sg dataset
Curated dataset tools (67)
ACRA (3): sg_acra_search_entities, sg_acra_get_entity, sg_acra_formations_by_ssic
HDB Resale (2): sg_hdb_resale_search, sg_hdb_resale_stats
COE (3): sg_coe_latest, sg_coe_history, sg_coe_demand_supply
MOE Schools (3): sg_moe_search_schools, sg_moe_school_by_name, sg_moe_schools_near
HDB Carparks (3): sg_hdb_carpark_lookup, sg_hdb_carparks_by_address, sg_hdb_carparks_by_type
GDP (3): sg_gdp_latest, sg_gdp_history, sg_gdp_industry_compare
CPI (3): sg_cpi_latest, sg_cpi_history, sg_cpi_yoy
Income (2): sg_median_income_lookup, sg_median_income_history
Employment (3): sg_employment_by_sector, sg_employment_sector_history, sg_employment_growth
URA Property (3): sg_ura_private_txn_latest, sg_ura_private_txn_history, sg_ura_new_sale_pipeline
Visitor Arrivals (3): sg_visitors_latest, sg_visitors_history, sg_visitors_top_sources
Retail Sales (3): sg_retail_sales_latest, sg_retail_sales_history, sg_retail_sales_yoy
MAS FX (3): sg_fx_rate, sg_fx_history, sg_fx_basket
IRAS Tax (3): sg_iras_collection, sg_iras_collection_history, sg_iras_tax_mix
ECDA Childcare (3): sg_ecda_search_centres, sg_ecda_centres_near, sg_ecda_vacancy_summary
Unemployment (2): sg_unemployment_latest, sg_unemployment_history
Population (2): sg_population_latest, sg_population_history
Disease/Health (3): sg_disease_latest, sg_disease_trend, sg_disease_list
Electricity (2): sg_electricity_latest, sg_electricity_history
Births (2): sg_births_latest, sg_births_history
Crime (3): sg_crime_latest, sg_crime_history, sg_crime_compare
Tourism (2): sg_tourism_latest, sg_tourism_history
Hawker Centres (2): sg_hawker_search, sg_hawker_stats
Business Formations & Cessations (6): sg_formations_latest, sg_formations_history, sg_formations_compare, sg_formations_monthly, sg_cessations_monthly, sg_net_formations
Architecture
Caching policy
- Location.
~/.sgdata-mcp/sgdata.sqliteby default. - Override. Set
SGDATA_MCP_CACHE_DIR=/custom/path. - Refresh cadence. Per-dataset — daily for ECDA, weekly for HDB/COE/disease, monthly for ACRA/CPI/GDP/FX/retail/visitors/births/electricity, quarterly for MOE/URA/employment/unemployment, annually for IRAS/income/crime/population/tourism.
- Wipe.
rm ~/.sgdata-mcp/sgdata.sqlite— next query rebuilds. - Disk. ~480 MB with ACRA, under 20 MB without.
Comparison
Both packages complement each other — install both for the full picture.
Disclaimer
This tool fetches and caches data from data.gov.sg. While we take care to preserve data integrity during ingestion, you should independently verify any data before making decisions based on it.
- Data accuracy. All data originates from Singapore government agencies via data.gov.sg. We do not alter source values, but column mappings, wide-to-long transformations, and caching may introduce discrepancies. Always cross-check critical figures against the official source.
- Not professional advice. This tool is not a substitute for professional financial, legal, medical, or policy advice. GDP figures, crime statistics, disease counts, property prices, and other data are provided for informational purposes only.
- Staleness. Cached data may be hours to weeks behind the source depending
on the dataset's refresh window. Check
ingestedAttimestamps if freshness matters. - No warranty. This software is provided "as is" under the MIT licence, without warranty of any kind.
FAQ
Do I need an API key? No. data.gov.sg open datasets are public.
Where is the data stored? On your machine, in ~/.sgdata-mcp/sgdata.sqlite.
How often is data refreshed? Per-dataset, from daily to annually.
Is this production-ready? Yes. 87 tools, all tested against live data. File issues on GitHub if you hit anything sharp.
Can I add my own dataset? Yes — either use the generic tools for ad-hoc
queries, or open a PR adding a handler under src/datasets/.
License
MIT
Attribution
Contains information from data.gov.sg under the Singapore Open Data Licence v1.0.
Contributing
Found a bug? Want a dataset added? Open an issue or PR on GitHub.
Source: README.md at commit 5703b72
Tools
0Version history
1- v0.5.2LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts