mcp-cbr-rates

io.github.atomno-mcpPublished by GitHub account atomno-mcpv0.1.11Updated Oct 24, 2026

CBR exchange rates and key rates for Russia. MCP tools for finance agents.

VerifiedSTDIODesktop onlyFinanceData & Analytics

Overview

AI-generated overview

A local MCP server that gives an assistant read-only access to public Bank of Russia data: currency quotes, key rate, inflation and a macro snapshot.

What you can do
Look up the official exchange rate for a currency code on a given or latest date, and pull daily quote series over a date range (capped at 366 days per call). Retrieve the CBR key-rate history for a date range. Read monthly year-over-year inflation figures by year range. Get a combined macro dashboard of key rate, USD/EUR/CNY rates and inflation in one call.
When to use it
Useful when an assistant needs Russian ruble exchange rates, the Bank of Russia key rate or Russian inflation data for analysis, reporting or finance-oriented questions, without signing up for an API key.
Requirements
Runs locally over stdio as a Python package (install with pipx or uv, or run with uvx). Needs network access to public Bank of Russia endpoints. No API keys or accounts. Optional environment variables tune HTTP timeout, cache TTLs and log level.
Before you install
All tools are read-only and the README states there are no secrets or telemetry. Data comes from an unofficial wrapper around public CBR endpoints, so freshness and accuracy are not guaranteed and tools may break if the source formats change. Requests go to Bank of Russia servers.

Installation

In SourceWeft

  1. Open mcp-cbr-rates in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.

Other MCP clients

Follow the launch instructions in the repository.

README

mcp-cbr-rates

A Model Context Protocol (MCP) server that exposes public Bank of Russia (Центральный банк РФ, CBR) data — currency quotes, key rate, inflation and a compact macro snapshot — to AI agents.

[License: MIT] [PyPI] [GitHub release] [Tests] [Coverage] [Python] [MCP] [Glama]

[mcp-cbr-rates MCP server]

mcp-cbr-rates is part of the atomno family of MCP servers focused on the Russian fintech ecosystem. It is fully open-source, requires no API keys, and is built on top of the official public CBR endpoints.


Features

  • Five high-quality MCP tools, each with a strict Pydantic schema: get_rate, history_rates, key_rate, inflation, statistics.
  • Built-in TTL (Time-To-Live) cache: 1 hour for daily quotes, 24 hours for historical series, to be polite to the source.
  • Async httpx transport with automatic retries on 5xx errors.
  • Safe XML parsing via defusedxml.
  • 50+ unit tests with respx-mocked HTTP, ≥80 % coverage.
  • No secrets, no telemetry, no third-party trackers.

Quick start

Install from PyPI (recommended)

bash
pipx install atomno-mcp-cbr-ratesatomno-mcp-cbr-rates  # starts the MCP server over stdio

Or with uv:

bash
uv tool install atomno-mcp-cbr-rates

Install from source

bash
git clone https://github.com/atomno-mcp/mcp-cbr-rates.gitcd mcp-cbr-ratespip install -e .atomno-mcp-cbr-rates  # starts the MCP server over stdio

Use with Cursor

Add the following to .cursor/mcp.json (or your global ~/.cursor/mcp.json):

json
{  "mcpServers": {    "cbr-rates": {      "command": "atomno-mcp-cbr-rates"    }  }}

Use with Claude Desktop

Add to claude_desktop_config.json:

json
{  "mcpServers": {    "cbr-rates": {      "command": "atomno-mcp-cbr-rates"    }  }}

On Windows the config lives at %APPDATA%\Claude\claude_desktop_config.json; on macOS at ~/Library/Application Support/Claude/claude_desktop_config.json.

Use with Claude Code

bash
claude mcp add cbr-rates -- atomno-mcp-cbr-rates

Tools

NameInputsReturns
get_ratechar_code: str, on_date?: dateCurrencyRate — single quote on the given (or latest) date
history_rateschar_code: str, date_from: date, date_to: dateHistoryRates — series of daily quotes
key_ratedate_from?: date, date_to?: dateKeyRateHistory — CBR key-rate series
inflationyear_from?: int, year_to?: intInflationData — monthly year-over-year CPI in percent
statistics(none)MacroSnapshot — combined dashboard: key rate + USD/EUR/CNY + inflation

Examples in plain English:

"What was the official EUR rate on April 25, 2024?" Tool: get_rate(char_code="EUR", on_date="2024-04-25")

"Plot the daily USD-RUB rate over the last 90 days." Tool: history_rates(char_code="USD", date_from=..., date_to=...)

"Give me the latest key rate, USD/EUR/CNY, and inflation in one go." Tool: statistics()

The history_rates window is capped at 366 days; for longer periods, call the tool repeatedly.


Configuration

All settings are optional and read from environment variables:

VariableDefaultDescription
MCP_CBR_HTTP_TIMEOUT15HTTP timeout in seconds for CBR calls.
MCP_CBR_CACHE_DAILY_TTL3600Cache TTL for daily quotes (seconds).
MCP_CBR_CACHE_HISTORY_TTL86400Cache TTL for historical series and SOAP responses.
MCP_CBR_LOG_LEVELINFOStandard Python log level.

Legacy CBR_* names are still accepted for compatibility, but new configs should use MCP_CBR_*.

There are no API keys to configure — all CBR endpoints used here are public.


Development

bash
git clone https://github.com/atomno-mcp/mcp-cbr-rates.gitcd mcp-cbr-ratespython -m venv .venv && source .venv/bin/activate  # or .\.venv\Scripts\activate on Windowspip install -e ".[dev]"pytest --cov=src/mcp_cbr_rates

Layout:

apps/mcp-cbr-rates/├── src/mcp_cbr_rates/│   ├── server.py        # FastMCP entry point, tool registration│   ├── tools.py         # high-level async tools with caching│   ├── client.py        # httpx wrapper around CBR XML / SOAP / HTML endpoints│   ├── schemas.py       # Pydantic v2 models for inputs & outputs│   ├── cache.py         # async TTL cache│   ├── currency_codes.py # static ISO → CBR id map (with dynamic fallback)│   └── errors.py        # typed exception hierarchy└── tests/               # respx-mocked unit tests + fixtures

Data sources

  • https://www.cbr.ru/scripts/XML_daily.asp — daily currency quotes.
  • https://www.cbr.ru/scripts/XML_dynamic.asp — historical currency series.
  • https://www.cbr.ru/scripts/XML_valFull.asp — currency code lookup.
  • https://www.cbr.ru/DailyInfoWebServ/DailyInfo.asmx — SOAP service for the CBR key rate.
  • https://www.cbr.ru/hd_base/infl/ — monthly year-over-year inflation table.

All endpoints are read-only and free of charge.


Disclaimer

This project is not affiliated with the Bank of Russia in any way. It is an unofficial, best-effort wrapper around publicly available data. Use at your own risk; the authors disclaim any responsibility for the freshness, accuracy or applicability of the data delivered through this server.

If CBR's HTML or XML schemas change, individual tools may stop working until this package is updated. Please open an issue if you notice a regression.


License

MIT — see LICENSE.

Source: README.md at commit e44fc40

Tools

0
SourceWeft has not started this package in its sandbox yet, so its tools are not known.

Version history

1
  1. v0.1.11LatestSep 16, 2026

Score

50% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 days25 pts

    Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.

  • Auth declared10 pts

    Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.

  • Tools listed15 pts

    Answer tools/list without a credential, or ship a package that starts in a sandbox without one.

  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts