Skip to main content
Glama
Bigred97

ausdata-mcp

README.md
# ausdata-mcp

mcp-name: io.ausdata/ausdata-mcp

MCP server for the Australian public data API. Plug into Claude Code, Cursor, Windsurf, or any other MCP client and get one-call access to 100+ curated Australian government datasets across 9 sources.

## Install

Add to your MCP client config:

```json
{
  "mcpServers": {
    "ausdata": {
      "command": "npx",
      "args": ["-y", "ausdata-mcp"],
      "env": {
        "AUSDATA_API_KEY": "ak_xxx"
      }
    }
  }
}
```

Get a free API key at https://ausdata.io (500 calls/month on the free tier, no credit card).

## Tools exposed

| Tool | What it does |
|---|---|
| `search_datasets` | Plain-English search across the catalog. "unemployment NSW" → dataset IDs to call. |
| `list_datasets` | List curated datasets for a given source (abs, rba, ato, …). |
| `describe_dataset` | Schema + filter dictionary for one dataset before you `get_data` it. |
| `get_data` | Generic accessor by `source` + `dataset_id`. Search first, fetch second. |
| `releases` | Upcoming + recent statistical release calendar across all sources. |
| `real_wages` | Wage Price Index minus CPI, quarterly. The Greg Jericho chart in one call. |
| `real_cash_rate` | RBA cash rate minus CPI — the real policy stance. |
| `economic_dashboard` | Cash rate, CPI, unemployment, wage growth, lending — in one response. |
| `cost_of_living` | ABS Selected Living Cost Indexes by household type. |
| `youth_unemployment` | 15-24 unemployment rate, state-level. |
| `trade_balance` | Goods + services trade balance, monthly. |
| `housing_affordability` | House prices vs household disposable income, indexed. |
| `gender_pay_context` | WGEA gender pay gap by industry / employer-size context. |
| `energy_snapshot` | AEMO NEM dispatch + price snapshot, current trading interval. |
| `health` | API reachability check. Useful for debugging. |

## Example agent prompts

Once the MCP is connected, try asking your agent:

- *"What's the latest RBA cash rate and how does it compare to a year ago?"*
- *"Show me the real wages trend since 2019."*
- *"Search for AU housing approval data and pull the last 2 years for NSW."*

## Configuration

| Env var | Purpose | Default |
|---|---|---|
| `AUSDATA_API_KEY` | Bearer token | required |
| `AUSDATA_API_URL` | Override the API base URL | `https://api.ausdata.io` |
| `AUSDATA_TIMEOUT` | Per-request timeout (ms) | `30000` |

## Errors

Every tool returns MCP-formatted errors that AI agents can read and recover from:

- Missing key → `Set AUSDATA_API_KEY in your MCP config. Get a free key at https://ausdata.io`
- 401 → reauth hint
- 403 → upgrade hint
- 429 → retry-after seconds
- 5xx → "try again, status page is at..."

## The ausdata.io ecosystem
Part of a family of MCP servers + a hosted API for Australian public data:
- **Sister MCPs** (free, MIT): [abs](https://github.com/Bigred97/abs-mcp) · [rba](https://github.com/Bigred97/rba-mcp) · [ato](https://github.com/Bigred97/ato-mcp) · [apra](https://github.com/Bigred97/apra-mcp) · [aihw](https://github.com/Bigred97/aihw-mcp) · [asic](https://github.com/Bigred97/asic-mcp) · [aemo](https://github.com/Bigred97/aemo-mcp) · [au-weather](https://github.com/Bigred97/au-weather-mcp) · [wgea](https://github.com/Bigred97/wgea-mcp)
- **Hosted API + cross-source endpoints**: [ausdata.io](https://ausdata.io)
- **Python SDK**: `pip install ausdataio` · **Node MCP**: `npx -y ausdata-mcp`

## License

MIT — see [LICENSE](LICENSE).

This client is independent of the upstream data; each response carries attribution metadata for the underlying ABS / RBA / APRA / AIHW / etc. source under their respective CC-BY licenses.

## Development

```bash
npm install
npm run build
npm test
npm run lint
```

Source lives in `src/`. Tool definitions are in `src/tools/`. The HTTP routing layer is `src/client.ts` — it does NOT parse responses, that's the API server's job.

---

Built by [Harrison Vass](https://github.com/Bigred97) ([LinkedIn](https://www.linkedin.com/in/harrisonvass)). I verify automated systems: agents draft the code, I direct, review and answer for what ships.

TDQS

A3.9/5.0

Scored across 28 tools

Disambiguation4/5

Most tools have clearly distinct purposes, especially the real_* series targeting different rates. However, releases and release_pulse overlap heavily, and cost_of_living vs regional_cost_of_living could cause confusion. Overall, the boundaries are fairly clear.

Naming Consistency3/5

There is a mix of verb_noun patterns (search_datasets, describe_dataset) and noun phrases (real_wages, economic_dashboard). While all names are readable and snake_case, the lack of a consistent verb_noun style across the whole set makes it feel inconsistent.

Tool Count2/5

With 28 tools, the set is too heavy. Many tools are narrow wrappers (e.g., real_cash_rate, real_mortgage_rate, real_savings_rate) that could be consolidated into a single parameterized tool. This exceeds the typical well-scoped range and feels bloated.

Completeness4/5

The server offers broad coverage of Australian economic and social data, including discovery (search, list, describe, get) and numerous snapshot tools. Minor gaps exist (e.g., national GDP, specific demographic datasets), but they are not critical for the apparent scope.

Maintenance

ActivitySlowing
ResponsivenessNo issues