Metadata-Version: 2.4
Name: mcp-nb
Version: 0.1.0
Summary: MCP server for Norges Bank open data API — exchange rates, policy rate, government securities, money market, and more
Author-email: Gervi Labs <hello@gervilabs.com>
License-Expression: MIT
Project-URL: Homepage, https://github.com/mctar/mcp-nb
Project-URL: Repository, https://github.com/mctar/mcp-nb
Keywords: mcp,norges-bank,exchange-rates,central-bank,sdmx,norway
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: fastmcp>=2.13.0
Requires-Dist: requests>=2.32.3
Dynamic: license-file

# Norges Bank MCP Server

An MCP (Model Context Protocol) server that gives AI agents direct access to Norges Bank's open data API. Exchange rates, policy rate, government securities, money market data, bank liquidity, and the Regional Network survey.

Built by [Gervi Labs](https://gervilabs.com) as part of an effort to create MCP servers for Norwegian public data sources.

## What it does

This server exposes tools for querying data from Norway's central bank, including:

- Exchange rates for 40+ currencies against NOK (daily, monthly, annual)
- Policy rate (styringsrenten), overnight lending rate, and reserve rate
- Nowa (Norwegian overnight weighted average rate)
- Government securities: prices, yields, zero-coupon curves
- Government debt key figures and primary/secondary market data
- Bank liquidity forecasts and statistics
- Money market aggregates
- Regional Network enterprise survey data
- Financial indicators

All data comes from Norges Bank's public SDMX REST API at `https://data.norges-bank.no/api/`. No authentication required. Data is freely available under open license.

## Quick start

### Local

```bash
pip install -r requirements.txt
python server.py
```

The server runs on port 8007 using streamable HTTP transport.

### Docker

```bash
docker build -t norges-bank-mcp .
docker run -p 8007:8007 norges-bank-mcp
```

Or with docker-compose:

```bash
docker compose up
```

## Available tools

| Tool | Description |
| --- | --- |
| `nb_get_api_status` | Verify API connectivity |
| `nb_list_dataflows` | List all available datasets |
| `nb_get_dataflow_structure` | Get dimensions and valid codes for a dataset |
| `nb_get_data` | Fetch data with SDMX key filter |
| `nb_get_exchange_rate` | Quick exchange rate lookup (accepts common names) |
| `nb_get_policy_rate` | Current and historical policy rate |

## Recommended workflow

1. **Discover**: `nb_list_dataflows()` to see all available datasets
2. **Explore**: `nb_get_dataflow_structure('EXR')` to understand dimensions and valid codes
3. **Query**: `nb_get_data('EXR', 'B.USD.NOK.SP', '2024-01-01', '2026-03-30')` to fetch data

## Key format

The SDMX key is a dot-separated string of dimension values. Empty positions act as wildcards. Use `+` for multiple values in one position.

| Key | Meaning |
| --- | --- |
| `B.USD.NOK.SP` | Daily USD/NOK spot rate |
| `B.USD+EUR+GBP.NOK.SP` | Daily USD, EUR, and GBP vs NOK |
| `B..NOK.SP` | All currencies vs NOK, daily |
| `M.USD.NOK.SP` | Monthly USD/NOK |
| `A.USD.NOK.SP` | Annual USD/NOK |

Frequency codes: `B` (business daily), `M` (monthly), `A` (annual).

## Available dataflows

| ID | Name | Description |
| --- | --- | --- |
| `EXR` | Exchange rates | 40+ currencies against NOK |
| `IR` | Policy rate | Key rate, overnight lending, reserve rate |
| `SHORT_RATES` | Short rates | Nowa rate |
| `SEC` | Government securities | Prices and yields at market close |
| `GOVT_GENERIC_RATES` | Generic interest rates | Government bond yield curve |
| `GOVT_ZEROCOUPON` | Zero coupon yields | Nelson-Siegel-Svensson model |
| `GOVT_KEYFIGURES` | Key indicators | Government debt overview |
| `GOVT_PRIMARY_MARKET` | Primary market | Government securities auctions |
| `GOVT_SECONDARY_MARKET` | Secondary market | Turnover by region/investor |
| `GOVT_IRS` | Interest rate swaps | Government debt swaps |
| `MONEY_MARKET` | Money market | Aggregated reporting data |
| `LIQUIDITY_FORECAST` | Liquidity forecast | Bank system liquidity outlook |
| `LIQUIDITY_STATISTICS` | Liquidity statistics | Bank system liquidity data |
| `REGNET` | Regional Network | Enterprise and organisation survey |
| `FINANCIAL_INDICATORS` | Financial indicators | Calculated by Norges Bank |
| `FAUCTION` | F-auctions | Announcements and results |
| `SETTLEMENT_STATISTICS` | Settlement | Settlement system data |
| `ANN_KPRA` | Policy rate announcements | Rate decision announcements |
| `ANN_FX_SPU` | FX announcements | Transactions on behalf of SPU |

## Exchange rate convenience

The `nb_get_exchange_rate` tool accepts common currency names in addition to ISO codes:

- "dollar" or "USD"
- "euro" or "EUR"
- "pound" or "sterling" or "GBP"
- "yen" or "JPY"
- "swedish" or "SEK"
- "danish" or "DKK"
- "swiss" or "franc" or "CHF"
- "yuan" or "renminbi" or "CNY"
- "TWI" for trade-weighted index
- "I44" for import-weighted index
- ... and 30+ more aliases

## Related projects

Part of a growing ecosystem of MCP servers for Norwegian public data:

- **SSB MCP** (Statistics Norway): [tools.try.no/ssb-mcp](https://tools.try.no/ssb-mcp)
- **FHI MCP** (Public Health Institute): [github.com/inooLabs/fhi-mcp](https://github.com/inooLabs/fhi-mcp)

## Data source

All data comes from the public Norges Bank SDMX REST API. No authentication required.

- API base: `https://data.norges-bank.no/api/`
- Query builder: [app.norges-bank.no/query](https://app.norges-bank.no/query/#/en/)
- Documentation: [norges-bank.no/en/topics/Statistics/open-data](https://www.norges-bank.no/en/topics/Statistics/open-data/)

## License

MIT
