MCP server for the Reserve Bank of Australia statistical tables (F-tables). Plain-English access to interest rates, FX rates, deposit/lending rates.
Project description
rba-mcp
Ask Claude about Australian interest rates, exchange rates, and lending rates and get real, current numbers — not "I don't have access to that data." This MCP server gives Claude (and other MCP clients like Cursor) live access to the Reserve Bank of Australia's statistical tables, with curated mappings for the most-asked indicators.
Companion to abs-mcp (ABS macro stats), ato-mcp (ATO tax + ACNC charity data), and au-weather-mcp (Australian weather via Open-Meteo + BOM) — together the four cover the most-asked Australian official data.
What you can ask
Once installed, your LLM can answer questions like:
| Question | Real response (verified) |
|---|---|
| What's the current RBA cash rate? | 4.10% (Apr 2026) |
| What's the 3-month bank bill yield? | 4.34% (Apr 2026) |
| AUD/USD today? | 0.7231 (11 May 2026) |
| Trade-weighted index? | 66.9 (11 May 2026) |
| Average mortgage rate (owner-occupier variable)? | 6.00% (Mar 2026) |
| 12-month term deposit rate? | 5.00% (Apr 2026) |
| Show me AUD vs USD/EUR/GBP since 2024 | Daily series, all three currencies, one call |
| TWI trend since 1983? | Monthly observations going back 40+ years |
Every answer comes with the period, units (Per cent per annum, USD per AUD, etc.), the publication date, and a link back to the RBA source. The MCP wraps RBA's CSV statistical tables and exposes them through 5 plain-English tools.
Install
# After publish:
uvx --upgrade rba-mcp
# Local dev:
uv pip install -e .
Claude Desktop
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"rba": {
"command": "uvx",
"args": ["--upgrade", "rba-mcp"]
}
}
}
Why
--upgrade?uvx rba-mcp(without the flag) uses whatever wheel is cached and never adopts new PyPI releases on its own — Claude Desktop's MCP child process keeps running the same wheel until you fully quit the app and refresh the cache by hand.--upgrademakes uvx check PyPI on each launch and pull a newer release if one exists. Recommended for everyone except offline-first / pinned-version workflows. To verify which version is currently serving you, look at theserver_versionfield on anyDataResponse(added in 0.1.5).
If you also have abs-mcp installed, both servers run side-by-side. Claude disambiguates with the server prefix (rba:get_data vs abs:get_data).
For local dev (pre-PyPI):
{
"mcpServers": {
"rba": {
"command": "uv",
"args": ["run", "--directory", "/absolute/path/to/rba-mcp", "rba-mcp"]
}
}
}
Cursor
Add to ~/.cursor/mcp.json (or workspace .cursor/mcp.json):
{
"mcpServers": {
"rba": {
"command": "uvx",
"args": ["--upgrade", "rba-mcp"]
}
}
}
Tools
| Tool | What it does |
|---|---|
search_tables(query, limit=10) |
Fuzzy-search RBA F-tables by name or topic. |
describe_table(table_id) |
Plain-English series listing for one F-table. |
get_data(table_id, series, start_period, end_period, format) |
Query data. series=None returns all curated series; format = records / series / csv. start_date / end_date retained as legacy aliases. |
latest(table_id, series) |
Most-recent observation for the requested series. |
list_curated() |
The 5 F-table IDs with hand-curated plain-English support. |
Curated F-tables
For these five, series accepts plain-English keys (e.g. "aud_usd" instead of "FXRUSD"):
- F1.1 — Money Market — Monthly: cash rate target, cash rate, bank bills, OIS rates, treasury notes
- F4 — Retail Deposit & Investment Rates: transaction accounts, savings, term deposits, cash management trusts
- F6 — Housing Lending Rates: owner-occupier vs investor, variable vs fixed, outstanding vs new loans
- F11 — Exchange Rates — Monthly History (1983+): AUD/USD, AUD/EUR, AUD/GBP, AUD/JPY, AUD/CNY, AUD/NZD, TWI
- F11.1 — Exchange Rates — Daily (2023+): same series, daily resolution
Any other F-table works too — pass raw RBA series IDs (e.g. "FXRUSD") instead of curated keys.
Worked examples
"What's the current RBA cash rate?"
latest(table_id="F1.1", series="cash_rate_target")
"AUD to USD over the last year"
get_data(table_id="F11.1", series="aud_usd", start_period="2024")
"Compare AUD against USD, EUR and GBP since 2020"
get_data(
table_id="F11",
series=["aud_usd", "aud_eur", "aud_gbp"],
start_period="2020"
)
Period formats
RBA series use ISO-style date formats. Pass start_period / end_period (or
the legacy start_date / end_date aliases) as:
| Format | Example | Use for |
|---|---|---|
YYYY |
"2024" or 2024 |
Calendar year (int year also accepted, 0.1.8+) |
YYYY-MM |
"2024-03" |
Calendar month (end_date="2024-12" includes all of December — fixed in 0.1.4) |
YYYY-MM-DD |
"2024-03-15" |
Specific day (daily tables only) |
start_period snaps to the first instant of its period; end_period snaps to the last. So start_period="2024", end_period="2024" returns "all of 2024", not just 1 January. The legacy start_date / end_date parameter names continue to work as aliases (rba-mcp <= 0.2.x); prefer the new names for cross-sister consistency with the rest of the portfolio.
Verifying your install
The running MCP server reports its version on every DataResponse:
{ ..., "server_version": "0.1.8", ... }
If you see a value below the latest on PyPI, your uvx cache is stale. Either switch to ["--upgrade", "rba-mcp"] in your config (recommended), or refresh manually:
uvx --refresh rba-mcp --help
# Then fully quit and relaunch Claude Desktop (Cmd+Q — window-close is not enough).
Claude Desktop's MCP child processes are long-lived; refreshing the wheel cache does not restart an already-running server. Cold app launch is required.
Development
git clone https://github.com/Bigred97/rba-mcp.git
cd rba-mcp
uv sync --extra dev
uv pip install -e .
# Unit tests (no network)
uv run pytest
# Live integration tests (hits RBA CDN)
uv run pytest -m live
The SQLite cache lives at ~/.rba-mcp/cache.db. Data refreshes every 6h, latest 15min. Delete to force a refresh.
How it works
Claude picks the right tool, fills in the curated series keys, calls the live RBA CDN, and synthesises the answer. When the curated table is stale relative to a rate decision (RBA's monthly F1.1 publishes around the 5th business day, but Board meetings can hike between publications), Claude fluidly composes web-search results with this server's data:
You don't have to know what FIRMMCRT or FXRUSD mean — and neither does Claude. The server's curated YAMLs map plain-English keys (cash_rate_target, aud_usd) to RBA series IDs and surface unit attribution + the CC-BY 4.0 attribution string in every response.
Sister MCPs (Australian Public Data portfolio)
The portfolio runs side-by-side in any MCP client; Claude disambiguates via the server prefix (rba:latest vs abs:latest vs ato:get_data vs weather:latest).
- abs-mcp — Australian Bureau of Statistics (CPI, unemployment, ERP, building approvals)
- rba-mcp — this one. Reserve Bank of Australia (cash rate, lending stats, exchange rates).
- ato-mcp — Australian Taxation Office (tax stats, ACNC charities)
- apra-mcp — Australian Prudential Regulation Authority (banking, insurance, super)
- 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
See examples/claude_desktop_config_both.json for an example multi-server config.
Data attribution
RBA data is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0). Every DataResponse from this server includes an attribution field with the required notice. If you redistribute responses, credit the RBA.
Changelog
See CHANGELOG.md for release history.
License
MIT — Harry Vass, 2026.
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 rba_mcp-0.8.0.tar.gz.
File metadata
- Download URL: rba_mcp-0.8.0.tar.gz
- Upload date:
- Size: 841.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8e02be4b070b15752220fbeb4c901b758abb9aee6ffc93adab3234222706f3b9
|
|
| MD5 |
0b04f54194b6da09e54bebe6a0ea6dc1
|
|
| BLAKE2b-256 |
9e1c7b1cedf6f97d605ef63704743e91304fc49ca152b9331e67b105987b0c25
|
Provenance
The following attestation bundles were made for rba_mcp-0.8.0.tar.gz:
Publisher:
release.yml on Bigred97/rba-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rba_mcp-0.8.0.tar.gz -
Subject digest:
8e02be4b070b15752220fbeb4c901b758abb9aee6ffc93adab3234222706f3b9 - Sigstore transparency entry: 1559610180
- Sigstore integration time:
-
Permalink:
Bigred97/rba-mcp@f35c0c4760d565c068729a6654e2d409cb2fb722 -
Branch / Tag:
refs/tags/v0.8.0 - Owner: https://github.com/Bigred97
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f35c0c4760d565c068729a6654e2d409cb2fb722 -
Trigger Event:
push
-
Statement type:
File details
Details for the file rba_mcp-0.8.0-py3-none-any.whl.
File metadata
- Download URL: rba_mcp-0.8.0-py3-none-any.whl
- Upload date:
- Size: 58.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 |
34004a530884100473cfc2b6d0ef69352c61535cd12d8c06a43dd19300c5ddb5
|
|
| MD5 |
96e1560e53eb317c25349794a74cdc70
|
|
| BLAKE2b-256 |
0d2cf648a0da4709244802113a14138519dabbd9f7e3f9714ffc0a2c7b1efd78
|
Provenance
The following attestation bundles were made for rba_mcp-0.8.0-py3-none-any.whl:
Publisher:
release.yml on Bigred97/rba-mcp
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
rba_mcp-0.8.0-py3-none-any.whl -
Subject digest:
34004a530884100473cfc2b6d0ef69352c61535cd12d8c06a43dd19300c5ddb5 - Sigstore transparency entry: 1559610342
- Sigstore integration time:
-
Permalink:
Bigred97/rba-mcp@f35c0c4760d565c068729a6654e2d409cb2fb722 -
Branch / Tag:
refs/tags/v0.8.0 - Owner: https://github.com/Bigred97
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f35c0c4760d565c068729a6654e2d409cb2fb722 -
Trigger Event:
push
-
Statement type: