io.ausdata/apra-mcp
Query APRA in plain English — bank capital, fund-level super, insurance stats.
Open source Open in the app JSON README (API)
About
Query APRA in plain English — bank capital, fund-level super, insurance stats.
Details
- Kind
- MCP servers
- Topic
- Finance & crypto
- Publisher
- io.ausdata
- Origin
- official
- Category
- ferramentas
- Transport
- local
- Version
- 0.8.27
- Open pull requests
- 3
- Last push
- 2026-09-06T11:40:59Z
- Repository state
- ativo
- Language
- Python
- License
- MIT
- Added
- 2026-08-29 03:01:36
- Updated
- 2026-08-29 03:01:36
- Origin id
io.ausdata/apra-mcp
README
# apra-mcp
mcp-name: io.ausdata/apra-mcp
[](https://pypi.org/project/apra-mcp/)
[](https://pypi.org/project/apra-mcp/)
[](https://github.com/Bigred97/apra-mcp/blob/main/LICENSE)
[](https://github.com/Bigred97/apra-mcp/actions/workflows/test.yml)
[](https://github.com/Bigred97/apra-mcp/actions/workflows/codeql.yml)
[](https://glama.ai/mcp/servers/Bigred97/apra-mcp)
**MCP server for Australian Prudential Regulation Authority statistics.** Plain-English access to per-bank capital ratios, fund-by-fund superannuation, and post-AASB17 life + general insurance — every prudentially-regulated entity in Australia, every quarter, from a single `uvx` command.
> **Hosted access?** For cross-source queries, webhooks, an always-on REST API, and a uniform response envelope across all 9 sources, see **[ausdata.io](https://ausdata.io)** — free tier available (500 calls/mo, no card).
```text
"What's CBA's CET1 ratio?"
"Which super fund has the most members?"
"Top 10 banks by total capital, latest quarter"
"Gross written premium for the general insurance industry, post-AASB17"
"Largest life insurance product groups by claims"
```
Sister to [abs-mcp](https://github.com/Bigred97/abs-mcp), [rba-mcp](https://github.com/Bigred97/rba-mcp), [ato-mcp](https://github.com/Bigred97/ato-mcp), and [au-weather-mcp](https://github.com/Bigred97/au-weather-mcp).
---
## Install
```bash
uvx --upgrade apra-mcp
```
### Claude Desktop
```json
{
"mcpServers": {
"apra": { "command": "uvx", "args": ["--upgrade", "apra-mcp"] }
}
}
```
### Claude Code
```bash
claude mcp add apra --command uvx --args -- --upgrade apra-mcp
```
---
## What it exposes
Six tools, all plain-English in, structured out:
| Tool | Purpose |
|---------------------|---------------------------------------------------------------|
| `search_datasets` | Fuzzy-search the curated catalog by keyword |
| `describe_dataset` | List a dataset's filterable dimensions and returnable measures |
| `get_data` | Query with `filters`, `measures`, period range, output format |
| `latest` | Last observation per measure (shortcut) |
| `top_n` | Rank rows by a measure, return top (or bottom) N |
| `list_curated` | Enumerate the curated dataset IDs |
Every response is the same shape — `dataset_id`, `dataset_name`, `query`, `period`, `unit`, `row_count`, `records`, `apra_url`, `download_url`, `framework` (insurance only), `attribution`, `stale` flag, `server_version` — across every curated dataset.
---
## Curated datasets (7 in v0.1)
| ID | What it is | Period |
|---------------------------------|-----------------------------------------------------------------------------|--------------------|
| `ADI_KEY_STATS` | Per-bank CET1 / Tier 1 / Total capital + RWA | latest quarter snapshot |
| `ADI_RISK_WEIGHTED_ASSETS` | Per-bank RWA by risk type (credit / operational / market / IRRBB) | latest quarter snapshot |
| `SUPER_FUND_LEVEL` | Fund-by-fund members, benefits, demographics | latest quarter snapshot |
| `INSURANCE_GENERAL` | Long-format general insurance (post-AASB17, ~24k rows × 10 quarters) | Sep 2023 → latest |
| `INSURANCE_GENERAL_HISTORICAL` | General insurance archive (pre-AASB17) | Dec 2002 → Jun 2023|
| `LIFE_INSURANCE` | Long-format life insurance (post-AASB17, ~10k rows × 10 quarters) | Sep 2023 → latest |
| `LIFE_INSURANCE_HISTORICAL` | Life insurance archive (pre-AASB17) | Jun 2008 → Jun 2023|
> **Snapshot vs time-series.** ADI and Super datasets ship the most recent
> reporting quarter only (APRA refreshes the file each quarter). The four
> insurance datasets are long time series in a single file. Pass
> `start_period` / `end_period` as ISO dates (`2025-12-31`), bare years
> (`2024`), year-months (`2025-06`), or quarter shorthand (`2025-Q4`) — all
> normalised internally.
> **Cross-source compatibility.** The `state_territory` filter on
> `INSURANCE_GENERAL` accepts canonical state codes (`"NSW"`), full names
> (`"New South Wales"`), case-insensitive variants (`"nsw"`), ISO 3166-2
> (`"AU-NSW"`), and 4-digit postcodes (`"2000"` → New South Wales). Powered
> by [`aus-identity`](https://pypi.org/project/aus-identity/) — the same
> input format works across abs-mcp, ato-mcp, apra-mcp, aihw-mcp, and
> asic-mcp.
---
## Reliability — 3-tier URL resolution
APRA publishes XLSX at date-versioned paths that change every quarter. apra-mcp resolves them through three tiers:
1. **Live scrape** — fetch the canonical APRA landing page (with ETag conditional-GET so refreshes between releases cost zero bytes), regex-extract the .xlsx href matching the dataset's filename pattern, pick the latest-dated match. Cached 6h.
2. **Bundled seed manifest** — when the live scrape fails, fall back to `data/seed_urls.json` shipped in the wheel. CI refreshes the manifest daily. The response is flagged `stale: true` with an honest reason.
3. **YAML default** — last-resort URL from the curated YAML.
Net effect: a fresh `uvx apra-mcp` always gets the current quarter; a 3-month-old install still works because the seed manifest is refreshed and `--upgrade` pulls a new wheel.
---
## Framework break (insurance only)
APRA changed the reporting framework on 1 July 2023 (AASB 17 Insurance Contracts + capital framework revision). Pre- and post-break data are **not directly comparable** — APRA's own guidance is explicit. apra-mcp ships paired datasets:
- `INSURANCE_GENERAL` (post-AASB17) + `INSURANCE_GENERAL_HISTORICAL` (pre-AASB17)
- `LIFE_INSURANCE` (post-AASB17) + `LIFE_INSURANCE_HISTORICAL` (pre-AASB17)
Every response on an insurance dataset includes a `framework` block surfacing the break + a `historical_dataset` cross-reference, so agents see the warning before splicing series.
---
## Attribution
Data sourced from the Australian Prudential Regulation Authority. Licensed under [Creative Commons Attribution 3.0 Australia (CC BY 3.0 AU)](https://creativecommons.org/licenses/by/3.0/au/). apra-mcp is MIT-licensed; APRA's data carries the upstream CC-BY 3.0 AU licence, echoed in every response's `attribution` field.
---
## Sister MCPs (Australian Public Data portfolio)
> **Want all 9 sources behind one REST API?** The hosted gateway at **[ausdata.io](https://ausdata.io)** adds cross-source joins, full history, webhooks, and HMAC-signed responses on top of these MCPs — free tier (500 calls/mo, no card).
- [abs-mcp](https://pypi.org/project/abs-mcp/) — Australian Bureau of Statistics (CPI, unemployment, ERP, building approvals)
- [rba-mcp](https://pypi.org/project/rba-mcp/) — Reserve Bank of Australia (cash rate, lending stats, exchange rates)
- [ato-mcp](https://pypi.org/project/ato-mcp/) — Australian Taxation Office (tax stats, ACNC charities)
- **apra-mcp** — this one. Banks, super, insurance.
- [aihw-mcp](https://pypi.org/project/aihw-mcp/) — Australian Institute of Health and Welfare
- [asic-mcp](https://pypi.org/project/asic-mcp/) — Australian Securities and Investments Commission (company registers)
- [aemo-mcp](https://pypi.org/project/aemo-mcp/) — Australian Energy Market Operator (NEM dispatch, spot prices, generation)
- [au-weather-mcp](https://pypi.org/project/au-weather-mcp/) — Open-Meteo (Bureau of Meteorology aggregator)
- [wgea-mcp](https://pypi.org/project/wgea-mcp/) — Workplace Gender Equality Agency
- [aus-identity](https://pypi.org/project/aus-identity/) — Postcode / state / ABN normalisation helper used by all sisters
---
## Development
```bash
git clone https://github.com/Bigred97/apra-mcp.git
cd apra-mcp
uv venv
uv pip install -e ".[dev]"
pytest # unit tests
pytest -m live # integration tests against apra.gov.au
```
Issues and contributions welcome: [github.com/Bigred97/apra-mcp/issues](https://github.com/Bigred97/apra-mcp/issues).