abs
Enables an MCP client to discover ABS datasets, inspect SDMX dimension order and codelists, and run bounded statistical-data queries against the Australian Bureau of Statistics Data API.
README
MCP Server for Australian Bureau of Statistics data
A maintained, read-only Model Context Protocol server for the public Australian Bureau of Statistics (ABS) Data API.
It lets an MCP client discover ABS datasets, inspect SDMX dimension order and codelists, and run bounded statistical-data queries. No ABS API key is required.
[!IMPORTANT] This is an independent community project. It is not operated by or affiliated with the Australian Bureau of Statistics.
Why this server exists
The original community project seansoreilly/mcp-server-abs targets an ABS hostname and route retired in November 2024 and uses a pre-1.0 MCP SDK. This project is a clean-room replacement built against:
- the current
https://data.api.abs.gov.au/rest/API; - the stable v2 TypeScript MCP SDK;
- the current SDMX structure and data response shapes.
No source code was copied from the older implementation.
Tools
| Tool | Purpose |
|---|---|
search_dataflows |
Search and page through ABS datasets without placing the full catalogue in context. |
get_dataflow_structure |
Return ordered data-key dimensions, separate time dimensions, attributes, and codelists. |
get_codelist |
Search and page through valid codes for a dimension. |
query_data |
Query observations as CSV, labelled CSV, or SDMX-JSON with time, size, and row bounds. |
All four tools declare readOnlyHint: true, destructiveHint: false, and openWorldHint: true.
Requirements
- Node.js 22 or 24
- An MCP client that supports local stdio servers
Connect from Codex
Install directly from GitHub:
codex mcp add abs -- npx -y github:RonanLION/mcp-server-abs
Then start a new Codex session and use /mcp to confirm that abs exposes four tools. The equivalent configuration is:
[mcp_servers.abs]
command = "npx"
args = ["-y", "github:RonanLION/mcp-server-abs"]
startup_timeout_sec = 30
tool_timeout_sec = 30
Codex stores this in ~/.codex/config.toml. See the official Codex MCP documentation for other supported transports and settings.
Connect from another stdio MCP client
Use this command and argument list:
{
"mcpServers": {
"abs": {
"command": "npx",
"args": ["-y", "github:RonanLION/mcp-server-abs"]
}
}
}
For a local checkout instead:
git clone https://github.com/RonanLION/mcp-server-abs.git
cd mcp-server-abs
npm ci
npm run build
Configure the client to run node /absolute/path/to/mcp-server-abs/dist/index.js.
Recommended workflow
- Call
search_dataflowswith a topic such asconsumer price. - Call
get_dataflow_structurewith the chosen dataflow ID. - Call
get_codelistfor each dimension whose valid codes you need. - Build the case-sensitive SDMX key in the returned dimension order and call
query_data.
Example input for the small, stable ALC dataset:
{
"dataflow_id": "ALC",
"data_key": "1.2.1.4.A",
"start_period": "2008",
"end_period": "2008",
"format": "csv_with_labels"
}
Dimension values are separated by dots, + selects multiple codes in one dimension, and a blank position is a wildcard. TIME_PERIOD is returned separately and is not part of the data key. The whole key all (or a key with every position blank) selects every series.
Safety and reliability defaults
- Requests are restricted to the fixed HTTPS ABS API origin; redirects are rejected.
- Only HTTP
GETis used. The server cannot modify ABS data. - Requests time out before the ABS gateway's 30-second limit.
- Upstream responses are capped below the ABS 10 MB gateway limit.
- Query output is capped by rows and characters before entering model context.
- A targeted query with no time bound defaults to
lastNObservations=1. - An unbounded all-series query is refused unless it includes an explicit period/observation bound or
allow_large_query=true;updated_afteralone is not treated as a size bound. - The known-broken ABS combination of
updated_afterwith plaincsvis rejected with guidance to usecsv_with_labelsorjson. - Metadata is cached in memory for 15 minutes, up to 128 entries. Observation data is not cached.
- Transient
429,502,503, and504responses receive one bounded retry.
The ABS Data API remains labelled Beta. ABS states that availability is not guaranteed, the service may change, and API data may lag the ABS website.
Configuration
Optional environment variables:
| Variable | Default | Allowed range |
|---|---|---|
ABS_MCP_TIMEOUT_MS |
25000 |
1000–29000 |
ABS_MCP_MAX_RESPONSE_BYTES |
8388608 |
65536–10485760 |
ABS_MCP_CACHE_TTL_MS |
900000 |
0–86400000 |
ABS_MCP_CACHE_MAX_ENTRIES |
128 |
1–1000 |
Invalid values are ignored with a message on stderr. The MCP protocol stream remains exclusively on stdout.
Development
npm ci
npm run check
npm run test:live
npm run check runs formatting, lint, type checking, unit/protocol tests, a production build, and a spawned stdio handshake. npm run test:live exercises dataflow discovery, schema and codelist parsing, and one small read-only data query against the live ABS API.
To inspect tools manually:
npx @modelcontextprotocol/inspector node dist/index.js
License
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。