MCP server for Australian Prudential Regulation Authority statistics. Plain-English access to bank capital ratios, superannuation fund-level data, and life + general insurance — every prudentially-regulated entity in Australia, every quarter, with auto-discovery and a CC-BY 3.0 AU attribution contract.
Project description
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.
"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, rba-mcp, ato-mcp, and au-weather-mcp.
Install
uvx --upgrade apra-mcp
Claude Desktop
{
"mcpServers": {
"apra": { "command": "uvx", "args": ["--upgrade", "apra-mcp"] }
}
}
Claude Code
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_periodas 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_territoryfilter onINSURANCE_GENERALaccepts 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 byaus-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:
- 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.
- Bundled seed manifest — when the live scrape fails, fall back to
data/seed_urls.jsonshipped in the wheel. CI refreshes the manifest daily. The response is flaggedstale: truewith an honest reason. - 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). 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)
- abs-mcp — Australian Bureau of Statistics (CPI, unemployment, ERP, building approvals)
- rba-mcp — Reserve Bank of Australia (cash rate, lending stats, exchange rates)
- ato-mcp — Australian Taxation Office (tax stats, ACNC charities)
- apra-mcp — this one. Banks, super, insurance.
- aihw-mcp — Australian Institute of Health and Welfare
- asic-mcp — Australian Securities and Investments Commission (company registers)
- aemo-mcp — Australian Energy Market Operator (NEM dispatch, spot prices, generation)
- au-weather-mcp — Open-Meteo (Bureau of Meteorology aggregator)
- wgea-mcp — Workplace Gender Equality Agency
- aus-identity — Postcode / state / ABN normalisation helper used by all sisters
Development
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file apra_mcp-0.8.7.tar.gz.
File metadata
- Download URL: apra_mcp-0.8.7.tar.gz
- Upload date:
- Size: 1.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
577eacd3aeeca5f6d94990bd54a5d0018bcb0cfd7c25d35bf8b3b13fe4877da3
|
|
| MD5 |
6a896f11818f9a05ab534262ed2b1a2f
|
|
| BLAKE2b-256 |
3b94385780578def84a2dc05c78729b7b32bc52d5f5c779608f899df769910dc
|
Provenance
The following attestation bundles were made for apra_mcp-0.8.7.tar.gz:
Publisher:
release.yml on Bigred97/apra-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
apra_mcp-0.8.7.tar.gz -
Subject digest:
577eacd3aeeca5f6d94990bd54a5d0018bcb0cfd7c25d35bf8b3b13fe4877da3 - Sigstore transparency entry: 1558637501
- Sigstore integration time:
-
Permalink:
Bigred97/apra-mcp@a944910dfb8cdcedfd3caa359084532fc274d629 -
Branch / Tag:
refs/tags/v0.8.7 - Owner: https://github.com/Bigred97
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a944910dfb8cdcedfd3caa359084532fc274d629 -
Trigger Event:
push
-
Statement type:
File details
Details for the file apra_mcp-0.8.7-py3-none-any.whl.
File metadata
- Download URL: apra_mcp-0.8.7-py3-none-any.whl
- Upload date:
- Size: 70.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e2b85a262e5d9832a64a26cbe7d54e579e7d29f0adbaf4067f27c67ed3935b03
|
|
| MD5 |
a69f909ff46c2f2b030d0d28ea3e5f5b
|
|
| BLAKE2b-256 |
4471f81f747fa16b91c25b34bb91ee3b88c1b871ad92e60d419abbed4c4aa24b
|
Provenance
The following attestation bundles were made for apra_mcp-0.8.7-py3-none-any.whl:
Publisher:
release.yml on Bigred97/apra-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
apra_mcp-0.8.7-py3-none-any.whl -
Subject digest:
e2b85a262e5d9832a64a26cbe7d54e579e7d29f0adbaf4067f27c67ed3935b03 - Sigstore transparency entry: 1558637578
- Sigstore integration time:
-
Permalink:
Bigred97/apra-mcp@a944910dfb8cdcedfd3caa359084532fc274d629 -
Branch / Tag:
refs/tags/v0.8.7 - Owner: https://github.com/Bigred97
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@a944910dfb8cdcedfd3caa359084532fc274d629 -
Trigger Event:
push
-
Statement type: