Convert currencies, get FX rates, and query historical ECB exchange rate data.
Convert currencies, get FX rates, and query historical ECB exchange rate data. The exchange mcp server wraps that behind the Model Context Protocol, so an assistant can use it through 9 defined tools rather than through you.
Being a remote server, there is no local install. You register the endpoint with your client, authorise it once, and the tools appear.
Everything the assistant can do here goes through one of these:
fx_list_currencies — List 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_rates — Snapshot of all available rates for a base currency at latest or a historical date. Optional symbols filter for smaller responses; listing the basefx_get_rate — Exchange rate for a single currency pair at latest or a historical date. Surfaces date_snapped when a weekend/holiday request returns the priorfx_convert_currency — Convert an amount between any two currencies at latest or a historical rate. Cross-rates are triangulated through EUR. Returns converted amount, ratefx_get_timeseries — Historical daily rates for a currency pair over a date range, never including a date outside it. Short ranges (≤90 days) are returned inline; whenfx_dataframe_describe — List DataCanvas tables and their columns from a prior fx_get_timeseries call. Required first step before fx_dataframe_query. Needsfx_dataframe_query — Run a read-only SQL SELECT against a DataCanvas table produced by fx_get_timeseries. Supports aggregations, GROUP BY, window functions, and JOINsPrerequisites — The Prerequisites tool exposed by this serverInstallation — The Installation tool exposed by this serverYou will need 4 environment variables: MCP_TRANSPORT_TYPE, MCP_LOG_LEVEL, CANVAS_PROVIDER_TYPE, FRANKFURTER_BASE_URL. The server will not start without them, which is usually why the tools fail to appear on a first run. Keep credentials in your client's env block or a secrets manager rather than in a file you might commit.
Among the database access options, the useful question is rarely "what can it do" but "what does it cost you to run" — permissions, credentials, and how much of your context its toolset consumes. Exchange's toolset — fx_list_currencies, fx_get_rates, fx_get_rate and 6 more — is a fair guide to whether it matches your workflow. It is maintained by cyanheads; worth a glance at recent repository activity before you build anything load-bearing on it.
This entry was verified against Exchange's own documentation before publication; SyncDev keeps the directory reviewed rather than auto-generated.
| Tool | What it does |
|---|---|
| fx_list_currencies | List 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_rates | Snapshot 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_rate | Exchange 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_currency | Convert 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_timeseries | Historical 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_describe | List 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_query | Run 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. |
| Prerequisites | The Prerequisites tool exposed by this server. |
| Installation | The Installation tool exposed by this 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.
| Variable | Description | Required |
|---|---|---|
| MCP_TRANSPORT_TYPE | Configuration value read at startup. | Optional |
| MCP_LOG_LEVEL | Configuration value read at startup. | Optional |
| CANVAS_PROVIDER_TYPE | Configuration value read at startup. | Optional |
| FRANKFURTER_BASE_URL | Endpoint or connection string the server talks to. | Yes |
Read-only SQL access to Postgres — let your assistant inspect schemas and answer questions from real data.
Manage your whole Supabase project in conversation — database, auth, storage, Edge Functions and branches.
Query, modify and analyse local SQLite databases in conversation — the fastest way to chat with a data file.
Metabase ships its own MCP endpoint — search your BI content, build and run queries, and save questions and dashboards without leaving the chat.
Official MongoDB server covering data, schemas and Atlas management — from find queries to spinning up clusters.
Serverless Postgres with database branching — point your assistant at Neon and let it work on disposable copies.