MCP server bringing live FX rates, historical data, and multi-currency lookups from AllRatesToday to Claude Code, Cursor, Claude Desktop, and Windsurf. Free API key required.
- ✓Open-source license (MIT)
- ✓Actively maintained (<30d)
- ✓Clear description
- ✓Topics declared
- ✓Documented (README)
claude mcp add mcp-server -- npx -y @allratestoday/mcp-server{
"mcpServers": {
"mcp-server": {
"command": "npx",
"args": ["-y", "@allratestoday/mcp-server"],
"env": {
"ALLRATES_API_KEY": "<allrates_api_key>"
}
}
}
}ALLRATES_API_KEYMCP Servers overview
# AllRatesToday MCP Server — @allratestoday/mcp-server
[](https://www.npmjs.com/package/@allratestoday/mcp-server)
[](https://www.npmjs.com/package/@allratestoday/mcp-server)
[](./LICENSE)
[](https://modelcontextprotocol.io)
[](https://www.typescriptlang.org/)
English | [简体中文](./README-zh-CN.md)
**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](https://allratestoday.com).**
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** — 150+ ISO 4217 currencies, refreshed every ~60 seconds from institutional interbank data
- 📈 **Historical series built in** — `1d` / `7d` / `30d` / `1y` windows with sensible granularity per period
- 🧰 **Four focused tools** — `get_exchange_rate`, `get_historical_rates`, `get_rates_authenticated`, `list_currencies`; 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 the open ECB reference table; 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
Everything this server returns is a **mid-market rate**: the live interbank midpoint, 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, AllRatesToday also serves **published central-bank and tax-authority rates** (100+ sources — ECB, Fed, HMRC, US Treasury, …) that are fixed once published and carry the institution's own publication date — via 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.
## 🔓 Keyless mode — what works with no setup
Install it with no configuration at all and it starts, connects, and answers:
| Tool | Keyless | What you get |
|---|---|---|
| `get_exchange_rate` | ✅ | Official **ECB daily reference rate**, ~30 major currencies. The response carries `rate_date` and a note saying so, so the assistant never passes it off as a live quote. |
| `list_currencies` | ✅ | All 160+ supported ISO 4217 codes. |
| `get_historical_rates` | 🔑 | Returns one sentence explaining how to get a free key. |
| `get_rates_authenticated` | 🔑 | Same. |
The keyless path reads the open, edge-cached `/api/open/central-bank/ecb`
endpoint — no upstream cost, no rate limit to trip over, nothing to sign up for.
## 🔑 Get your API key (free)
A key unlocks **real-time mid-market rates across 160+ currencies**, historical
series, and multi-target / point-in-time lookups. The free tier is enough for
development and personal use — **no credit card required**.
1. Register at [allratestoday.com/register](https://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 on stderr and
keeps running — it never exits, because an MCP server that exits breaks the
host client's whole configuration.
## 🧩 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 (together with the tools of the sibling AllRatesToday server, nine in total). 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_…`. 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 globally
npm install -g @allratestoday/mcp-server
allratestoday-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-server
claude 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 four tools should appear in the MCP tool picker.
### Claude Desktop
Edit the config file (path depends on OS):
| OS | Path |
|---|---|
| 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. A red dot or "failed to connect" means the API key is missing or wrong (see Troubleshooting below).
2. **Tools are listed** — most clients have a "tools" or "MCP" panel showing the four 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.
## 📚 Tools reference
- [`get_exchange_rate`](#get_exchange_rate) — current rate for one pair
- [`get_historical_rates`](#get_historical_rates) — time series over a preset period
- [`get_rates_authenticated`](#get_rates_authenticated) — multiple targets in one call, optional point-in-time
- [`list_currencies`](#list_currencies) — all supported currency codes, names, symbols
All four tools require `ALLRATES_API_KEY`.
---
### `get_exchange_rate`
Current mid-market rate between two currencies.
**Input**
| Field | Type | Required | Description |
|---|---|---|---|
| `source` | string | yes | 3-letter ISO 4217 code, e.g. `USD` |
| `target` | string | yes | 3-letter ISO 4217 code, e.g. `EUR` |
**Example call**
```json
{ "source": "USD", "target": "EUR" }
```
**Response:**
```json
{ "rate": 0.92145, "source": "wise" }
```
### `get_historical_rates`
Time-series data points for a currency pair over a fixed period.
**Input**
| Field | Type | Required | Description |
|---|---|---|---|
| `source` | string | yes | Source currency code |
| `target` | string | yes | Target currency code |
| `period` | string | no (default `7d`) | One of `1d`, `7d`, `30d`, `1y` |
**Granularity by period**
| `period` | Data points |
|---|---|
| `1d` | Hourly (24 points) |
| `7d` | Daily (7 points) |
| `30d` | Daily (30 points) |
| `1y` | Weekly (52 points) |
**Example call**
```json
{ "source": "USD", "target": "INR", "period": "30d" }
```
**Response (truncated):**
```json
{
"source": "USD",
"targeWhat people ask about mcp-server
What is AllRates-Today/mcp-server?
+
AllRates-Today/mcp-server is mcp servers for the Claude AI ecosystem. MCP server bringing live FX rates, historical data, and multi-currency lookups from AllRatesToday to Claude Code, Cursor, Claude Desktop, and Windsurf. Free API key required. It has 3 GitHub stars and its last recorded update is dated 2026-09-14.
How do I install mcp-server?
+
You can install mcp-server by cloning the repository (https://github.com/AllRates-Today/mcp-server) or following the README instructions on GitHub. ClaudeWave also provides quick install blocks on this page.
Is AllRates-Today/mcp-server safe to use?
+
Our security agent has analyzed AllRates-Today/mcp-server and assigned a Trust Score of 95/100 (tier: Verified). See the full breakdown of passed checks and flags on this page.
Who maintains AllRates-Today/mcp-server?
+
AllRates-Today/mcp-server is maintained by AllRates-Today. The last recorded GitHub activity is dated 2026-09-14, with 1 open issues.
Are there alternatives to mcp-server?
+
Yes. On ClaudeWave you can browse similar mcp servers at /categories/mcp, sorted by popularity or recent activity.
Deploy mcp-server to your cloud
Ship this repo to production in minutes. Each platform spins up its own environment with editable env vars.
Maintain this repo? Add a badge to your README
Drop the badge into your GitHub README to show it's tracked on ClaudeWave. Each badge links back to this page and reflects the live Trust Score.
[](https://claudewave.com/repo/allrates-today-mcp-server)<a href="https://claudewave.com/repo/allrates-today-mcp-server"><img src="https://claudewave.com/api/badge/allrates-today-mcp-server" alt="Featured on ClaudeWave: AllRates-Today/mcp-server" width="320" height="64" /></a>More MCP Servers
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.
User-friendly AI Interface (Supports Ollama, OpenAI API, ...)
An open-source AI agent that brings the power of Gemini directly into your terminal.
Real-time global intelligence dashboard. AI-powered news aggregation, geopolitical monitoring, and infrastructure tracking in a unified situational awareness interface
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!
The fastest path to AI-powered full stack observability, even for lean teams.