Currency

io.github.theluckystrike由 GitHub 账号 theluckystrike 发布v0.22.6更新于 Oct 24, 2026

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

已验证STDIO仅桌面金融数据与分析

概览

AI 生成的概览

使用欧洲央行每日欧元参考汇率在货币之间换算金额,并给出汇率日期、历史走势与本地离线缓存。

可以做什么
  • 获取以任意基准货币表示的最新欧洲央行参考汇率,可按需缩小到指定货币
  • 在两种货币之间换算金额(今天或过去某日),或把一笔金额一次换算成多种货币
  • 查询某一日期的汇率,或某货币对在一段时间内的最低、最高、平均值与变化
  • 列出欧洲央行报价的全部货币及其欧元汇率和小数位数,并查看本地缓存状态
  • 为配套的记账工具生成 fx_rates 对象,以及查询或激活 Pro 许可证密钥
适用场景
适合需要助手给出带日期、可核对的参考汇率来回答货币问题的场景,例如换算发票或报销金额、查询历史汇率,或在首次下载后离线使用。
运行要求
以本地进程运行。npm 包尚未发布,需安装 .mcpb 包或用 Node.js 与 npm 从源码构建。无需 API 密钥或账号。仅在刷新缓存汇率文件时访问欧洲央行网站,可用 ECB_BASE_URL 指向镜像。仅 Pro 功能需要许可证密钥。
安装前请注意
免费版的历史与过去日期查询限制在 90 天内,更宽的时间窗口和 1999 年以来的日期需要付费 Pro 密钥,通过 MCP_LICENSE_KEY 或 license_activate 提供。汇率为供会计使用的每日参考汇率,并非交易汇率;周末和节假日会回退到最近一次公布的汇率。服务器会写入本地缓存目录,可删除以重置。

安装

在 SourceWeft 中

  1. 打开 控制台中的 Currency,将其添加到工作区。
  2. 为需要使用其工具的对话启用该服务。

Desktop only,通过 STDIO。 STDIO 服务会启动本地进程,因此需要 SourceWeft 桌面宿主。

其他 MCP 客户端

参照 仓库 中的启动说明。

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,提交 1bd9d69

工具

0
SourceWeft 尚未在沙箱中启动过该软件包,因此其工具未知。

版本历史

2
  1. v0.22.6最新Oct 14, 2026
  2. v0.22.1Sep 18, 2026

评分

已满足适用检查项的 50%

该评分衡量此收录条目的完整程度,依据注册中心条目、端点与公开来源计算得出。它不是对服务器本身的评价,也不表示服务器安全或当前可用:可连通性是带日期的检查结果,评分也不包含安装量或用户评价。

  • 近 30 天内可连通25 分

    请保持端点能够响应 MCP 握手;SourceWeft 每 30 天探测一次。

  • 已声明认证方式10 分

    请在注册中心条目中声明凭据请求头,或保持端点能够响应探测,以便判定其认证方式。

  • 已列出工具15 分

    请让服务器在无凭据时响应 tools/list,或发布可在沙箱中无凭据启动的软件包。

  • 描述必需15 分
  • 图标10 分
  • 文档15 分
  • 许可证10 分