@allratestoday/mcp-server 0.7.7 → 0.7.8

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.
Files changed (2) hide show
  1. package/README.md +26 -4
  2. package/package.json +1 -1
package/README.md CHANGED
@@ -31,7 +31,7 @@ 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 121 central banks and 3 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`) works on the free key. 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.
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 121 central banks and 3 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](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
  ## 🔓 Keyless mode — what works with no setup
37
37
 
@@ -94,7 +94,7 @@ https://allratestoday.com/api/mcp
94
94
  claude mcp add --transport http allratestoday https://allratestoday.com/api/mcp
95
95
  ```
96
96
 
97
- 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_…`. Registry name: `com.allratestoday/mcp`. One-click Cursor / VS Code buttons: https://allratestoday.com/mcp/#hosted
97
+ 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
98
98
 
99
99
  ## 📦 Installation
100
100
 
@@ -196,6 +196,27 @@ After configuring your client, test in this order:
196
196
  2. **Tools are listed** — most clients have a "tools" or "MCP" panel showing the eight tools.
197
197
  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.
198
198
 
199
+ More prompts that exercise the other tools:
200
+
201
+ - *"What was the ECB's official USD rate on the latest published table?"* → `get_official_rates`
202
+ - *"Give me today's 16:00 London reference rate for EUR, GBP and JPY."* → `get_reference_rate`
203
+ - *"Which central banks can you get official rates from?"* → `list_central_banks`
204
+ - *"Convert 250 USD to CAD."* → `get_exchange_rate`
205
+
206
+ ## 🧪 Test with MCP Inspector
207
+
208
+ To check the server on its own, without any AI client in the way, run it under the official [MCP Inspector](https://modelcontextprotocol.io/docs/tools/inspector):
209
+
210
+ ```bash
211
+ npx @modelcontextprotocol/inspector npx -y @allratestoday/mcp-server
212
+ ```
213
+
214
+ 1. Open the URL it prints and click **Connect**. The **Tools** tab should list the eight tools.
215
+ 2. Call `get_exchange_rate` with `source: USD`, `target: EUR` — it answers keyless with an official rate.
216
+ 3. Set `ALLRATES_API_KEY` in the Inspector's environment panel, reconnect, and call it again — now it returns the live mid-market rate.
217
+
218
+ 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.
219
+
199
220
  ## 📚 Tools reference
200
221
 
201
222
  - [`get_exchange_rate`](#get_exchange_rate) — current rate for one pair
@@ -473,7 +494,7 @@ The server maps API errors to clear, actionable messages the assistant can relay
473
494
  |---|---|---|
474
495
  | 200 | Success | (rate returned) |
475
496
  | 400 | Bad request — usually unknown currency code | `Bad request — possibly an unknown currency code` |
476
- | 401 | Invalid or missing API key | `Invalid AllRatesToday API key` |
497
+ | 401 | Invalid API key (a missing key does not cause this — the server runs keyless) | `Invalid AllRatesToday API key` |
477
498
  | 403 | Plan does not include it (e.g. a dated official table on a free key) | `HTTP 403 — <upstream message>` |
478
499
  | 404 (keyless) | No keyless official source covers the pair | `No keyless official source covers X/Y. …` |
479
500
  | 429 | Quota exceeded | `AllRatesToday API quota exceeded` |
@@ -500,7 +521,7 @@ Not currently — Node ≥18 is required. If a standalone binary matters to you,
500
521
  Set `ALLRATES_BASE_URL` to your own AllRatesToday instance. Contact support@allratestoday.com for self-hosted licensing.
501
522
 
502
523
  **Does this work with ChatGPT?**
503
- MCP works with any MCP-compatible client. ChatGPT Desktop has experimental MCP support; check OpenAI's docs for current status.
524
+ 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.
504
525
 
505
526
  ## 👩‍💻 Development
506
527
 
@@ -535,6 +556,7 @@ server.json # MCP registry manifest
535
556
 
536
557
  See [GitHub Releases](https://github.com/AllRates-Today/mcp-server/releases) for the full list. Recent highlights:
537
558
 
559
+ - **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
538
560
  - **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`
539
561
  - **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, 300-lifetime free tier
540
562
  - **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)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@allratestoday/mcp-server",
3
- "version": "0.7.7",
3
+ "version": "0.7.8",
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": [