Metadata-Version: 2.4
Name: rba-mcp
Version: 0.1.2
Summary: MCP server for the Reserve Bank of Australia statistical tables (F-tables). Plain-English access to interest rates, FX rates, deposit/lending rates.
Project-URL: Homepage, https://github.com/Bigred97/rba-mcp
Project-URL: Issues, https://github.com/Bigred97/rba-mcp/issues
Author: Harry Vass
License: MIT
License-File: LICENSE
Keywords: australia,claude,fastmcp,fx,interest-rates,mcp,rba
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Information Analysis
Requires-Python: >=3.11
Requires-Dist: aiosqlite>=0.20
Requires-Dist: fastmcp<4,>=2.0
Requires-Dist: httpx>=0.27
Requires-Dist: pandas<3,>=2.2
Requires-Dist: pydantic>=2.7
Requires-Dist: pyyaml>=6.0
Requires-Dist: rapidfuzz>=3.9
Provides-Extra: dev
Requires-Dist: pytest-asyncio>=0.23; extra == 'dev'
Requires-Dist: pytest>=8; extra == 'dev'
Requires-Dist: respx>=0.21; extra == 'dev'
Description-Content-Type: text/markdown

# rba-mcp

[![tests](https://github.com/Bigred97/rba-mcp/actions/workflows/test.yml/badge.svg)](https://github.com/Bigred97/rba-mcp/actions/workflows/test.yml)
[![PyPI](https://img.shields.io/pypi/v/rba-mcp.svg)](https://pypi.org/project/rba-mcp/)
[![Python](https://img.shields.io/pypi/pyversions/rba-mcp.svg)](https://pypi.org/project/rba-mcp/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

**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.

Companion to [abs-mcp](https://github.com/Bigred97/abs-mcp) — together they cover the most-asked Australian economic data.

## What you can ask

Once installed, your LLM can answer questions like:

| Question | Real response |
|---|---|
| What's the current RBA cash rate? | RBA Cash Rate Target, latest month |
| What's AUD/USD today? | Latest daily exchange rate |
| Show me AUD vs major currencies in 2024 | Multi-series query with monthly observations |
| What's the average mortgage rate? | Owner-occupier variable, outstanding loans |
| What rate are 12-month term deposits at? | Latest from F4 |
| What's the trade-weighted index trend? | TWI series back to 1983 |

Every answer comes with the period, units (Per cent per annum, USD per AUD, etc.), and a link back to the RBA source.

## Install

```bash
# After publish:
uvx rba-mcp

# Local dev:
uv pip install -e .
```

### Claude Desktop

Add to `~/Library/Application Support/Claude/claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "rba": {
      "command": "uvx",
      "args": ["rba-mcp"]
    }
  }
}
```

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):

```json
{
  "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`):

```json
{
  "mcpServers": {
    "rba": {
      "command": "uvx",
      "args": ["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_date, end_date, format)` | Query data. `series=None` returns all curated series; format = records / series / csv. |
| `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_date="2024")
```

**"Compare AUD against USD, EUR and GBP since 2020"**

```
get_data(
  table_id="F11",
  series=["aud_usd", "aud_eur", "aud_gbp"],
  start_date="2020"
)
```

## Period formats

RBA series use ISO-style date formats. Pass `start_date` / `end_date` as:

| Format | Example | Use for |
|---|---|---|
| `YYYY` | `"2024"` | Year start |
| `YYYY-MM` | `"2024-03"` | Month start |
| `YYYY-MM-DD` | `"2024-03-15"` | Specific day (daily tables only) |

## Development

```bash
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.

## Data attribution

RBA 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.

## License

MIT — Harry Vass, 2026.
