All servers · Buy Pro $19 · Source · Claude Desktop bundle (.mcpb)

mcp-currency

Ask your assistant what something is worth in another currency and get a real answer with a date on it. It reads the European Central Bank's daily euro foreign exchange reference rates -- the same published series banks, tax authorities and accountants use -- converts amounts between any of the currencies the ECB quotes, and shows how a pair has moved over time. There is no API key, no account and no rate limit, because the ECB publishes the file openly. Both files are cached on your own machine, so after the first download every answer is instant and the server keeps working on a plane. Every answer states which rate date it used, because ECB rates are published once a day and a Sunday carries Friday's rate.

Built by theluckystrike.

mcp-currency

Real ECB exchange rates in your chat -- no API key, cached locally, works offline.

60-second install

npm publish for @theluckystrike/mcp-currency is pending. Until then, the .mcpb one-click bundle or a clone+build is the working path -- both are verified below.

One-click (.mcpb): download currency.mcpb from the latest release and double-click it in Claude Desktop: https://github.com/theluckystrike/mcp-servers/releases/latest

Claude Desktop (claude_desktop_config.json):

{
  "mcpServers": {
    "currency": {
      "command": "npx",
      "args": ["-y", "@theluckystrike/mcp-currency"]
    }
  }
}

Claude Code:

claude mcp add currency -- npx -y @theluckystrike/mcp-currency

Cursor (.cursor/mcp.json):

{
  "mcpServers": {
    "currency": {
      "command": "npx",
      "args": ["-y", "@theluckystrike/mcp-currency"]
    }
  }
}

The npx form above starts working the moment the package is published. Until then, use the .mcpb bundle above, or build from source with exactly these three commands:

git clone https://github.com/theluckystrike/mcp-servers.git && cd mcp-servers
npm install
npm run build -w packages/mcp-license -w servers/currency

Then point your client's command at node with one arg: the absolute path to servers/currency/dist/index.js.

To run in Pro mode set MCP_LICENSE_KEY in the same config block, or call license_activate once with your key.

Tools

Tool What it does
rates_latest The latest ECB reference rates, re-expressed against any base. Optional quotes to narrow the list.
convert Convert an amount between two currencies, today or on a past date. States the rate, the rate date and the rounding.
convert_many One amount into several currencies at once, all off the same rate date.
fx_rates_for Returns the fx_rates object the expense tracker's expense_to_invoice takes, plus the rate date.
rate_history A pair over a window, with min, max, average and the change across it.
rate_on The rate on one date, falling back to the last published rate on or before it and saying so.
currencies_list Every currency the ECB quotes, with its euro rate and its number of decimal places.
cache_status What is cached, how old it is, when it refreshes next, and where it lives.
license_status / license_activate Check or activate a Pro key. Verified offline.

Resource fx://latest exposes the cached rates as JSON. Prompt convert_invoice_lines walks the whole expense-tracker -> currency -> invoice chain in one step.

Free vs Pro

Free Pro ($19 one-time)
Latest rates, convert, convert_many, fx_rates_for Yes, unlimited Yes, unlimited
Currencies All 30+ the ECB quotes All 30+ the ECB quotes
Rate history Up to 90 days per call, back 90 days Unlimited windows, back to 1999-01-04
rate_on Last 90 days Any date since 1999-01-04
Offline cache Yes Yes

A refused history window returns the reason and the exact narrower call to make; it never silently truncates a table and it never returns a transport error.

Get Pro: https://mcp.zovo.one/buy/currency (or $39 for the whole bundle: https://mcp.zovo.one/buy/bundle)

Pairs with

expense_to_invoice {project, from, to}          -> which currencies are actually present
fx_rates_for {target: "USD", currencies: [...]} -> {"EUR": 1.0812, "GBP": 1.2717}, rate date
expense_to_invoice {..., target_currency: "USD", fx_rates: {...}} -> one currency, every line annotated
invoice_create {currency: "USD", items: [...]}  -> the document

How the rates work

Privacy

All data stays local. The only network request this server makes is to www.ecb.europa.eu for the two public rate files, and only when the local copy is older than 6 hours (daily) or 24 hours (history). Nothing about your amounts, your currencies or your machine is sent anywhere. The cache lives in ${XDG_DATA_HOME:-~/.local/share}/mcp-servers/currency/; delete that directory to reset the server. Set ECB_BASE_URL to point at your own mirror if outbound access is restricted.

MIT licensed. Support: support@zovo.one. Built by theluckystrike.

Set it up in your client

Exact config path, entry and caveats: Claude Desktop · Claude Code · Cursor · VS Code · Windsurf · Cline · all clients

Compared with the alternatives

MCP Currency Converter vs exchange-mcp and tcmb_mcp: which MCP server to pick · all comparisons

Guides

How to track billable hours inside Claude Code and Cursor · Create an invoice PDF from a chat message with an MCP server · Ask questions about an Excel or CSV file from Cursor or Claude · Watch a product price with Claude and get told when it drops · What the free tier includes and what Pro adds · Log expenses and mileage in Claude, split VAT, rebill to an invoice · Convert currencies in Claude with real ECB rates, no API key · Generate Word proposals and contracts from a chat message · Find a meeting time across time zones without doing the arithmetic · All guides