AllRatesToday exchange rates (hosted)

com.allratestoday由 allratestoday.com 發布官方發布者v1.0.0更新於 Oct 24, 2026

Live FX + official central-bank rates, 110+ sources. Hosted, keyless, nothing to install.

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

概覽

AI 產生的概覽

託管型 MCP 伺服器,讓助理取得即時中間價匯率、歷史序列,以及來自 110+ 個來源的央行官方匯率。

可以做什麼
  • 在貨幣之間換算,取得單一貨幣對或多個目標貨幣的即時與歷史匯率
  • 列出支援的 ISO 4217 貨幣,以及涵蓋的央行與稅務機關
  • 取得指定機構公布的官方匯率表,以及逐日的官方匯率序列
  • 將同一貨幣對在所有涵蓋機構間比較,並查詢某家銀行的公布日期
  • 取得每日一次的參考匯率,並自助核發短期試用 API 金鑰
適用情境
適合助理需要回答貨幣換算問題、為開立發票、稅務或稽核引用可查證的官方匯率,或為報告與研究建立可重現的每日匯率序列時使用。
執行需求
遠端 Streamable HTTP 端點,無需安裝。沒有金鑰時以受限的無金鑰模式運作。選用的 API 金鑰透過 Authorization Bearer 標頭傳送(或使用 api_key 查詢參數)。歷史序列、指定時點查詢與帶日期的官方匯率表需要付費方案。
安裝前請注意
Authorization 金鑰屬於憑證:優先使用標頭而非放入 URL,後者可能被用戶端設定、日誌與截圖洩露,外洩後應輪換。無金鑰使用需顯示指向服務方的可見署名連結。免費額度不會重置,歷史與帶日期查詢需要付費訂閱。中間價匯率不適用於稅務或稽核所需的官方匯率。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 AllRatesToday exchange rates (hosted),將其新增到工作區。
  2. 為需要使用其工具的對話啟用該服務。

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

交給代理程式安裝

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

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

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

其他 MCP 客戶端

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

{
  "mcpServers": {
    "allratestoday-exchange-rates-hosted": {
      "type": "http",
      "url": "https://allratestoday.com/api/mcp"
    }
  }
}

README

AllRatesToday MCP Server — @allratestoday/mcp-server

Website: https://allratestoday.com · Hosted endpoint (no install): https://allratestoday.com/api/mcp · Docs: https://allratestoday.com/mcp/

[npm version] [npm downloads] [license] [MCP] [TypeScript]

English | 简体中文

Give your AI assistant a live window into the foreign-exchange market. A Model Context Protocol server that lets Claude Code, Cursor, Claude Desktop, Windsurf, and any MCP-compatible client fetch real-time currency rates, historical series, and multi-currency lookups from the AllRatesToday API.

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."

🚀 Why this server?

  • 📡 Live mid-market rates — 160+ ISO 4217 currencies, refreshed every ~60 seconds
  • 📈 Historical series built in — 1d / 7d / 30d / 1y windows with sensible granularity per period
  • 🧰 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; small surface, easy for the model to use correctly
  • 🔌 Works everywhere MCP does — stdio transport, MCP 1.x; Claude Code, Cursor, Claude Desktop, Windsurf, or any generic host
  • 🔓 Works with no API key — installs and answers out of the box from open official central-bank tables (ECB first, else the bank that issues one of the two currencies); a free key unlocks real-time rates for 160+ currencies
  • 🛡️ Honest about what it returned — every keyless answer says which rate it is and when it was published; API errors map to clear, actionable messages
  • 🔒 Nothing leaks — only the request parameters and your API key ever reach allratestoday.com; never conversation context

⚖️ Mid-market vs official central-bank rates

With a key, get_exchange_rate, get_historical_rates and get_rates_authenticated return a mid-market rate, refreshed every ~60 seconds — the right number for price display, conversion, and anything that should track the market. It is not the official rate a tax authority or auditor may require. For those, call get_official_rates: the latest table published by any of 122 central banks and 4 tax authorities (ECB, Fed, HMRC, US Treasury, Swiss BAZG, …), fixed once published and carrying the institution's own rate_date, no key needed. list_central_banks gives the codes. Dated official tables (a past date) need an API key on a paid plan — a free key gets 403 Historical central bank rates require a paid plan. Mid-market history (get_historical_rates, and time on get_rates_authenticated) is paid-plan too — free and trial keys get 403. See the central bank REST API and per-bank npm SDKs. The two can diverge by several percent, so pick by use case, not convenience.

🔑 Get your API key (free)

A key unlocks real-time mid-market rates across 160+ currencies and multi-target lookups. The free tier is enough for development and trying it out — no credit card required. Historical series, point-in-time lookups and dated official and reference-rate tables need a paid plan from €4.99/month.

  1. Register at allratestoday.com/register — 30 seconds
  2. Verify your email
  3. Copy your key from the dashboard (format: art_live_xxxxx)
  4. Use it as ALLRATES_API_KEY in the configs below

Without one the server prints a short summary of keyless mode (below) on stderr and keeps running — it never exits, because an MCP server that exits breaks the host client's whole configuration.

🔓 Keyless mode — what works with no setup

Install it with no configuration at all and it starts, connects, and answers:

ToolKeylessWhat you get
get_exchange_rate✅An official central-bank rate: the ECB reference table first, else the central bank that issues the target or source currency (USD/GBP → Bank of England, USD/INR → Reserve Bank of India). The response carries bank, rate_date, derived and a note saying so, so the assistant never passes it off as a live quote. Only pairs one bank publishes, or their inverses (flagged derived: true), work keyless; other crosses are refused with a pointer to the key.
list_currencies✅All 160+ supported ISO 4217 codes.
list_central_banks✅Codes, names and latest publication date of all 122 central banks and 4 tax authorities.
get_official_rates✅Latest official table (or one pair) published by any of them. A dated table needs a paid-plan key.
get_reference_rate✅The Daily Reference Rate: one never-revised table per business day, fixed at 16:00 London. A past date needs a paid-plan key.
request_trial_key✅Self-issues a 100-call, 7-day key with no account and adopts it for the session.
get_historical_rates🔑Returns one sentence explaining how to get a key. Needs a paid plan.
get_rates_authenticated🔑Same.

The keyless path reads the open, edge-cached /api/open/central-bank/{bank} endpoints — no upstream cost, no rate limit to trip over, nothing to sign up for.

Attribution. Keyless use requires a visible, followable link to AllRatesToday wherever the rates are shown (a footer, an about page, a README). With an API key it is appreciated but not required.

html
<a href="https://allratestoday.com">Exchange rates by AllRatesToday</a>

Markdown: Exchange rates by [AllRatesToday](https://allratestoday.com). Full wording: https://allratestoday.com/terms/#attribution.

🧩 Easiest install: the Claude Code plugin

If you use Claude Code, install the plugin instead of configuring this server by hand — it bundles both AllRatesToday MCP servers, two skills, and five slash commands (/rate, /convert, /official-rate, /fx-history, /add-currency-support):

/plugin marketplace add AllRates-Today/claude-code-plugin/plugin install allratestoday@allratestoday

Everything below still applies for other MCP clients.

☁️ Hosted endpoint — nothing to install

The same tools also run as a hosted Streamable HTTP MCP server, which lists 11 tools: the 8 of this stdio package plus get_official_rate_history, compare_official_rates and get_publication_calendar from the sibling central-bank server. Paste the URL into any client that supports remote MCP — Claude.ai and Claude Desktop connectors, ChatGPT, Cursor, VS Code, Codex, Gemini CLI:

https://allratestoday.com/api/mcp
bash
claude mcp add --transport http allratestoday https://allratestoday.com/api/mcp

Works keyless. With a key, send Authorization: Bearer art_live_… or, where the client only takes a URL, connect to https://allratestoday.com/api/mcp?api_key=art_live_…. That puts the key in the URL, where client configs, logs and screenshots can expose it: prefer the header when your client supports it, never share or commit that URL, and rotate the key at https://allratestoday.com/profile if it leaks. Registry name: com.allratestoday/mcp. One-click Cursor / VS Code buttons: https://allratestoday.com/mcp/#hosted

📦 Installation

The simplest install is zero-install via npx, which is what every config below uses:

bash
# Run without installing (recommended)npx -y @allratestoday/mcp-server
bash
# Or install globallynpm install -g @allratestoday/mcp-serverallratestoday-mcp

Both commands launch the stdio MCP server and wait for a client to connect — they're not meant to be run interactively from your shell; your MCP client launches them as a subprocess.

🏁 Quick setup per client

Each client reads MCP servers from a different config file. Pick yours below.

Claude Code

The fastest path uses the built-in CLI:

bash
claude mcp add allratestoday -- npx -y @allratestoday/mcp-serverclaude mcp env allratestoday ALLRATES_API_KEY=art_live_xxxxx

Restart Claude Code. Verify by asking it: "What's the current USD to EUR rate?"

Cursor

Edit ~/.cursor/mcp.json (or .cursor/mcp.json inside your project for project-scoped servers):

json
{  "mcpServers": {    "allratestoday": {      "command": "npx",      "args": ["-y", "@allratestoday/mcp-server"],      "env": {        "ALLRATES_API_KEY": "art_live_xxxxx"      }    }  }}

Restart Cursor. The eight tools should appear in the MCP tool picker.

Claude Desktop

Edit the config file (path depends on OS):

OSPath
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json
Linux~/.config/Claude/claude_desktop_config.json
json
{  "mcpServers": {    "allratestoday": {      "command": "npx",      "args": ["-y", "@allratestoday/mcp-server"],      "env": {        "ALLRATES_API_KEY": "art_live_xxxxx"      }    }  }}

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:

npx -y @allratestoday/mcp-server

…with the environment variable ALLRATES_API_KEY set. The protocol version is MCP 1.x.

✅ Verify it works

After configuring your client, test in this order:

  1. Server starts — open the client. The server starts with or without a key (no key ⇒ keyless mode), so a red dot or "failed to connect" means the client could not launch it — usually npx or Node ≥18 (see Troubleshooting below). A wrong key does not stop it starting; calls then return Invalid AllRatesToday API key.
  2. Tools are listed — most clients have a "tools" or "MCP" panel showing the eight tools.
  3. 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 fabricates a number without a tool call, the server isn't connected.

More prompts that exercise the other tools:

  • "What was the ECB's official USD rate on the latest published table?" → get_official_rates
  • "Give me today's 16:00 London reference rate for EUR, GBP and JPY." → get_reference_rate
  • "Which central banks can you get official rates from?" → list_central_banks
  • "Convert 250 USD to CAD." → get_exchange_rate

🧪 Test with MCP Inspector

To check the server on its own, without any AI client in the way, run it under the official MCP Inspector:

bash
npx @modelcontextprotocol/inspector npx -y @allratestoday/mcp-server
  1. Open the URL it prints and click Connect. The Tools tab should list the eight tools.
  2. Call get_exchange_rate with source: USD, target: EUR — it answers keyless with an official rate.
  3. Set ALLRATES_API_KEY in the Inspector's environment panel, reconnect, and call it again — now it returns the live mid-market rate.

If this works but your client doesn't, the problem is the client's config (path to npx, Node version, JSON syntax), not the server.

📚 Tools reference

get_historical_rates and get_rates_authenticated require ALLRATES_API_KEY; the other six of the eight work keyless. History (get_historical_rates, and time on get_rates_authenticated) needs a paid plan.


get_exchange_rate

Current mid-market rate between two currencies.

Input

FieldTypeRequiredDescription
sourcestringyes3-letter ISO 4217 code, e.g. USD
targetstringyes3-letter ISO 4217 code, e.g. EUR

Example call

json
{ "source": "USD", "target": "EUR" }

Response (with a key):

json
{ "rate": 0.888889, "source": "mid-market" }

Response (keyless — USD → GBP, not in the ECB table, so the Bank of England table answers):

json
{  "rate": 0.7598784195,  "source": "Bank of England official rate (keyless mode)",  "bank": "boe",  "rate_date": "2026-10-14",  "derived": true,  "note": "Keyless mode: this is the Bank of England official rate published on 2026-10-14, not a live mid-market quote. For real-time rates across 160+ currencies set ALLRATES_API_KEY — free tier at https://allratestoday.com/register."}

derived: true means the bank publishes the inverse (GBP→USD) and the rate was inverted. A pair no single bank publishes is refused keyless with No keyless official source covers … and a pointer to the key.

get_historical_rates

Time-series data points for a currency pair over a fixed period. Needs an API key on a paid plan (free and trial keys get a 403).

Input

FieldTypeRequiredDescription
sourcestringyesSource currency code
targetstringyesTarget currency code
periodstringno (default 7d)One of 1d, 7d, 30d, 1y

Granularity by period

periodData points
1dHourly (24 points)
7dDaily (7 points)
30dDaily (30 points)
1yWeekly (52 points)

Example call

json
{ "source": "USD", "target": "INR", "period": "30d" }

Response (truncated):

json
{  "source": "USD",  "target": "INR",  "period": "30d",  "data": [    { "date": "2026-09-17", "rate": 96.1006, "timestamp": 1789603200000 },    { "date": "2026-09-18", "rate": 95.8142, "timestamp": 1789689600000 },    "...",    { "date": "2026-10-16", "rate": 94.9643, "timestamp": 1792108800000 }  ]}

get_rates_authenticated

Multiple targets in one call, with optional historical timestamp or grouping window.

Input

FieldTypeRequiredDescription
sourcestringyesSource currency code
targetstringyesOne or more codes, comma-separated (EUR,GBP,JPY)
timestring (ISO 8601)noHistorical point in time (paid plans)
groupstringnoOne of hour, day, week, month

Example call

json
{ "source": "USD", "target": "EUR,GBP,JPY" }

Response:

json
{  "rates": [    { "rate": 0.888889, "source": "USD", "target": "EUR", "time": "2026-10-16T12:16:01+0000" },    { "rate": 0.749766, "source": "USD", "target": "GBP", "time": "2026-10-16T12:16:01+0000" },    { "rate": 157.985, "source": "USD", "target": "JPY", "time": "2026-10-16T12:16:01+0000" }  ]}

list_currencies

All supported currencies with codes, names, and symbols. Cached upstream for 24 hours — cheap to call for validating user input before the other tools.

Input — none.

Response (truncated):

json
{  "currencies": [    { "code": "USD", "name": "US Dollar", "symbol": "$" },    { "code": "EUR", "name": "Euro", "symbol": "€" },    { "code": "GBP", "name": "British Pound", "symbol": "£" },    "..."  ],  "count": 163}

list_central_banks

Every official source the server can quote — 122 central banks plus HMRC, the US Treasury, Swiss BAZG and India's CBIC — with the code that get_official_rates takes as bank, the institution's name, its latest publication date, age_days, its publication cadence and a stale flag when it is behind its own schedule. Keyless.

Input — none.

Response (truncated):

json
{  "sources": [    { "code": "ecb", "name": "European Central Bank", "latest": "2026-10-15", "age_days": 1, "stale": false, "cadence": "daily" },    { "code": "fed", "name": "US Federal Reserve (H.10)", "latest": "2026-10-09", "age_days": 7, "stale": false, "cadence": "weekly" },    "..."  ],  "stale_count": 3,  "checked_at": "2026-10-16T12:16:46.232Z"}

get_official_rates

The fixed, citable rate an institution published — for invoices, VAT and tax returns, customs, transfer pricing and audit. Not a live market rate.

Input:

FieldTypeRequiredDescription
bankstringyesSource code from list_central_banks, e.g. ecb, fed, boe, rbi, hmrc
datestringnoYYYY-MM-DD. Omit for the latest table (keyless). Needs an API key on a paid plan — a free key gets 403 Historical central bank rates require a paid plan. Weekends/holidays roll back to the last published date.
sourcestringnoWith target, narrows to one pair
targetstringnoWith source, narrows to one pair

Response (one pair):

json
{  "bank": "ecb",  "rate_date": "2026-10-15",  "source": "EUR",  "target": "USD",  "rate": 1.1208,  "rate_type": "reference",  "derived": false,  "method": "published",  "age_days": 1,  "stale": false,  "cadence": "daily",  "attribution": { "source": "Official rates published by ECB, served by AllRatesToday", "url": "https://allratestoday.com/central-bank-rates-api/ecb/", "terms": "Free to use with visible attribution linking to allratestoday.com" }}

Omit source/target for the whole table as rates: [{ base, quote, type, value }]. Keyless, only pairs the bank publishes and their inverses (flagged derived: true) are served; other crosses are refused. With a key, pairs the bank does not publish directly are cross-computed inside its own table and flagged derived: true. Always cite rate_date.


get_reference_rate

AllRatesToday's Daily Reference Rate: the per-currency median of samples taken in a five-minute window centred on 16:00 London, published once per business day and never revised. Use it when a report, index or research series needs one reproducible rate per day. It is not the WM/Refinitiv fix and not a registered benchmark; every response carries a disclaimer and the rate_date.

Input

FieldTypeRequiredDescription
sourcestringnoWith target, narrows to one pair (crossed via USD, flagged derived)
targetstringnoSee above
datestringnoPast business day YYYY-MM-DD (API key on a paid plan). Omit for the latest table

Output — { rate_date, base, time, rates } for the table, or { rate_date, source, target, rate, derived } for a pair, plus method and disclaimer. Keyless for the latest table. Docs: https://allratestoday.com/reference-rate/


request_trial_key

Self-issues an API key with 100 lifetime calls, valid 7 days, with no account and no email, and switches this server to it for the rest of the session. The reply tells the user to copy the key into the MCP config as ALLRATES_API_KEY to keep it across restarts. Capped at 3 keys per IP per day.

Input — agent (string, optional), purpose (string, optional).

Output — { key, calls, expires_at, adopted, note }.


⚙️ Environment variables

VariableDefaultRequiredPurpose
ALLRATES_API_KEY—noYour API key, sent as Authorization: Bearer. Unset ⇒ keyless mode (see above); set ⇒ real-time rates and multi-target lookups (the historical tools need a paid-plan key).
ALLRATES_BASE_URLhttps://allratestoday.com/apinoOverride for self-hosted or staging deployments.

Set these in your MCP client's config (in the env block) — not in your shell — because MCP servers are launched as subprocesses with isolated environments.

💳 Plans

A free tier and paid plans are available — see allratestoday.com/pricing for current quotas. The free tier covers real-time rates 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). The Official Rates plan covers official central-bank and tax-authority rates only (no market rates).

🛠️ Troubleshooting

SymptomLikely causeFix
Client shows "MCP server failed to start" or red dotNot a missing key — 0.5.0+ starts fine without one. Usually npx cannot reach the registry, or Node is older than 18Run npx -y @allratestoday/mcp-server in a shell and read stderr
Rates look like yesterday's, response mentions "keyless mode"No key set, so answers come from an official central-bank table (see bank and rate_date)Set ALLRATES_API_KEY for real-time mid-market rates
No keyless official source covers X/YKeyless mode, and no single central bank publishes that pair or its inverseSet ALLRATES_API_KEY (free)
HTTP 403 — Historical rates require a paid planget_historical_rates, or time on get_rates_authenticated, on a free or trial keyUpgrade at /pricing — history is paid-only
HTTP 403 — Historical central bank rates require a paid plandate given to get_official_rates / get_reference_rate on a free keyOmit date for the latest table, or upgrade at /pricing
Every call returns "Invalid AllRatesToday API key"Key is malformed (missing prefix, truncated, or revoked)Copy a fresh key from the dashboard
Tools return "AllRatesToday API quota exceeded"Quota used up — the free tier does not reset; paid plans are monthlyUpgrade at /pricing
Historical tool returns "Bad request"Invalid period or unknown currency codePeriod must be 1d/7d/30d/1y; codes must be 3 letters
Server starts but tools never appearClient didn't reload after config changeFully quit (not just close) and reopen the client
npx runs but hangs foreverThe server is waiting for an MCP client to connect — normal when run from a shellLet your MCP client launch it

To inspect what the server is doing, run it manually with the key set:

bash
ALLRATES_API_KEY=art_live_xxxxx npx -y @allratestoday/mcp-server

No output means healthy (stdio is reserved for the MCP protocol); errors print to stderr.

🛡️ Error reference

The server maps API errors to clear, actionable messages the assistant can relay to the user:

HTTP statusMeaningTool error message
200Success(rate returned)
400Bad request — usually unknown currency codeBad request — possibly an unknown currency code
401Invalid API key (a missing key does not cause this — the server runs keyless)Invalid AllRatesToday API key
403Plan does not include it (e.g. a dated official table on a free key)HTTP 403 — <upstream message>
404 (keyless)No keyless official source covers the pairNo keyless official source covers X/Y. …
429Quota exceededAllRatesToday API quota exceeded
5xxServer-side issue at allratestoday.comHTTP 5xx — <upstream message>

❓ FAQ

Is the free plan really enough for normal use? For trying it out and light dev use. It does not reset monthly; regular use or production needs a paid tier. Keyless mode costs nothing and has no quota.

Do you store my conversation or query data? No. Only your API key and the request parameters (source, target, period, time) are sent to allratestoday.com — never the LLM's conversation context.

What happens to my API key? It's only sent as a Bearer token in the Authorization header on requests to the AllRatesToday API. It's never logged or transmitted elsewhere.

Why is my first call slow? Cold-start of npx (first run downloads the package) plus the initial cache miss. Subsequent calls are typically <200ms.

Can I run this without npm/Node? Not currently — Node ≥18 is required. If a standalone binary matters to you, open an issue.

Is there a self-hosted option? Set ALLRATES_BASE_URL to your own AllRatesToday instance. Contact [email protected] for self-hosted licensing.

Does this work with ChatGPT? Yes, through the hosted endpoint: add https://allratestoday.com/api/mcp as a connector (custom MCP / remote server) in ChatGPT. This npm package is the local stdio server, for clients that launch a command — Claude Code, Cursor, Claude Desktop, Windsurf.

👩‍💻 Development

bash
git clone https://github.com/AllRates-Today/mcp-server.gitcd mcp-servernpm installnpm run buildALLRATES_API_KEY=art_live_xxxxx node dist/index.js

The server runs on stdio and waits for an MCP client to connect; Ctrl+C to exit. npm run dev watches and rebuilds. To test against a local AllRatesToday instance:

bash
ALLRATES_BASE_URL=http://localhost:8080/api ALLRATES_API_KEY=test_key node dist/index.js

Project structure

src/├── index.ts      # MCP server, tool registration, request handlers├── client.ts     # HTTP client for AllRatesToday API + error mapping└── home-banks.ts # currency → issuing central bank, for the keyless get_exchange_rate fallbackdist/             # Compiled JS (gitignored)server.json       # MCP registry manifest

Contributing — issues and PRs welcome at github.com/AllRates-Today/mcp-server. Before opening a PR: npm run build must succeed, test against a real API key, and update the tool descriptions in src/index.ts plus this README's tools reference if you change tool behavior.

📝 Changelog

Recent changes. Full history: GitHub Releases.

  • 0.7.9 — README: changelog trimmed to the 0.7.x line
  • 0.7.8 — README: MCP Inspector test guide, example prompts for every tool, hosted ?api_key= security note, ChatGPT FAQ and 401 row corrected, history consistently paid-plan
  • 0.7.6 — Keyless get_rates_authenticated with time now says a paid plan is needed; README: free tier no longer listed as covering history, source example is mid-market
  • 0.7.4 — Keyless get_exchange_rate falls back from the ECB table to the central bank that issues the target or source currency (USD/GBP, GBP/JPY, USD/INR now answer keyless), same as the hosted endpoint; response adds bank. Dated-table errors say a paid plan is needed. README: real response shapes, tool counts, lifetime free tier
  • 0.7.0 — get_reference_rate (Daily Reference Rate, 16:00 London, keyless latest table) and request_trial_key (self-issued 100-call trial key adopted for the session)

🔗 Links

📜 License

MIT — see LICENSE.

來源:README.md,提交 933351b

工具

11

get_exchange_rate

Get live exchange rate

Use this when the user asks 'what is X in Y?', 'convert X to Y', 'current rate of EUR/USD', or any single fiat-to-fiat exchange rate question. Returns { rate, source } meaning 1 source = rate target. Without an API key it answers from the official ECB daily reference table (~30 majors) and says so in `note` — relay the `rate_date`. With a key it is the real-time mid-market rate for 160+ currencies. For several targets at once use get_rates_authenticated; for a time series use get_historical_rates; for a specific institution's official rate use get_official_rates.

輸入參數source必填target必填

get_historical_rates

Get historical rate time-series

Fixed-window time series ending now: 'how has EUR/USD moved this week', 'last month of GBP/JPY', '1-year AUD/USD'. Returns { source, target, period, data: [{ date, rate, timestamp }] }. Sampling: 1d=hourly, 7d/30d=daily, 1y=weekly. Requires an API key on a paid plan; free and trial keys get a 403. For a specific past datetime use get_rates_authenticated with `time`.

輸入參數periodsource必填target必填

get_rates_authenticated

Get multi-target or point-in-time rates

One source against several targets in a single call ('USD vs EUR, GBP, JPY'), or the rate at a specific past datetime, optionally bucketed by hour/day/week/month. Returns { rates: [{ rate, source, target, time }] }. Requires an API key (free tier for latest rates; a past datetime needs a paid plan).

輸入參數timegroupsource必填target必填

list_currencies

List supported currencies

Call this when unsure whether a currency code is supported, or for 'what currencies do you support?' / 'what is the symbol for X?'. Returns { currencies: [{ code, name, symbol }], count } for 150+ ISO 4217 fiat currencies. No API key needed; cheap to call.

無需輸入參數。

list_central_banks

List covered central banks & tax authorities

Call this FIRST when you need a bank code, or for 'which central banks do you cover?' / 'do you have rates from X?'. Returns every covered source — 122 central banks plus 4 tax authorities (HMRC, US Treasury, Swiss BAZG, India's CBIC) — with `code` (what every other official-rates tool takes as `bank`), name, latest publication date and whether it is behind schedule. No API key needed.

無需輸入參數。

get_official_rates

Get a bank's official published rates

OFFICIAL rates a named institution published — 'what is the ECB rate for USD?', 'Bank of Japan rate on 2026-03-14', 'HMRC rate for invoicing'. These are the fixed, citable rates for compliance, tax, customs and accounting — NOT live market rates. Omit `date` for the newest published table (no API key needed); give `date` (API key, paid plan) for the table in force that day — weekends/holidays roll back to the last published date and the response's `rate_date` says which. Omit source/target for the full table; give both for one pair — cross-computed inside the bank's own table when not directly published, flagged `derived`. Always cite the returned `rate_date`.

輸入參數bank必填datesourcetarget

get_official_rate_history

Get a bank's official rate history

Date-by-date series of one bank's OFFICIAL rates — 'ECB USD rate for every day of 2025', 'how did the CBSL rate move last quarter'. Returns { series: [{ date, rate, rate_type, derived, method }] }. Give either `symbol` (vs the bank's home currency) or a source+target pair; from/to default to the last year. API key with a paid plan, BILLED BY VOLUME: one call per month of history covered — keep ranges narrow. For publication dates without values use get_publication_calendar.

輸入參數tobank必填fromsourcesymboltarget

compare_official_rates

Compare one pair across every bank

One currency pair across ALL institutions at once — 'what does each central bank say USD/EUR is?', 'spread between official USD/LKR rates'. Returns every covered bank's latest official rate for the pair plus { min, max, median, spread_bps } over fresh sources. Banks are never mixed: derived rates are cross-computed within each bank's own table. API key required (free tier). Methodology: https://allratestoday.com/official-rates-methodology/

輸入參數source必填target必填

get_publication_calendar

Get a bank's publication calendar

Which dates a bank actually published a rate table — 'did the ECB publish on 2026-01-01?', 'how often does the US Treasury publish?'. Dates only, no values, so it is on every plan (API key required, free tier). Give `year` or a from/to range; large ranges are capped and flagged `truncated`.

輸入參數tobank必填fromyear

get_reference_rate

Get the Daily Reference Rate (16:00 London)

AllRatesToday's once-a-day, never-revised mid-market rate: the per-currency median of five samples in a five-minute window centred on 16:00 London, published each business day. Use it when the user needs ONE reproducible rate per day — index levels, return series, research datasets, month-end reports — rather than a live quote (get_exchange_rate) or an institution's official rate (get_official_rates). Keyless: returns the latest table, or one pair with source/target (cross via USD, flagged derived). With a key, `date` returns the table for a past business day. Not the WM/Refinitiv fix and not a registered benchmark — relay the disclaimer and the rate_date.

輸入參數datesourcetarget

request_trial_key

Request a trial API key

Self-issue an AllRatesToday API key with 100 lifetime calls, valid 7 days, with no account and no email. Use it when another tool answered "needs an API key" and the user wants real-time rates, history, dated central-bank tables or cross-bank comparison right now. The key is returned once — store it, then reconnect to https://allratestoday.com/api/mcp?api_key=<key> (or send `Authorization: Bearer <key>`); this stateless server cannot adopt the key mid-session. Capped at 3 keys per IP per day. For a lasting key, register at https://allratestoday.com/register (free) or see https://allratestoday.com/pricing.

輸入參數agentpurpose

版本歷史

1
  1. v1.0.0最新Sep 16, 2026

評分

已滿足適用檢查項的 100%

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

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

其他 Allratestoday 整合