Skip to main content

cbrt-mcp

cbrt-mcp is a stdio MCP server for the CBRT EVDS time series API.

It gives MCP clients offline discovery over a bundled CBRT metadata snapshot and live data retrieval from EVDS when an API token is available.

Install

End users do not need to clone this repository. They need:

  • uv available on PATH, which provides uvx
  • an MCP client that can run stdio servers
  • an EVDS token only if they want live data from get_series_data()

Check that uvx is available:

uvx --version

Codex

The recommended Codex setup is the CLI command below. It installs nothing into the repository; it writes the MCP registration to ~/.codex/config.toml. Codex CLI and Codex Desktop use this same config, so restart Codex Desktop after adding the server.

codex mcp add cbrt \
  --env EVDS_TOKEN=paste-your-token-here \
  -- uvx cbrt-mcp

Check the registration from a terminal:

codex mcp list

If you only want metadata tools, omit the token:

codex mcp add cbrt -- uvx cbrt-mcp

Manual Codex configuration is also possible. Edit ~/.codex/config.toml and add:

[mcp_servers.cbrt]
command = "uvx"
args = ["cbrt-mcp"]
startup_timeout_sec = 120

[mcp_servers.cbrt.env]
EVDS_TOKEN = "paste-your-token-here"

For metadata-only usage, remove the [mcp_servers.cbrt.env] section. uvx can take longer than 30 seconds on the first run while it downloads and caches the package, so startup_timeout_sec = 120 is recommended for Codex.

Claude Code

Claude Code also supports a one-line install. Use -s user for a user-wide registration. This config is for Claude Code only; it does not automatically add the server to Claude Desktop.

claude mcp add -s user \
  -e EVDS_TOKEN=paste-your-token-here \
  cbrt -- uvx cbrt-mcp

For metadata-only usage:

claude mcp add -s user cbrt -- uvx cbrt-mcp

Check the registration with:

claude mcp list

Omit -s user if you want Claude Code to add the server only for the current project.

Claude Desktop

Claude Desktop has its own MCP config file. Installing into Claude Code does not automatically make the server available in Claude Desktop.

Common config paths:

Client macOS / Linux Windows
Claude Desktop ~/Library/Application Support/Claude/claude_desktop_config.json %APPDATA%\Claude\claude_desktop_config.json

Add this server entry under mcpServers:

{
  "mcpServers": {
    "cbrt": {
      "command": "uvx",
      "args": ["cbrt-mcp"],
      "env": {
        "EVDS_TOKEN": "paste-your-token-here"
      }
    }
  }
}

For metadata-only usage, remove the env block.

After changing a config file, restart the MCP client so it reloads the server configuration.

Update

uvx runs packages from its cache and refreshes them as needed. To force the latest published cbrt-mcp package on the next launch:

uvx --refresh-package cbrt-mcp cbrt-mcp

Then restart your MCP client.

If you want to re-register after changing an EVDS token, run the same install command again for your client. For Codex:

codex mcp add cbrt \
  --env EVDS_TOKEN=paste-your-new-token-here \
  -- uvx cbrt-mcp

For Claude Code:

claude mcp add -s user \
  -e EVDS_TOKEN=paste-your-new-token-here \
  cbrt -- uvx cbrt-mcp

For Claude Desktop, update EVDS_TOKEN in claude_desktop_config.json and restart Claude Desktop.

Metadata Snapshot

The package ships with a bundled CBRT EVDS metadata snapshot. That bundled file lives inside the installed package cache, so users should not edit it directly.

When users refresh metadata, cbrt-mcp writes a separate user snapshot on their machine. The MCP server automatically prefers that user snapshot when it exists and falls back to the bundled snapshot otherwise. No repository clone, package reinstall, or MCP config edit is needed.

Refresh metadata with a temporary EVDS token:

EVDS_TOKEN=paste-your-token-here uvx cbrt-mcp update-metadata

Or pass the token as an option:

uvx cbrt-mcp update-metadata --token paste-your-token-here

Check which snapshot is active:

uvx cbrt-mcp metadata-status

After refreshing metadata, restart the MCP client so any already-running server process reloads the snapshot.

User snapshots are stored outside the installed package:

OS User snapshot path
macOS ~/Library/Application Support/cbrt-mcp/cbrt_meta_data.csv.gz
Linux ~/.local/share/cbrt-mcp/cbrt_meta_data.csv.gz
Windows %APPDATA%\cbrt-mcp\cbrt_meta_data.csv.gz

Advanced users can point the server at a custom gzipped metadata CSV with CBRT_MCP_METADATA_PATH.

To go back to the bundled snapshot:

uvx cbrt-mcp reset-metadata

Then restart the MCP client.

Uninstall

Codex:

codex mcp remove cbrt
codex mcp list

Claude Code user-wide install:

claude mcp remove cbrt -s user
claude mcp list

If you installed Claude Code without -s user, run this from the project where you added it:

claude mcp remove cbrt

Claude Desktop: remove the "cbrt" entry from mcpServers in claude_desktop_config.json, then restart Claude Desktop.

Optional cache cleanup:

uv cache clean cbrt-mcp

Use From Source

To run the current GitHub version before a PyPI release:

codex mcp add cbrt \
  --env EVDS_TOKEN=paste-your-token-here \
  -- uvx --from git+https://github.com/emraher/cbrt-mcp cbrt-mcp

To run a local checkout:

codex mcp add cbrt \
  --env EVDS_TOKEN=paste-your-token-here \
  -- uvx --from /absolute/path/to/cbrt-mcp cbrt-mcp

EVDS Token

Most tools work offline from the bundled metadata. Only get_series_data() needs EVDS_TOKEN.

Get a free token from https://evds3.tcmb.gov.tr/ and pass it through your MCP client configuration. Do not commit tokens to the repository.

Tools

Tool Description Needs token?
suggest_series(query, limit) Suggest likely series codes with ranking and match context No
search_series(query, limit) Search bundled series metadata by keyword No
get_common_topic_series(topic) Return curated starter codes for common macro topics No
get_cbrt_reference(topic) Return built-in workflow and reference guidance No
get_series_brief(series_codes) Return compact descriptions with source and tag preview No
get_series_availability(series_codes) Return frequency and date-range summaries No
get_series_compare_ready(series_codes) Check whether multiple series are suitable for direct comparison No
get_series_metadata(series_codes) Look up metadata for exact series codes No
get_series_data(series_codes, start_date, end_date, formulas, preview, summary, max_rows) Download EVDS observations Yes

The bundled metadata snapshot contains 31,713 EVDS series. Live data requests are chunked for long date ranges to reduce the risk of truncated EVDS responses.

Example Prompts

Search for series related to usd exchange rate
Suggest the best CBRT series codes for Turkish policy rate data
Show me the built-in guidance for formula codes
Check the availability range for TP.DK.USD.A and TP.DK.EUR.A
Can TP.DK.USD.A and TP.FE.OKTG01 be compared directly?
Preview the first 5 rows of TP.DK.USD.A for 2023
Summarize TP.DK.USD.A coverage for 2023 without returning row data
Give me starter CBRT series for reserves

Development

uv run --frozen --extra dev pytest
uv build --no-sources
uvx twine check dist/*

The server entry point is:

uv run --frozen cbrt-mcp

See Publishing for the PyPI release workflow.

License

MIT

Metadata

Release files for cbrt-mcp 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for cbrt-mcp 0.2.2
File Size Uploaded
cbrt_mcp-0.2.2.tar.gz 839.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for cbrt-mcp 0.2.2
File Interpreter ABI Platform
cbrt_mcp-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 1.6 MB

Release files / cbrt_mcp-0.2.2.tar.gz

Download URL cbrt_mcp-0.2.2.tar.gz
Size 839.6 kB
Tags Source
SHA-256 checksum
How to use checksums
208760d8ebb9631ee090e96d76fb6eab650e349ead1eba0f998aa437278cbbda
BLAKE2b-256 checksum
How to use checksums
e8a829fc44617383fab6e2fbdaa5b492765cb6a7f61be89addc6d34fa012e699
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 13, 2026.

Transparency log

Release files / cbrt_mcp-0.2.2-py3-none-any.whl

Download URL cbrt_mcp-0.2.2-py3-none-any.whl
Size 773.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c8f03b342eafcf909f91b9a55e96864e37a1ab6c6dd90bed3f423e9159e6fc98
BLAKE2b-256 checksum
How to use checksums
8751a89ac5d13924b7c7be932262fd6fa710f8ca278480cf3d4e23dbd6b7383d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 13, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page