# apra-mcp

> MCP server exposing Australian Prudential Regulation Authority statistics through 6 plain-English tools — per-bank capital ratios, fund-by-fund superannuation, post-AASB17 life and general insurance.

apra-mcp is the Australian Prudential Regulation Authority (APRA) member of the Australian Public Data MCP portfolio. It fetches APRA's quarterly XLSX statistical reports via a 3-tier URL resolver — live scrape with ETag conditional-GET, bundled seed manifest (CI-refreshed daily), then YAML default — so installs always get the current quarter even if APRA's URLs change mid-cycle.

7 curated datasets cover the headline APRA-regulated entities: every ADI by capital (~150 banks), every super fund (~140), post-AASB17 life and general insurance with framework-break-aware historical archives back to 2002. Every response carries CC-BY 3.0 Australia attribution. Insurance responses include a `framework` block surfacing the 1 July 2023 AASB 17 transition so agents see the warning before splicing pre/post series.

## Documentation

- [README](https://github.com/Bigred97/apra-mcp/blob/main/README.md): Full setup + 6-tool usage + reliability notes
- [CHANGELOG](https://github.com/Bigred97/apra-mcp/blob/main/CHANGELOG.md): Release history
- [PyPI](https://pypi.org/project/apra-mcp/): `uvx --upgrade apra-mcp`

## Tools

- search_datasets(query, limit=10): Fuzzy search the 7 curated APRA datasets
- describe_dataset(dataset_id): Schema, filterable dimensions, measures, source URL, framework info (insurance)
- get_data(dataset_id, filters, measures, start_period, end_period, format): Filtered query
- latest(dataset_id, filters, measures): Most recent quarter's observation per measure
- top_n(dataset_id, measure, n=10, filters, direction="top"): Rank banks / super funds / etc by a measure server-side
- list_curated(): Enumerate the 7 dataset IDs

## Example queries

- "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"
- "Compare risk-weighted assets across the major banks"
- "Major banks' total capital trend since 2020"

## Optional

- [Sister MCPs](https://github.com/Bigred97?tab=repositories&q=mcp): Other AU public-data MCPs in the portfolio
- [aus-identity](https://pypi.org/project/aus-identity/): Postcode/state normalisation — `state_territory` filter on `INSURANCE_GENERAL` accepts canonical codes, full names, ISO 3166-2, and postcodes
