{
  "markdown": "# rba-mcp\n\nmcp-name: io.ausdata/rba-mcp\n\n[![PyPI](https://img.shields.io/pypi/v/rba-mcp.svg)](https://pypi.org/project/rba-mcp/)\n[![Python](https://img.shields.io/pypi/pyversions/rba-mcp.svg)](https://pypi.org/project/rba-mcp/)\n[![License](https://img.shields.io/pypi/l/rba-mcp.svg)](https://github.com/Bigred97/rba-mcp/blob/main/LICENSE)\n[![Tests](https://github.com/Bigred97/rba-mcp/actions/workflows/test.yml/badge.svg)](https://github.com/Bigred97/rba-mcp/actions/workflows/test.yml)\n[![CodeQL](https://github.com/Bigred97/rba-mcp/actions/workflows/codeql.yml/badge.svg)](https://github.com/Bigred97/rba-mcp/actions/workflows/codeql.yml)\n[![Glama MCP server quality](https://glama.ai/mcp/servers/Bigred97/rba-mcp/badges/score.svg)](https://glama.ai/mcp/servers/Bigred97/rba-mcp)\n\n**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](https://www.rba.gov.au/statistics/tables/), with curated mappings for the most-asked indicators.\n\n> **Hosted access?** For cross-source queries, webhooks, an always-on REST API, and a uniform response envelope across all 9 sources, see **[ausdata.io](https://ausdata.io)** — free tier available (500 calls/mo, no card).\n\n![rba-mcp answering \"Show me AUD against USD, EUR, GBP and the trade-weighted index since 2024\" in Claude Desktop — four metric cards, rebased line chart, macro-context analysis](docs/demo.png)\n\nCompanion to [abs-mcp](https://github.com/Bigred97/abs-mcp) (ABS macro stats), [ato-mcp](https://github.com/Bigred97/ato-mcp) (ATO tax + ACNC charity data), and [au-weather-mcp](https://github.com/Bigred97/au-weather-mcp) (Australian weather via Open-Meteo + BOM) — together the four cover the most-asked Australian official data.\n\n## What you can ask\n\nOnce installed, your LLM can answer questions like:\n\n| Question | Real response (verified) |\n|---|---|\n| What's the current RBA cash rate? | **4.10%** (Apr 2026) |\n| What's the 3-month bank bill yield? | **4.34%** (Apr 2026) |\n| AUD/USD today? | **0.7231** (11 May 2026) |\n| Trade-weighted index? | **66.9** (11 May 2026) |\n| Average mortgage rate (owner-occupier variable)? | **6.00%** (Mar 2026) |\n| 12-month term deposit rate? | **5.00%** (Apr 2026) |\n| Show me AUD vs USD/EUR/GBP since 2024 | Daily series, all three currencies, one call |\n| TWI trend since 1983? | Monthly observations going back 40+ years |\n\nEvery 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.\n\n## Install\n\n```bash\n# After publish:\nuvx --upgrade rba-mcp\n\n# Local dev:\nuv pip install -e .\n```\n\n### Claude Desktop\n\nAdd to `~/Library/Application Support/Claude/claude_desktop_config.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"rba\": {\n      \"command\": \"uvx\",\n      \"args\": [\"--upgrade\", \"rba-mcp\"]\n    }\n  }\n}\n```\n\n> **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. `--upgrade` makes 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 the `server_version` field on any `DataResponse` (added in 0.1.5).\n\nIf 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`).\n\nFor local dev (pre-PyPI):\n\n```json\n{\n  \"mcpServers\": {\n    \"rba\": {\n      \"command\": \"uv\",\n      \"args\": [\"run\", \"--directory\", \"/absolute/path/to/rba-mcp\", \"rba-mcp\"]\n    }\n  }\n}\n```\n\n### Cursor\n\nAdd to `~/.cursor/mcp.json` (or workspace `.cursor/mcp.json`):\n\n```json\n{\n  \"mcpServers\": {\n    \"rba\": {\n      \"command\": \"uvx\",\n      \"args\": [\"--upgrade\", \"rba-mcp\"]\n    }\n  }\n}\n```\n\n## Tools\n\n| Tool | What it does |\n|---|---|\n| `search_tables(query, limit=10)` | Fuzzy-search RBA F-tables by name or topic. |\n| `describe_table(table_id)` | Plain-English series listing for one F-table. |\n| `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. |\n| `latest(table_id, series)` | Most-recent observation for the requested series. |\n| `list_curated()` | The 5 F-table IDs with hand-curated plain-English support. |\n\n## Curated F-tables\n\nFor these five, `series` accepts plain-English keys (e.g. `\"aud_usd\"` instead of `\"FXRUSD\"`):\n\n- **F1.1** — Money Market — Monthly: cash rate target, cash rate, bank bills, OIS rates, treasury notes\n- **F4** — Retail Deposit & Investment Rates: transaction accounts, savings, term deposits, cash management trusts\n- **F6** — Housing Lending Rates: owner-occupier vs investor, variable vs fixed, outstanding vs new loans\n- **F11** — Exchange Rates — Monthly History (1983+): AUD/USD, AUD/EUR, AUD/GBP, AUD/JPY, AUD/CNY, AUD/NZD, TWI\n- **F11.1** — Exchange Rates — Daily (2023+): same series, daily resolution\n\nAny other F-table works too — pass raw RBA series IDs (e.g. `\"FXRUSD\"`) instead of curated keys.\n\n## Worked examples\n\n**\"What's the current RBA cash rate?\"**\n\n```\nlatest(table_id=\"F1.1\", series=\"cash_rate_target\")\n```\n\n**\"AUD to USD over the last year\"**\n\n```\nget_data(table_id=\"F11.1\", series=\"aud_usd\", start_period=\"2024\")\n```\n\n**\"Compare AUD against USD, EUR and GBP since 2020\"**\n\n```\nget_data(\n  table_id=\"F11\",\n  series=[\"aud_usd\", \"aud_eur\", \"aud_gbp\"],\n  start_period=\"2020\"\n)\n```\n\n## Period formats\n\nRBA series use ISO-style date formats. Pass `start_period` / `end_period` (or\nthe legacy `start_date` / `end_date` aliases) as:\n\n| Format | Example | Use for |\n|---|---|---|\n| `YYYY` | `\"2024\"` *or* `2024` | Calendar year (int year also accepted, 0.1.8+) |\n| `YYYY-MM` | `\"2024-03\"` | Calendar month (`end_date=\"2024-12\"` includes all of December — fixed in 0.1.4) |\n| `YYYY-MM-DD` | `\"2024-03-15\"` | Specific day (daily tables only) |\n\n`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.\n\n## Verifying your install\n\nThe running MCP server reports its version on every `DataResponse`:\n\n```json\n{ ..., \"server_version\": \"0.1.8\", ... }\n```\n\nIf you see a value below the [latest on PyPI](https://pypi.org/project/rba-mcp/), your `uvx` cache is stale. Either switch to `[\"--upgrade\", \"rba-mcp\"]` in your config (recommended), or refresh manually:\n\n```bash\nuvx --refresh rba-mcp --help\n# Then fully quit and relaunch Claude Desktop (Cmd+Q — window-close is not enough).\n```\n\nClaude Desktop's MCP child processes are long-lived; refreshing the wheel cache does **not** restart an already-running server. Cold app launch is required.\n\n## Development\n\n```bash\ngit clone https://github.com/Bigred97/rba-mcp.git\ncd rba-mcp\nuv sync --extra dev\nuv pip install -e .\n\n# Unit tests (no network)\nuv run pytest\n\n# Live integration tests (hits RBA CDN)\nuv run pytest -m live\n```\n\nThe SQLite cache lives at `~/.rba-mcp/cache.db`. Data refreshes every 6h, latest 15min. Delete to force a refresh.\n\n## How it works\n\nClaude 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:\n\n![Claude querying rba-mcp for cash rate, noticing the F1.1 monthly is at 4.10%, and web-searching to learn the Board hiked 25bp at the 5 May meeting → reports 4.35% effective 6 May 2026 with citations](docs/cash-rate.png)\n\nYou 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.\n\n## Sister MCPs (Australian Public Data portfolio)\n\nThe 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`).\n\n> **Want all 9 sources behind one REST API?** The hosted gateway at **[ausdata.io](https://ausdata.io)** adds cross-source joins, full history, webhooks, and HMAC-signed responses on top of these MCPs — free tier (500 calls/mo, no card).\n\n- [abs-mcp](https://pypi.org/project/abs-mcp/) — Australian Bureau of Statistics (CPI, unemployment, ERP, building approvals)\n- **rba-mcp** — this one. Reserve Bank of Australia (cash rate, lending stats, exchange rates).\n- [ato-mcp](https://pypi.org/project/ato-mcp/) — Australian Taxation Office (tax stats, ACNC charities)\n- [apra-mcp](https://pypi.org/project/apra-mcp/) — Australian Prudential Regulation Authority (banking, insurance, super)\n- [aihw-mcp](https://pypi.org/project/aihw-mcp/) — Australian Institute of Health and Welfare\n- [asic-mcp](https://pypi.org/project/asic-mcp/) — Australian Securities and Investments Commission (company registers)\n- [aemo-mcp](https://pypi.org/project/aemo-mcp/) — Australian Energy Market Operator (NEM dispatch, spot prices, generation)\n- [au-weather-mcp](https://pypi.org/project/au-weather-mcp/) — Open-Meteo (Bureau of Meteorology aggregator)\n- [wgea-mcp](https://pypi.org/project/wgea-mcp/) — Workplace Gender Equality Agency\n- [aus-identity](https://pypi.org/project/aus-identity/) — Postcode / state / ABN normalisation helper used by all sisters\n\nSee [examples/claude_desktop_config_both.json](examples/claude_desktop_config_both.json) for an example multi-server config.\n\n## Data attribution\n\nRBA data is licensed under [Creative Commons Attribution 4.0 International (CC BY 4.0)](https://www.rba.gov.au/copyright/). Every `DataResponse` from this server includes an `attribution` field with the required notice. If you redistribute responses, credit the RBA.\n\n## Changelog\n\nSee [CHANGELOG.md](CHANGELOG.md) for release history.\n\n## License\n\nMIT — Harry Vass, 2026.\n",
  "bytes": 10626,
  "sha": "155597c6649c242ee2e0f0449ff21518c5945d8661b935b7e5717afc53e4b71f",
  "repo_slug": "bigred97/rba-mcp",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_ausdata_rba_mcp_63f997e3/readme"
}