Australian Prudential Regulation Authority
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Capabilities
Features and capabilities supported by this server
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| search_datasetsA | Fuzzy-search the curated APRA dataset catalog. All datasets ship hand-curated in v0.1: per-bank capital ratios, per-bank risk-weighted assets, fund-by-fund superannuation, and post-AASB17 life + general insurance (with separate historical archives for the pre-Q3-2023 reporting framework). Examples: # Find the dataset for bank capital ratios results = await search_datasets("bank capital cet1") # → [{id: 'ADI_KEY_STATS', name: 'ADI Key Statistics — entity-level...', ...}] Returns: List of DatasetSummary (id, name, description, update_frequency, is_curated), ranked by relevance. |
| describe_datasetA | Describe a dataset's filterable dimensions, returnable measures, units, source, and (for insurance) framework break info. Use this before calling get_data on a new dataset — it tells you the valid filter keys ('institution', 'sector', 'data_item'), the valid enumerated filter values ('cba', 'major_banks'), the measure aliases ('cet1_ratio', 'total_capital'), and the canonical source URL. For insurance datasets, the response includes a Returns: DatasetDetail with id, name, description, period_coverage, list of dimensions, list of measures, source_url, download_url, and optional framework info. |
| get_dataA | Query a curated APRA dataset and return observations. Examples: # CBA's CET1 ratio over time resp = await get_data( "ADI_KEY_STATS", filters={"institution": "cba"}, measures="cet1_ratio", ) Returns: DataResponse with records (or csv), unit, period bounds, row_count, source URL, the actual download_url used, optional framework info (insurance only), and CC-BY 3.0 AU attribution. |
| latestA | Return the most recent observation per measure for a dataset. Trims to the single latest period per measure across the filtered slice — useful for "what's CBA's current CET1?" style questions without having to think about start_period. Examples: # Latest CBA capital ratios resp = await latest("ADI_KEY_STATS", filters={"institution": "cba"}) |
| top_nA | Return the N rows with the largest (or smallest) value of a measure. The single most common agent workflow: "show me the top 10 X by Y". top_n does the rank server-side and returns only the requested rows. Examples: # Biggest 10 banks by total capital, latest quarter top_n("ADI_KEY_STATS", "total_capital", n=10, filters={"period": "2025-12-31"}) Returns:
DataResponse with at most |
| list_curatedA | List every curated dataset ID in this version of apra-mcp. Returns: Sorted list of dataset IDs. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Bigred97/apra-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server