Skip to main content
Glama
Bigred97

Australian Prudential Regulation Authority

Server Configuration

Describes the environment variables required to run the server.

NameRequiredDescriptionDefault

No arguments

Instructions

Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.

This server publishes no instructions, or was last inspected before Glama recorded them.

Capabilities

Features and capabilities supported by this server

Protocol revision2025-11-25

CapabilityDetails
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

NameDescription
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...', ...}]

# Discover what's available on insurance
results = await search_datasets("insurance premium")

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 framework block documenting the Q3-2023 AASB-17 break.

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", )

# Major banks' total capital, last 5 quarters
resp = await get_data(
    "ADI_KEY_STATS",
    filters={"sector": "major_banks"},
    measures="total_capital",
    start_period="2024-01-01",
)

# Total industry gross written premium (general insurance)
resp = await get_data(
    "INSURANCE_GENERAL",
    filters={"data_item": "Gross written premium",
             "industry_segment": "total_industry"},
)

# AustralianSuper member account counts
resp = await get_data(
    "SUPER_FUND_LEVEL",
    filters={"fund_name": "australian_super"},
    measures=["total_member_accounts", "total_members_benefits"],
)

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. Wide-layout entity-level datasets (INSURANCE_GENERAL etc.) are capped at limit rows.

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"})

# Most members per super fund (latest)
top_n("SUPER_FUND_LEVEL", "total_member_accounts", n=10,
      filters={"period": "2025-12-31"})

# 5 lowest CET1 ratios in the latest quarter
top_n("ADI_KEY_STATS", "cet1_ratio", n=5, direction="bottom",
      filters={"period": "2025-12-31"})

Returns: DataResponse with at most n records, sorted by measure in the requested direction. Other fields match get_data.

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

NameDescription

No prompts

Resources

Contextual data attached and managed by the client

NameDescription

No resources

TDQS

A4.2/5.0

Scored across 6 tools

Disambiguation5/5

Each tool has a distinct and clearly defined purpose: describe_dataset for metadata, get_data for querying, latest for most recent values, list_curated for dataset IDs, search_datasets for discovery, and top_n for ranking. There is no overlap or ambiguity between tool functions.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun or verb pattern (e.g., describe_dataset, get_data, list_curated, search_datasets). Even 'latest' functions as a verb in context. No mixing of conventions.

Tool Count5/5

Six tools is appropriate for the server's purpose of querying curated APRA datasets. It covers discovery, metadata, data retrieval, latest observations, and top ranking without being excessive or thin.

Completeness5/5

The tool set provides a complete workflow for interacting with curated datasets: search and list to find datasets, describe to understand structure, get_data for arbitrary queries, latest for current values, and top_n for ranking. No essential operations are missing.

Maintenance

ActivityActive
ResponsivenessNo issues