tcmb_mcp

ofurkanuygur/tcmb_mcp

3.1

If you are the rightful owner of tcmb_mcp and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.

Production-ready MCP server for Turkish Central Bank (TCMB) exchange rates.

Tools
6
Resources
0
Prompts
0

TCMB MCP

Production-ready MCP (Model Context Protocol) server for Turkish Central Bank (TCMB) exchange rates.

Features

  • Current Rates: Get today's exchange rates from TCMB
  • Historical Rates: Query rates for any date since 1996
  • Currency Conversion: Convert between any currencies (including TRY)
  • Rate History: Get rate history with statistics (min, max, avg, change %)
  • Multi-Currency Comparison: Compare multiple currencies over time
  • Smart Caching: SQLite-based cache with configurable TTL
  • Holiday Support: Automatic fallback to previous business day
  • Turkish Holidays: Includes all official and religious holidays

Installation

Using Smithery (Recommended)

Install directly via Smithery:

npx -y @smithery/cli install @ofurkanuygur/tcmb_mcp --client claude

Using uv (Local Development)

git clone https://github.com/ofurkanuygur/tcmb_mcp.git
cd tcmb_mcp
uv venv
source .venv/bin/activate  # Windows: .venv\Scripts\activate
uv pip install -e .

Using pip

pip install tcmb-mcp

Usage

Claude Desktop Configuration

Add to your Claude Desktop config file:

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json Windows: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "tcmb": {
      "command": "python",
      "args": ["-m", "tcmb_mcp"],
      "env": {
        "TCMB_CACHE_ENABLED": "true",
        "TCMB_DEBUG": "false"
      }
    }
  }
}

Running Manually

# stdio mode (default, for Claude Desktop)
python -m tcmb_mcp

# HTTP mode (for Smithery deployment)
MCP_TRANSPORT=http python -m tcmb_mcp

Testing with MCP Inspector

npx @modelcontextprotocol/inspector python -m tcmb_mcp

Available Tools

1. tcmb_get_current_rates

Get current exchange rates from TCMB.

Dolar ve Euro kurunu göster
→ tcmb_get_current_rates(currencies=["USD", "EUR"])

2. tcmb_get_historical_rates

Get exchange rates for a specific date.

15 Ocak 2024 kurlarını getir
→ tcmb_get_historical_rates(date="2024-01-15")

3. tcmb_list_currencies

List all available currencies.

Hangi para birimleri var?
→ tcmb_list_currencies()

4. tcmb_convert_currency

Convert between currencies.

1000 Dolar kaç TL?
→ tcmb_convert_currency(amount=1000, from_currency="USD", to_currency="TRY")

5. tcmb_get_rate_history

Get rate history with statistics.

Son 30 günde Dolar nasıl değişti?
→ tcmb_get_rate_history(currency="USD", start_date="2024-11-01", end_date="2024-11-30")

6. tcmb_compare_currencies

Compare multiple currencies.

Dolar, Euro ve Sterlin'i karşılaştır
→ tcmb_compare_currencies(target_currencies=["USD", "EUR", "GBP"])

Configuration

Environment Variables

VariableDefaultDescription
TCMB_CACHE_ENABLEDtrueEnable SQLite caching
TCMB_CACHE_DB_PATH~/.cache/tcmb-mcp/tcmb_cache.dbCache database path
TCMB_CACHE_TTL_TODAY3600Cache TTL for today (seconds)
TCMB_CACHE_TTL_HISTORICAL31536000Cache TTL for historical (seconds)
TCMB_TIMEOUT10API timeout (seconds)
TCMB_MAX_RETRIES3Maximum retry attempts
TCMB_DEBUGfalseEnable debug logging
TCMB_LOG_LEVELINFOLog level
MCP_TRANSPORTstdioTransport mode (stdio or http)
PORT8080HTTP server port (when using HTTP transport)

Development

Setup

git clone https://github.com/ofurkanuygur/tcmb_mcp.git
cd tcmb_mcp
uv venv
source .venv/bin/activate
uv pip install -e ".[dev]"

Running Tests

# All tests
pytest

# With coverage
pytest --cov=src/tcmb_mcp --cov-report=term-missing

# Unit tests only
pytest tests/unit/

Code Quality

# Linting
ruff check src/

# Type checking
mypy src/

Local HTTP Server Testing

# Start server in HTTP mode
MCP_TRANSPORT=http python -m tcmb_mcp

# Test with Smithery playground
npx -y @smithery/cli playground --port 8080

Docker

Build

docker build -t tcmb-mcp .

Run

docker run -p 8080:8080 tcmb-mcp

API Reference

TCMB URL Format

  • Today's rates: https://www.tcmb.gov.tr/kurlar/today.xml
  • Historical: https://www.tcmb.gov.tr/kurlar/YYYYMM/DDMMYYYY.xml
    • Example: January 15, 2024 → /kurlar/202401/15012024.xml

Rate Types

TypeTurkishDescription
forex_buyingDöviz AlışElectronic transfer buying rate
forex_sellingDöviz SatışElectronic transfer selling rate
banknote_buyingEfektif AlışCash buying rate
banknote_sellingEfektif SatışCash selling rate

Author

Oktay Furkan Uygur

Acknowledgments

  • TCMB for providing public exchange rate data
  • Anthropic for the MCP protocol
  • Smithery for MCP server hosting