Exchange MCP Server

Convert currencies, get FX rates, and query historical ECB exchange rate data.

Remote serverstreamable-http

What is the Exchange MCP Server?

Convert currencies, get FX rates, and query historical ECB exchange rate data.

What it actually does

  • Declarative tool and resource definitions — single file per primitive, framework handles registration and validation
  • Unified error handling — handlers throw, framework catches, classifies, and formats
  • Typed error contracts with recovery hints — unsupported_currency, date_out_of_range, canvas_not_found, missing_table, invalid_query
  • Pluggable auth: none, jwt, oauth
  • Structured logging with optional OpenTelemetry tracing
  • STDIO and Streamable HTTP transports

Configuration

  • Bun v1.3.0 or higher (or Node.js v24+). - No API key — Frankfurter is free and keyless.

More MCP options

Compare MCP servers by category, or browse hosted MCP servers if you prefer an endpoint over a local process.

Maintainer setup documentation.

Recorded tools

Check the linked publisher documentation and your connected client's tool list. Names and availability can vary with the server version and account permissions.

ToolWhat it does
fx_list_currenciesList all ~30 ECB-supported ISO 4217 currencies with full names. Use before converting to disambiguate "dollars" (USD vs AUD vs CAD vs HKD vs SGD).
fx_get_ratesSnapshot of all available rates for a base currency at latest or a historical date. Optional symbols filter for smaller responses; listing the base itself returns a rate of 1 for it.
fx_get_rateExchange rate for a single currency pair at latest or a historical date. Surfaces date_snapped when a weekend/holiday request returns the prior business-day rate.
fx_convert_currencyConvert an amount between any two currencies at latest or a historical rate. Cross-rates are triangulated through EUR. Returns converted amount, rate used, rate date, and whether the date was snapped.
fx_get_timeseriesHistorical daily rates for a currency pair over a date range, never including a date outside it. Short ranges (≤90 days) are returned inline; when DataCanvas is enabled, long ranges spill to it with a canvas_id for SQL f
fx_dataframe_describeList DataCanvas tables and their columns from a prior fx_get_timeseries call. Required first step before fx_dataframe_query. Needs CANVAS_PROVIDER_TYPE=duckdb.
fx_dataframe_queryRun a read-only SQL SELECT against a DataCanvas table produced by fx_get_timeseries. Supports aggregations, GROUP BY, window functions, and JOINs across multiple registered tables. Needs CANVAS_PROVIDER_TYPE=duckdb.

How to install the Exchange MCP Server

{
  "mcpServers": {
    "exchange-rates-mcp-server": {
      "type": "streamable-http",
      "url": "https://exchange-rates.caseyjhand.com/mcp"
    }
  }
}

Configuration as documented by the project. Restart the client after saving.

Configuration

  • Bun v1.3.0 or higher (or Node.js v24+). - No API key — Frankfurter is free and keyless.
VariableDescriptionRequired
MCP_TRANSPORT_TYPEConfiguration value read at startup.Optional
MCP_LOG_LEVELConfiguration value read at startup.Optional
CANVAS_PROVIDER_TYPEConfiguration value read at startup.Optional
FRANKFURTER_BASE_URLEndpoint or connection string the server talks to.Yes

Example prompts to try

  • “Use Exchange to fx list currencies.”
  • “Use Exchange to fx get rates.”
  • “Use Exchange to fx get rate.”

Frequently asked questions

Convert currencies, get FX rates, and query historical ECB exchange rate data. Confirm the tools offered by your installed version in the connected client. Tool availability and permissions depend on the server and account configuration.