Exchangerate.dev

Keyless FX rates for AI agents — 465 currency pairs across 31 currencies, source + market_session freshness labels on every response, daily history back to 1999.

Documentation

@nusantara-ventures/exchangerate-mcp

Renamed. This package was previously published as exchangerate-dev-mcp. That name is deprecated and will not receive updates — install @nusantara-ventures/exchangerate-mcp instead. No API changes came with the move.

Stdio bridge for exchangerate.dev — indicative, session-aware developer-grade FX reference rates for AI agents. Live exchange rates, currency conversion, and historical FX data for Claude, Cursor, and any MCP (Model Context Protocol) client. Indicative rates (aggregated market data + public reference rates), not for settlement or trading.

Thin proxy: the bridge holds no tool definitions or schemas. Every tool is served live from the api.exchangerate.dev HTTP MCP endpoint, so descriptions and schemas are always up to date.

Prefer a remote connection? The server also runs directly at https://api.exchangerate.dev/v1/mcp/ (streamable HTTP) and is listed in the official MCP registry as dev.exchangerate/mcp — no install needed:

claude mcp add --transport http exchangerate-dev https://api.exchangerate.dev/v1/mcp/

Quick start

{
  "mcpServers": {
    "exchangerate-dev": {
      "command": "npx",
      "args": ["-y", "@nusantara-ventures/exchangerate-mcp"]
    }
  }
}

An API key is required. Get one at https://exchangerate.dev/pricing — the Free tier includes MCP access. To run without a key on the shared anonymous free-tier pool, also set ALLOW_ANONYMOUS=true:

{
  "mcpServers": {
    "exchangerate-dev": {
      "command": "npx",
      "args": ["-y", "@nusantara-ventures/exchangerate-mcp"],
      "env": { "EXCHANGERATE_API_KEY": "your-key-here" }
    }
  }
}

Tools

ToolWhat it does
list_currenciessupported currencies + type/decimals metadata
get_ratesingle pair, live or historical
convertamount conversion with correct minor-unit rounding
get_rangetime series for charting/analysis
search_docslets the agent look up API behavior itself

Every response is freshness-labeled: a source field says whether the number came from the live intraday stream (~60s updates on trading days for actively-traded currencies) or the ECB daily reference, and market_session says whether the FX market is currently open.

Env

VariableRequiredDefaultDescription
EXCHANGERATE_API_KEYYes*Bearer token for API access. Required by default.
ALLOW_ANONYMOUSNoSet to "true" to allow anonymous free-tier access without an API key. Shares the free-tier rate-limit pool; no audit trail.
EXCHANGERATE_BASE_URLNohttps://api.exchangerate.devOverride API origin (testing / staging).
EXCHANGERATE_TIMEOUTNo10000Request timeout in milliseconds.

* Set ALLOW_ANONYMOUS=true to opt into anonymous free-tier access instead.

Development

npm install
npm run build   # tsc -> dist/

Docs

Full API reference and pricing: exchangerate.dev/docs — the REST API is Frankfurter-compatible (base + symbols params) if you'd rather skip MCP and curl it.

MIT © Nusantara Ventures LLC