@allratestoday/mcp-server 0.7.11 → 0.7.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +8 -9
- package/dist/client.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -31,13 +31,12 @@ After installation, your assistant can answer questions like:
|
|
|
31
31
|
|
|
32
32
|
## ⚖️ Mid-market vs official central-bank rates
|
|
33
33
|
|
|
34
|
-
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
|
|
34
|
+
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](https://allratestoday.com/central-bank-rates-api/institutions/) (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](https://allratestoday.com/docs/#central-bank) and [per-bank npm SDKs](https://allratestoday.com/central-bank-rates-api/). The two can diverge by several percent, so pick by use case, not convenience.
|
|
35
35
|
|
|
36
36
|
## 🔑 Get your API key (free)
|
|
37
37
|
|
|
38
38
|
A key unlocks **real-time mid-market rates across 160+ currencies** and
|
|
39
|
-
multi-target lookups. The free tier
|
|
40
|
-
monthly) is enough for development and trying it out — **no credit card required**.
|
|
39
|
+
multi-target lookups. The free tier is enough for development and trying it out — **no credit card required**.
|
|
41
40
|
Historical series, point-in-time lookups and dated official and reference-rate
|
|
42
41
|
tables need a paid plan from €4.99/month.
|
|
43
42
|
|
|
@@ -58,7 +57,7 @@ Install it with no configuration at all and it starts, connects, and answers:
|
|
|
58
57
|
|---|---|---|
|
|
59
58
|
| `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. |
|
|
60
59
|
| `list_currencies` | ✅ | All 160+ supported ISO 4217 codes. |
|
|
61
|
-
| `list_central_banks` | ✅ | Codes, names and latest publication date of all
|
|
60
|
+
| `list_central_banks` | ✅ | Codes, names and latest publication date of all [122 central banks and 4 tax authorities](https://allratestoday.com/central-bank-rates-api/institutions/). |
|
|
62
61
|
| `get_official_rates` | ✅ | Latest **official table** (or one pair) published by any of them. A dated table needs a paid-plan key. |
|
|
63
62
|
| `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. |
|
|
64
63
|
| `request_trial_key` | ✅ | Self-issues a 100-call, 7-day key with no account and adopts it for the session. |
|
|
@@ -376,7 +375,7 @@ All supported currencies with codes, names, and symbols. Cached upstream for 24
|
|
|
376
375
|
|
|
377
376
|
### `list_central_banks`
|
|
378
377
|
|
|
379
|
-
Every official source the server can quote —
|
|
378
|
+
Every official source the server can quote — [122 central banks](https://allratestoday.com/central-bank-rates-api/institutions/) 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.
|
|
380
379
|
|
|
381
380
|
**Input** — none.
|
|
382
381
|
|
|
@@ -469,7 +468,7 @@ Set these in your MCP client's config (in the `env` block) — not in your shell
|
|
|
469
468
|
|
|
470
469
|
## 💳 Plans
|
|
471
470
|
|
|
472
|
-
A free tier and paid plans are available — see [allratestoday.com/pricing](https://allratestoday.com/pricing) for current quotas. The free tier
|
|
471
|
+
A free tier and paid plans are available — see [allratestoday.com/pricing](https://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).
|
|
473
472
|
|
|
474
473
|
## 🛠️ Troubleshooting
|
|
475
474
|
|
|
@@ -481,7 +480,7 @@ A free tier and paid plans are available — see [allratestoday.com/pricing](htt
|
|
|
481
480
|
| `HTTP 403 — Historical rates require a paid plan` | `get_historical_rates`, or `time` on `get_rates_authenticated`, on a free or trial key | Upgrade at /pricing — history is paid-only |
|
|
482
481
|
| `HTTP 403 — Historical central bank rates require a paid plan` | `date` given to `get_official_rates` / `get_reference_rate` on a free key | Omit `date` for the latest table, or upgrade at /pricing |
|
|
483
482
|
| Every call returns "Invalid AllRatesToday API key" | Key is malformed (missing prefix, truncated, or revoked) | Copy a fresh key from the dashboard |
|
|
484
|
-
| Tools return "AllRatesToday API quota exceeded" | Quota used up — the free tier
|
|
483
|
+
| Tools return "AllRatesToday API quota exceeded" | Quota used up — the free tier does not reset; paid plans are monthly | Upgrade at [/pricing](https://allratestoday.com/pricing) |
|
|
485
484
|
| Historical tool returns "Bad request" | Invalid period or unknown currency code | Period must be `1d`/`7d`/`30d`/`1y`; codes must be 3 letters |
|
|
486
485
|
| Server starts but tools never appear | Client didn't reload after config change | Fully quit (not just close) and reopen the client |
|
|
487
486
|
| `npx` runs but hangs forever | The server is waiting for an MCP client to connect — normal when run from a shell | Let your MCP client launch it |
|
|
@@ -511,7 +510,7 @@ The server maps API errors to clear, actionable messages the assistant can relay
|
|
|
511
510
|
## ❓ FAQ
|
|
512
511
|
|
|
513
512
|
**Is the free plan really enough for normal use?**
|
|
514
|
-
For trying it out and light dev use. It
|
|
513
|
+
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.
|
|
515
514
|
|
|
516
515
|
**Do you store my conversation or query data?**
|
|
517
516
|
No. Only your API key and the request parameters (source, target, period, time) are sent to allratestoday.com — never the LLM's conversation context.
|
|
@@ -567,7 +566,7 @@ Recent changes. Full history: [GitHub Releases](https://github.com/AllRates-Toda
|
|
|
567
566
|
- **0.7.9** — README: changelog trimmed to the 0.7.x line
|
|
568
567
|
- **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
|
|
569
568
|
- **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`
|
|
570
|
-
- **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,
|
|
569
|
+
- **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
|
|
571
570
|
- **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)
|
|
572
571
|
|
|
573
572
|
## 🔗 Links
|
package/dist/client.js
CHANGED
|
@@ -143,7 +143,7 @@ export class AllRatesTodayClient {
|
|
|
143
143
|
adopted: Boolean(key),
|
|
144
144
|
note: 'This server now uses the trial key for the rest of this session. To keep it after a restart, ' +
|
|
145
145
|
'put it in the MCP config: "env": { "ALLRATES_API_KEY": "<key>" }. For a lasting key register free ' +
|
|
146
|
-
'at https://allratestoday.com/register (
|
|
146
|
+
'at https://allratestoday.com/register (free) or see https://allratestoday.com/pricing.',
|
|
147
147
|
};
|
|
148
148
|
}
|
|
149
149
|
async getRate(source, target) {
|
package/dist/index.js
CHANGED
|
@@ -273,7 +273,7 @@ async function main() {
|
|
|
273
273
|
});
|
|
274
274
|
server.registerTool('request_trial_key', {
|
|
275
275
|
title: 'Request a trial API key',
|
|
276
|
-
description: '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 or history right now. The key is adopted by this server for the rest of the session and returned once — tell the user to put it in the MCP config as ALLRATES_API_KEY to keep it. Capped at 3 keys per IP per day. For a lasting key, register at https://allratestoday.com/register (free
|
|
276
|
+
description: '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 or history right now. The key is adopted by this server for the rest of the session and returned once — tell the user to put it in the MCP config as ALLRATES_API_KEY to keep it. 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.',
|
|
277
277
|
inputSchema: {
|
|
278
278
|
agent: z.string().max(80).optional().describe('Optional: the agent or product requesting the key.'),
|
|
279
279
|
purpose: z.string().max(200).optional().describe('Optional: one line on what the rates are for.'),
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@allratestoday/mcp-server",
|
|
3
|
-
"version": "0.7.
|
|
3
|
+
"version": "0.7.13",
|
|
4
4
|
"mcpName": "io.github.cahthuranag/mcp-server",
|
|
5
5
|
"description": "MCP server for AllRatesToday — let AI coding tools (Claude Code, Cursor, Claude Desktop) fetch real-time and historical currency exchange rates.",
|
|
6
6
|
"keywords": [
|