Currency Exchange

io.github.theluckystrike由 GitHub 帳號 theluckystrike 發布v0.21.1更新於 Oct 24, 2026

Convert currencies on the daily European Central Bank reference rates. No API key, no signup.

發布方自己的服務:Exchange.news — Crypto offers, campaigns and news

已驗證Streamable HTTP可網頁執行金融資料與分析

概覽

AI 產生的概覽

依歐洲央行每日參考匯率換算貨幣金額,並附上匯率日期、歷史走勢與交叉匯率。

可以做什麼
  • 查詢以任意基準貨幣表示的最新歐洲央行參考匯率,並列出所有報價貨幣及其歐元匯率與小數位數
  • 在兩種貨幣之間換算金額(今天或過去某日),或把一筆金額依同一匯率日期換算成多種貨幣
  • 取得某一貨幣對在指定日期或某段期間的匯率,含最小值、最大值、平均值與變動
  • 產生多幣別重開票與發票所需的 fx_rates 物件及匯率日期
  • 查看本機匯率快取與授權等級,並啟用 Pro 金鑰
適用情境
適合需要帶日期、有出處的匯率來製作發票、費用重開票、記帳或報表的情境,也適合希望首次下載後可離線使用的使用者。不適用於即時交易匯率。
執行需求
以本機程序執行(.mcpb 一鍵包,或以 Node.js 複製原始碼建置;npm 套件據說明尚未發布),也可使用遠端端點。遠端端點需在 Authorization 標頭提供 bearer 權杖,可為匿名權杖或 Pro 授權金鑰。Pro 功能也可透過 MCP_LICENSE_KEY 環境變數啟用。更新匯率需能連線至歐洲央行匯率檔案,可用 ECB_BASE_URL 指向鏡像站。
安裝前請注意
Pro 功能(超過 90 天的歷史、回溯至 1999 年)為一次性付費購買,授權金鑰屬機密,會以 bearer 權杖或經 MCP_LICENSE_KEY 傳遞。匯率為歐洲央行參考匯率,供記帳與報表使用,並非交易匯率;以 6 位小數的 rate 手動重算可能相差一兩個最小單位。週末與假日日期會回退到最近一次公布的匯率。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 Currency Exchange,將其新增到工作區。
  2. 連接 Authorization token 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.theluckystrike%2Fcurrency-exchange/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。

{
  "mcpServers": {
    "currency-exchange": {
      "type": "http",
      "url": "https://mcp.zovo.one/mcp/currency-exchange",
      "headers": {
        "Authorization": "Bearer <YOUR_TOKEN>"
      }
    }
  }
}

README

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.

In the official MCP Registry (io.github.theluckystrike/currency-converter-ecb-rates-daily-keyless).

Listed on the AI Product Index - live remote endpoint at mcp.zovo.one/s/currency, free tier, no signup.

[currency demo]

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_config.json):

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

Claude Code:

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

(.cursor/mcp.json):

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:

sh
git clone https://github.com/theluckystrike/mcp-servers.git && cd mcp-serversnpm installnpm 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

ToolWhat it does
rates_latestThe latest ECB reference rates, re-expressed against any base. Optional quotes to narrow the list.
convertConvert an amount between two currencies, today or on a past date. States the rate, the rate date and the rounding.
convert_manyOne amount into several currencies at once, all off the same rate date.
fx_rates_forReturns the fx_rates object the expense tracker's expense_to_invoice takes, plus the rate date.
rate_historyA pair over a window, with min, max, average and the change across it.
rate_onThe rate on one date, falling back to the last published rate on or before it and saying so. Both directions are returned (rate and inverse_rate) and published_direction names which way round the ECB itself quotes the pair, so the reciprocal is never relayed as the published figure.
currencies_listEvery currency the ECB quotes, with its euro rate and its number of decimal places.
cache_statusWhat is cached, how old it is, when it refreshes next, and where it lives.
license_status / license_activateCheck 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

FreePro ($19 one-time)
Latest rates, convert, convert_many, fx_rates_forYes, unlimitedYes, unlimited
CurrenciesAll 30+ the ECB quotesAll 30+ the ECB quotes
Rate historyUp to 90 days per call, back 90 days; a wider window is shortened and answered, cap namedUnlimited windows, back to 1999-01-04
rate_onLast 90 daysAny date since 1999-01-04
Offline cacheYesYes

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-tracker, expense_to_invoice takes target_currency plus an fx_rates object and folds a multi-currency expense set into one invoice currency, but it will not fetch or invent a rate. fx_rates_for {target, currencies} here returns exactly that object. "Rebill Nova in USD" then works end to end without the user typing a single exchange rate.
  • invoice, one invoice carries one currency. Convert first, issue second, and put the returned invoice_note ("Converted at ECB reference rates of 2026-09-02") on the document so the client can check it.
expense_to_invoice {project, from, to}          -> which currencies are actually presentfx_rates_for {target: "USD", currencies: [...]} -> {"EUR": 1.0812, "GBP": 1.2717}, rate dateexpense_to_invoice {..., target_currency: "USD", fx_rates: {...}} -> one currency, every line annotatedinvoice_create {currency: "USD", items: [...]}  -> the document

How the rates work

  • Source: the ECB euro foreign exchange reference rates, eurofxref-daily.xml and eurofxref-hist.xml.
  • Published around 16:00 CET on TARGET business days. There is no rate for a weekend, 1 January, Good Friday, Easter Monday, 1 May, or 25 and 26 December.
  • Asking for a date with no rate returns the last rate published on or before it, the convention every bank uses, and the answer says which date it landed on and why. A date inside the cached range with no rate is a weekend or a TARGET holiday and is named as one; a date after the newest day in the cache is reported as not published yet, with the cache's latest date and whether this call went to the ECB to look for it.
  • The ECB quotes everything against the euro, so a USD/PLN rate is a cross rate: the ratio is formed and multiplied at full precision, and the only rounding in the path is the last one, to the target currency's minor units. The answer carries both numbers: rate_exact is the multiplier, rate is the same rate rounded to 6 decimals for reading. Recomputing by hand from the 6-decimal rate can differ by a minor unit or two; it is far out for pairs whose rate is nowhere near 1 (1,000,000 VND is KWD 11.667, not KWD 12.000).
  • Results are rounded to the target currency's own ISO 4217 minor units: JPY comes back whole, BHD to three places.
  • These are reference rates for accounting and reporting. They are not dealing rates; your bank's rate will differ.

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: [email protected]. Built by theluckystrike.

Use these docs as an MCP server

Any MCP client (Claude, Cursor, Windsurf, VS Code) can read this repository's documentation directly via GitMCP - no install:

來源:servers/currency/README.md,提交 6535b33

工具

10

rates_latest

Latest ECB reference rates

Call this tool for the latest ECB daily reference rates against any base: 1.0812 for USD means 1 base = 1.0812 USD. Crosses go through the euro. Returns the ECB rate date and the cache age.

輸入參數basequotes

convert

Convert an amount

Call this tool to convert an amount between any two ECB-quoted currencies, today or on a past date. Returns the converted amount, the cross rate to 6 decimals, the rounding applied and the rate date used.

輸入參數todatefrom必填amount必填

convert_many

Convert one amount into several currencies

Convert one amount into many currencies off the SAME ECB rate date, each rounded to its own minor units. For several lines at once (mixed-currency invoice lines), call it once per line: every line then shares one rate date. Unknown targets are listed, never failed.

輸入參數to必填from必填amount必填

fx_rates_for

FX rates in the shape expense-tracker wants

Call this tool when a rebill or an invoice spans more than one currency, instead of asking the user for rates. Returns the fx_rates object expense_to_invoice takes, plus the rate date to write on the invoice.

輸入參數targetcurrencies必填

rate_history

Rate history for a pair

Call this tool for the ECB rate of one currency pair across a window. Returns one row per published day plus the min, max, average and the change. A window wider than the free 90 days is shortened, not refused.

輸入參數to必填daysfrom必填to_datemax_rowsfrom_date

rate_on

Rate on a given date

Call this tool for the ECB rate of one pair on one date. Returns both directions and the rate date, so a reciprocal is never reported as the published figure. A date beyond the free window is shortened, never refused.

輸入參數to必填date必填from必填

currencies_list

Currencies the ECB quotes

Every currency in the ECB daily set with its rate against the euro and its decimal places. This is the whole domain: a code not on this list cannot be converted, quoted or historised here.

無需輸入參數。

cache_status

Rate cache status

Report the ECB rate cache here: which dates are held, how old they are and when they refresh. Reads only. Check it before trusting a rate after time offline; a cache that no longer parses is quarantined and named.

無需輸入參數。

license_status

License status

Report this endpoint's licence state for your token as JSON: the product, the tier free or pro, why it is not Pro, and the checkout URL. Call it to explain a free-tier refusal. No arguments, nothing changes.

無需輸入參數。

license_activate

Activate license

Turn Pro on for this connection with key, an MCPL1.<payload>.<signature> issued at checkout for this server or the bundle. Data under your token stays; a wrong or expired key changes nothing. license_status confirms it.

輸入參數key必填

版本歷史

2
  1. v0.21.1最新Sep 23, 2026
  2. v0.21.0Sep 16, 2026

評分

已滿足適用檢查項的 100%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具必需15 分
  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分

其他 Exchange 整合