@exchangerateapi/mcp-server
Official# @exchangerateapi/mcp-server
[](https://exchange-rateapi.com)
[](https://www.npmjs.com/package/@exchangerateapi/mcp-server)
[](https://github.com/Exchange-RateAPI/mcp-server/blob/main/LICENSE)
MCP server that gives AI coding tools (Claude Code, Cursor, Claude Desktop, Windsurf) access to real-time and historical currency exchange rates from [Exchange Rate API](https://exchange-rateapi.com).
160+ currencies. Mid-market rates updated every 60 seconds. Sourced from institutional interbank market data.
## Quick Setup
### 1. Get a Free API Key
Sign up at [exchange-rateapi.com/register](https://exchange-rateapi.com/register/) — free tier, no credit card.
### 2. Add to Your MCP Client
**Claude Code** (`~/.claude/settings.json`):
```json
{
"mcpServers": {
"exchange-rateapi": {
"command": "npx",
"args": ["-y", "@exchangerateapi/mcp-server"],
"env": { "EXCHANGE_RATE_API_KEY": "era_live_..." }
}
}
}
```
**Cursor** (`.cursor/mcp.json`):
```json
{
"mcpServers": {
"exchange-rateapi": {
"command": "npx",
"args": ["-y", "@exchangerateapi/mcp-server"],
"env": { "EXCHANGE_RATE_API_KEY": "era_live_..." }
}
}
}
```
**Claude Desktop** (`claude_desktop_config.json`):
```json
{
"mcpServers": {
"exchange-rateapi": {
"command": "npx",
"args": ["-y", "@exchangerateapi/mcp-server"],
"env": { "EXCHANGE_RATE_API_KEY": "era_live_..." }
}
}
}
```
**Windsurf** (`~/.windsurf/mcp.json`):
```json
{
"mcpServers": {
"exchange-rateapi": {
"command": "npx",
"args": ["-y", "@exchangerateapi/mcp-server"],
"env": { "EXCHANGE_RATE_API_KEY": "era_live_..." }
}
}
}
```
## Tools
| Tool | Description |
|------|-------------|
| `get_exchange_rate` | Get the current mid-market rate between two currencies |
| `get_historical_rates` | Get historical data for a pair over 1d, 7d, 30d, or 1y |
| `get_rates` | Multi-target rates with date ranges and grouping (day/week/month) |
| `list_currencies` | List all 160+ supported currencies |
## Example Prompts
Once configured, ask your AI assistant:
- "What's the current USD to EUR exchange rate?"
- "Show me GBP/JPY rates for the last 30 days"
- "Convert 5000 USD to EUR, GBP, and JPY"
- "List all supported currencies"
- "What's the monthly average EUR/USD rate for 2026?"
## Environment Variables
| Variable | Required | Description |
|----------|----------|-------------|
| `EXCHANGE_RATE_API_KEY` | Yes | Your API key from [exchange-rateapi.com](https://exchange-rateapi.com/register/) |
| `EXCHANGE_RATE_BASE_URL` | No | Override API base URL (default: `https://exchange-rateapi.com/api`) |
## Links
- [API Documentation](https://exchange-rateapi.com/docs/)
- [Get Free API Key](https://exchange-rateapi.com/register/)
- [Dashboard](https://exchange-rateapi.com/dashboard/)
- [GitHub](https://github.com/Exchange-RateAPI/mcp-server)
## License
MIT
TDQS
Scored across 4 tools
Each tool targets a clearly distinct query shape: single live rate, fixed historical windows, multi-target/custom ranges, and currency metadata. The descriptions cross-reference each other to explicitly route potentially ambiguous cases, so an agent should not confuse them.
All tool names follow a consistent verb_noun pattern in snake_case: get_exchange_rate, get_historical_rates, get_rates, list_currencies. There are no mixed conventions, vague verbs, or stylistic outliers.
Four tools is well-scoped for an exchange-rate server: currency discovery, a live single rate, historical windows, and flexible multi-target/custom-range queries. Each tool earns its place with no redundancy or bloat.
Within the stated fiat-only scope, the surface covers lookup, live rates, historical time series, multi-target requests, and custom date ranges. The list_currencies tool also provides a validation path that prevents dead-end calls to the rate tools.