Singapore Data
Singapore Department of Statistics · SingStat Table Builder

Every official Singapore statistic, in one place.

This site mirrors the complete catalogue of the SingStat Table Builder and reads it live through the official SingStat MCP server. Browse the whole catalogue, drill into any table's series, and pull the current figures straight from the source.

data tables, every one of them listed below

Key indicators

The latest published value for each headline series, with the change against the previous period and a 24-point trend. Figures as returned by SingStat; the change is calculated here.

Headline series

Twelve of the most-used tables, plotted from the data SingStat returns. Every chart has a table view with the same numbers — hover for exact values, or switch to the table.

All tables

The complete SingStat catalogue. Search titles and resource IDs, filter by theme, subject, frequency or publishing agency, then open any table for its full series list and live data.

ID Table Frequency Coverage Series Updated

Browse by theme

All 6 themes, 52 subjects and 205 topics in the catalogue. Pick a topic to filter the table list above.

Publishing agencies

Every public sector body that contributes tables to the SingStat Table Builder, with how many each publishes. Click one to filter the table list.

The SingStat MCP server

This site is built on the official Model Context Protocol server published by the Singapore Department of Statistics. It needs no API key, and any MCP-capable AI client can connect to it.

Endpoint

https://chatwithsandra.singstat.gov.sg/mcp

Streamable HTTP · no authentication · server DOSTableBuilderMCP v3.2.4 · protocol 2025-06-18.

Claude Code

# add the remote server
claude mcp add singstat-mcp \
  --transport http \
  https://chatwithsandra.singstat.gov.sg/mcp

# confirm it connected
claude mcp list

IDEs & agent frameworks

{
  "mcpServers": {
    "singstat-mcp": {
      "type": "http",
      "url": "https://chatwithsandra.singstat.gov.sg/mcp"
    }
  }
}

Drop into ~/.claude.json, .mcp.json, or your IDE's MCP setup screen. In chat clients, add it under Settings → Connectors as a custom connector.

The three tools — call them in this order

1

get_relevant_table_names

Searches the catalogue and returns matching tables grouped by title, with a resource ID per frequency/seasonality variant.

ParameterTypeRequired
query_textstringyes
2

get_table_metadata

Structural metadata for one table. Always call this before fetching data — it supplies the seriesNo row numbers and the valid period range that the data call filters on.

ParameterTypeRequired
resource_idstringyes
3

get_table_data

Returns the data points. Capped at 3,000 rows per response — narrow with the series and time filters rather than paging blindly.

ParameterTypeRequired
resource_idstringyes
seriesNoORrowNostring · nullno
timeFilter[from, to] · nullno
offsetstring · nullno

Python

from fastmcp import Client
mcp = Client("https://chatwithsandra.singstat.gov.sg/mcp")

async with mcp:
    tables = await mcp.call_tool(
        'get_relevant_table_names', {'query_text': 'GDP'})
    meta = await mcp.call_tool(
        'get_table_metadata', {'resource_id': 'M015631'})
    data = await mcp.call_tool('get_table_data', {
        'resource_id': 'M015631',
        'seriesNoORrowNo': '1,1.1,1.2',
        'timeFilter': ('2024-01', '2026-01')})
Attribution, as required by DOS. Only the values returned directly by the service originate from the Department of Statistics. Anything derived from them — the period-on-period changes in the tiles above, chart scaling, or any commentary — is calculated here and must not be attributed to DOS or SANDRA. Data presentation and analysis generated by AI chatbots are the output of those chatbots, not of the Government.