
seansoreilly/mcp-server-abs
Developer toolsこのページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る
MCP server for Australian Bureau of Statistics
概要
An MCP (Model Context Protocol) server that provides access to the Australian Bureau of Statistics (ABS) Data API. This server allows AI assistants to query and analyze ABS statistical data through the SDMX-ML API. - — fetches an ABS dataset by id (e.g. C21_G01_LGA) and returns the SDMX-JSON payload as both text and structuredContent, with a resource_link to the upstream URL. Declares a title, read-only annotations, and an outputSchema. Built on MCP protocol revision 2025-11-25 (SDK v2, legacy era) over stdio. ABSApiClient and DataFlowService implement dataset discovery, multi-format support (JSON/CSV/XML), and on-disk caching with a configurable refresh interval. They are fully tested but , so no tool surfaces them yet — a list_dataflows tool is the natural next step. Treat the section below as a description of the service layer, not of the tool surface. The ABS Data API is open — the server needs . All logging goes to , never stdout — stdout carries the MCP JSON-RPC channel.
README
以下は原文 README の抜粋です。原文を見る。
ABS MCP Server
An MCP (Model Context Protocol) server that provides access to the Australian Bureau of Statistics (ABS) Data API. This server allows AI assistants to query and analyze ABS statistical data through the SDMX-ML API.
Features
The server currently exposes one tool:
query_dataset— fetches an ABS dataset by id (e.g.C21_G01_LGA) and returns the SDMX-JSON payload as both text andstructuredContent, with aresource_linkto the upstream URL. Declares atitle, read-only annotations, and anoutputSchema.
Built on MCP protocol revision 2025-11-25 (SDK v2, legacy era) over stdio.
Not yet exposed
ABSApiClient and DataFlowService implement dataset discovery, multi-format
support (JSON/CSV/XML), and on-disk caching with a configurable refresh interval.
They are fully tested but not currently wired into the server, so no tool
surfaces them yet — a list_dataflows tool is the natural next step. Treat the
section below as a description of the service layer, not of the tool surface.
Configuration
| Variable | Default | Purpose |
|---|---|---|
ABS_API_BASE |
https://data.api.abs.gov.au |
ABS API origin; override to point at a stub |
ABS_LOG_LEVEL |
debug |
Winston log level |
ABS_LOG_DIR |
/logs |
Directory for log files |
ABS_CACHE_FILE |
/../cache/dataflows.json |
Where the dataflow cache is written |
ABS_CACHE_REFRESH_HOURS |
24 |
How long a cached dataflow list stays fresh |
ABS_REQUEST_TIMEOUT_MS |
30000 |
Request timeout for ABS API calls |
The ABS Data API is open — the server needs no API key or credentials.
All logging goes to stderr, never stdout — stdout carries the MCP JSON-RPC channel.
Installation
npm install
Docker
A container image is published to GitHub Container Registry on every push to
main, tagged latest, main, sha-, and — for v* tags — the
semver version.
docker pull ghcr.io/seansoreilly/mcp-server-abs:latest
docker run -i --rm ghcr.io/seansoreilly/mcp-server-abs:latest
-i is required: the server speaks MCP over stdio, so stdin and stdout are the
transport. There is no port to publish and no HTTP endpoint to health-check.
The image runs as the unprivileged node user and writes its logs and dataflow
cache to /data. Mount a volume there to keep the cache across restarts:
docker run -i --rm -v abs-mcp-data:/data ghcr.io/seansoreilly/mcp-server-abs:latest
Every variable in Configuration can be passed with -e; the
image presets ABS_CACHE_FILE=/data/dataflows.json and ABS_LOG_DIR=/data/logs.
docker run -i --rm -e ABS_LOG_LEVEL=info -e ABS_CACHE_REFRESH_HOURS=6 \
ghcr.io/seansoreilly/mcp-server-abs:latest
To build locally instead of pulling:
docker build -t abs-mcp-server .
./scripts/smoke-test.sh abs-mcp-server # drives an MCP initialize over stdio
As a sidecar
インストール
docker run -i --rm -v abs-mcp-data:/data ghcr.io/seansoreilly/mcp-server-abs:latest設定
{
"mcpServers": {
"abs": {
"command": "node",
"args": ["/absolute/path/to/mcp-server-abs/build/index.js"]
}
}
}