
Realtime Exchange Rate Mcp
io.github.cahthuranag由 GitHub 帳號 cahthuranag 發布v0.3.3更新於 Oct 24, 2026
Real-time currency exchange rates, historical data, and multi-currency lookups for MCP clients.
概覽
本機 stdio MCP 伺服器,讓助理透過 AllRatesToday API 查詢即時中間價匯率、歷史匯率序列與央行官方匯率。
- 可以做什麼
- 查詢單一貨幣對的目前匯率,或一次查詢多個目標貨幣
- 取得貨幣對在 1d、7d、30d、1y 期間的歷史匯率序列
- 列出支援的貨幣代碼、名稱與符號,以及涵蓋的央行與稅務機關
- 取得指定機構發布的最新官方匯率表,或每日參考匯率
- 未設定金鑰時可自行申請短期試用金鑰
- 適用情境
- 適合需要助理以真實資料回答匯率換算、多幣別比較或匯率走勢問題的情境。沒有金鑰也能以受限模式運作,因此也適合低成本試用官方央行匯率資料。
- 執行需求
- 透過 npx 以 stdio 在本機執行,需要 Node.js 18 以上版本。ALLRATES_API_KEY 為選用,但即時中間價與多目標查詢需要它;歷史與指定日期資料需付費方案。可用 ALLRATES_BASE_URL 覆寫 API 位址。需要連線至 allratestoday.com。
安裝
在 SourceWeft 中
- 開啟 儀表板中的 Realtime Exchange Rate Mcp,將其新增到工作區。
- 為需要使用其工具的對話啟用該服務。
Desktop only,透過 STDIO。 STDIO 服務會啟動本機處理程序,因此需要 SourceWeft 桌面主機。
其他 MCP 客戶端
參照 儲存庫 中的啟動說明。
README
Realtime Exchange Rate MCP Server — @allratestoday/mcp-server
A Model Context Protocol server that lets Claude Code, Cursor, Claude Desktop, Windsurf, and any other MCP-compatible client fetch real-time currency rates, historical series, and multi-currency lookups from the AllRatesToday API. Rates are mid-market, with no retail spread.
[Powered by AllRatesToday] [npm version] [npm downloads] [CI] [MCP] [TypeScript] [License]
English | 简体中文
After installation, your assistant can answer questions like:
- "What's the current USD to EUR rate?"
- "Show me how GBP/JPY moved over the last 30 days."
- "Convert 250 USD into CAD at a real rate."
- "Compare USD against EUR, GBP, and JPY simultaneously."
- "List every supported currency."
- "What is the official ECB rate for USD today?"
This README documents the npm package @allratestoday/mcp-server (current version 0.7.6). Its source lives in AllRates-Today/mcp-server.
🚀 Features
- 💱 Live mid-market rates — current rate for any supported ISO 4217 pair
- 📈 Historical series built in —
1d(hourly),7d(daily),30d(daily),1y(weekly) - 🧰 Eight focused tools —
get_exchange_rate,get_historical_rates,get_rates_authenticated,list_currencies,list_central_banks,get_official_rates,get_reference_rate,request_trial_key; a small surface the model uses correctly (the hosted endpointhttps://allratestoday.com/api/mcplists 11: these plusget_official_rate_history,compare_official_rates,get_publication_calendar) - 🏛️ Official rates — the latest table from 121 central banks + 3 tax authorities, keyless
- 🔌 Works everywhere MCP does — stdio transport, MCP SDK 1.x; Claude Code, Cursor, Claude Desktop, Windsurf, or any generic stdio host
- 🔓 Works with no API key — starts in keyless mode and never exits for a missing key; keyless answers say which official table they came from and its
rate_date - 🛡️ Honest errors — relays upstream API errors instead of guessing, and tools that need a key say how to get one
- 🔒 Nothing leaks — only the request parameters and your API key ever reach allratestoday.com; never conversation context
- 📦 Two runtime dependencies —
@modelcontextprotocol/sdkandzod; Node.js ≥ 18
With a key, get_exchange_rate, get_historical_rates and get_rates_authenticated return a mid-market rate — the right number for price display and conversion. It is not the official rate a tax authority or auditor may require; for those use get_official_rates (latest published table of any of 121 central banks + 3 tax authorities, keyless), or see the AllRatesToday docs.
🔑 Get your API key
The key is optional. Without ALLRATES_API_KEY the server starts in keyless mode:
A free key unlocks real-time mid-market rates for 160+ currencies and multi-target lookups. All history and dated rates — mid-market history, point-in-time lookups, dated official and reference-rate tables — need a paid plan; free and trial keys get 403 historical_requires_paid_plan (pricing).
- Register at allratestoday.com/register
- Verify your email
- Copy your key from the dashboard (format:
art_live_xxxxx) - Use it as
ALLRATES_API_KEYin the configs below
If the key is missing, the server prints a short keyless-mode summary on stderr and keeps running — it never exits for a missing key.
📦 Installation
The simplest install is zero-install via npx, which is what every config below uses:
Both commands launch the stdio MCP server and wait for a client to connect — they are not meant to be run interactively from your shell; your MCP client launches them as a subprocess.
🏁 Quick start
Each client reads MCP servers from a different config file. Pick yours below.
Claude Code
The fastest path uses the built-in CLI:
Restart Claude Code, then ask: "What's the current USD to EUR rate?"
Cursor
Edit ~/.cursor/mcp.json (or .cursor/mcp.json inside your project for a project-scoped server):
Restart Cursor. The eight tools should appear in the MCP tool picker.
Claude Desktop
Edit the config file (path depends on OS):
Fully quit and reopen Claude Desktop (Cmd+Q on macOS, right-click tray icon → Exit on Windows). Closing the window alone keeps the old config loaded.
Windsurf
Edit ~/.codeium/windsurf/mcp_config.json with the same mcpServers block as above, then restart Windsurf.
Generic stdio MCP client
Any MCP host that supports stdio transport works. The launch command is:
…optionally with ALLRATES_API_KEY set in the subprocess environment. The same block, ready to copy, also lives in .mcp.json in this repo; smithery.yaml describes the same stdio launch for Smithery, and server.json is the MCP registry manifest.
Verify it works
- Server starts — open the client. It starts with or without a key, so a red dot or "failed to connect" means the client could not launch it — usually
npxor Node ≥ 18 (see Troubleshooting). - Tools are listed — most clients have a "tools" or "MCP" panel showing all eight tools.
- A live call returns a number — ask "What's the current USD to EUR rate?" The assistant should call
get_exchange_rate(source: "USD", target: "EUR")and reply with a real rate. If it produces a number without a tool call, the server is not connected.
📚 API reference
Only get_historical_rates and get_rates_authenticated require ALLRATES_API_KEY: a free key covers latest multi-target rates; get_historical_rates and time need a paid plan. Input schemas set additionalProperties: false — unknown fields are rejected. Full per-tool reference: mcp-server README.
get_exchange_rate
Current mid-market rate between two currencies. Calls GET /rate with a key; keyless it calls GET /open/central-bank/{bank} (ECB first, then the bank issuing the target, then the source currency).
Response with a key:
Response keyless (USD → GBP is not in the ECB table, so the Bank of England answers; derived: true because it publishes the inverse):
get_historical_rates
Time-series data points for a currency pair over a fixed period. Calls GET /historical-rates. Needs an API key on a paid plan (free and trial keys get a 403).
Granularity per period:
Response (truncated):
get_rates_authenticated
Multiple targets in one call, with an optional historical timestamp or grouping window. Calls GET /v1/rates.
Response — { rates: [{ rate, source, target, time }] }:
list_currencies
All supported currencies with codes, names, and symbols. Calls GET /v1/symbols, cached 24 h upstream — cheap to call for validating user input before the other tools.
Input — none.
Response (truncated):
list_central_banks
Every official source — 121 central banks plus HMRC, the US Treasury and Swiss BAZG — with the code that get_official_rates takes as bank. Keyless. Calls GET /open/central-banks (or /v1/central-banks with a key).
get_official_rates
The fixed, citable rate an institution published. Input: bank (required), optional date (YYYY-MM-DD, paid plan — a free key gets 403 Historical central bank rates require a paid plan), optional source + target for one pair. Keyless for the latest table.
🗺️ Currencies covered
Every currency the AllRatesToday API serves is available through these tools — call list_currencies for the authoritative live list. Commonly used codes include:
🇺🇸 USD · 🇪🇺 EUR · 🇬🇧 GBP · 🇯🇵 JPY · 🇨🇦 CAD · 🇮🇳 INR
The source and target fields of get_exchange_rate and get_historical_rates are validated as exactly three characters, so pass ISO 4217 codes, not currency names.
⚙️ Environment variables
Set these in your MCP client's config (in the env block), not in your shell — MCP servers are launched as subprocesses with isolated environments.
🛡️ Error handling
Tool failures come back as an MCP tool result with isError: true. The text is AllRatesToday error (<status>): <message>.
Errors raised locally, before any HTTP call:
- Keyless call to
get_rates_authenticated(notime) →… needs an AllRatesToday API key. The free tier covers it — sign up at https://allratestoday.com/register … - Keyless call to
get_historical_rates, orget_rates_authenticatedwithtime→… needs an AllRatesToday API key on a paid plan … - Keyless call with a
datetoget_official_rates/get_reference_rate→… needs an AllRatesToday API key on a paid plan … - Unrecognised tool name →
MCP error -32602: Tool <name> not found
Because these arrive as text, the assistant relays them to the user — a 429 surfaces as "the API quota has been exceeded."
🛠️ Troubleshooting
To inspect what the server is doing, run it manually (with or without the key):
No output means healthy — stdout is reserved for the MCP protocol; errors print to stderr.
💡 Notes
Do you store my conversation or query data? No. Only your API key and the request parameters (source, target, period, time, group) are sent to allratestoday.com — never the model's conversation context.
What happens to my API key? It is only sent as a Bearer token in the Authorization header on requests to the AllRatesToday API. The server does not log it.
Why is the first call slow? Cold start of npx (the first run downloads the package) plus an upstream cache miss.
Can I run this without npm/Node? Not currently — engines requires Node ≥ 18. If a standalone binary matters to you, open an issue.
Is there a self-hosted option? Point ALLRATES_BASE_URL at your own instance.
Does it work with other clients? Any MCP-compatible host with stdio transport works, and remote-MCP clients can use the hosted endpoint https://allratestoday.com/api/mcp; the four clients above are simply the ones with documented config paths here.
👩💻 Development
The src/ in this repo is an older 0.3.x snapshot. The published package is built from AllRates-Today/mcp-server — develop there:
npm run build runs tsc; npm run dev watches and rebuilds; npm start runs the compiled server. CI (.github/workflows/ci.yml) runs npm ci && npm run build on Node 22 for every push to main and every pull request.
To test against a local AllRatesToday instance:
Project structure:
Issues and PRs are welcome. Before opening a PR: npm run build must succeed, exercise the change against a real API key, and update both the tool descriptions in src/index.ts and the API reference above if tool behaviour changes.
📝 Changelog
Full changelog: mcp-server README → Changelog. Recent highlights:
- 0.7.6 — Keyless
get_rates_authenticatedwithtimesays a paid plan is needed; history documented as paid-only - 0.7.4 — Keyless
get_exchange_ratefalls back from the ECB table to the central bank issuing either currency (USD/GBP, GBP/JPY, USD/INR answer keyless), like the hosted endpoint; dated-table errors say a paid plan is needed - 0.7.0 —
get_reference_rate(Daily Reference Rate) andrequest_trial_key(self-issued 100-call trial key) - 0.6.0 — Keyless
list_central_banksandget_official_rates(121 central banks + 3 tax authorities) - 0.5.0 — Keyless mode: the server starts and answers without an API key instead of exiting
- 0.3.x — API key required for all tools; fail-fast at startup with clear instructions
- 0.2.x — Removed the news tool; required auth on
get_historical_rates - 0.1.x — Initial release with 5 tools
🔗 Links
- Website: allratestoday.com
- API docs: allratestoday.com/docs
- Free API key: allratestoday.com/register
- Status: allratestoday.com/status
- Postman: allratestoday.com/postman
- ChatGPT app — ask ChatGPT for live and official central bank rates
- Support: allratestoday.com/contact
- npm: @allratestoday/mcp-server
- MCP protocol: modelcontextprotocol.io
- Bug reports: github.com/AllRates-Today/mcp-server/issues
- AI agents: Claude Code plugin
/plugin marketplace add AllRates-Today/claude-code-plugin· hosted MCP endpointhttps://allratestoday.com/api/mcp(keyless) - New in Oct 2026: agents can self-issue a trial key —
POST https://allratestoday.com/api/agent/keys(JSON) → 100 calls / 7 days — and read the keyless Daily Reference Rate (16:00 London fix) athttps://allratestoday.com/api/open/reference-rate - Dashboard: allratestoday.com/profile
📜 License
MIT — see LICENSE.
來源:README.md,提交 9001eb7
工具
0版本歷史
1- v0.3.3最新Sep 16, 2026
評分
已滿足適用檢查項的 50%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。
- 近 30 天內可連通25 分
請保持端點能夠回應 MCP 握手;SourceWeft 每 30 天探測一次。
- 已宣告認證方式10 分
請在註冊中心條目中宣告憑證請求標頭,或保持端點能夠回應探測,以便判定其認證方式。
- 已列出工具15 分
請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。
- 描述必需15 分
- 圖示10 分
- 文件15 分
- 授權條款10 分
其他 Exchange 整合
Exchange.news — Crypto offers, campaigns and news
news.exchange官方發布者
一個唯讀的遠端目錄,讓助理查詢加密貨幣註冊優惠碼、合作連結、活動日期和 Exchange.news 新聞。

ECB Currency Reference Rates — Latest Daily Cross Pairs
由 GitHub 帳號 kriton-dev 發布
託管於 Apify 的遠端 MCP 伺服器,讓助理讀取歐洲央行最新每日匯率參考價與計算出的交叉匯率。

Microsoft Exchange Online MCP
由 GitHub 帳號 Servosity 發布
非官方 MCP 伺服器,讓助理透過 REST 跨客戶租用戶稽核與管理 Microsoft Exchange Online 信箱,不需 PowerShell。

Agent Service Exchange
由 GitHub 帳號 PatrickPi1312 發布
查詢服務商;在維也納傳送經授權的安裝或清潔諮詢。無需客戶帳戶。AI 翻譯

Iran Mercantile Exchange
由 GitHub 帳號 sepehr071 發布
非官方的伊朗商品交易所唯讀 MCP 伺服器,讓助理查詢商品成交、價格、供應公告與市場彙總資料。