How to Use the AllRatesToday MCP Server with Claude Code and Cursor
AI coding tools are great at writing code and explaining diffs, but they're unreliable at anything numeric and time-sensitive. Ask Claude Code "what's today's USD to EUR rate?" and you'll get a stale guess. The Model Context Protocol (MCP) fixes this by letting clients call real tools. This post walks through the AllRatesToday MCP server — what it does, how to install it in four different clients, and how to debug when something goes wrong.
What is the AllRatesToday MCP server?
It's a small npm package — @allratestoday/mcp-server — that exposes four currency tools over the MCP stdio transport. Any MCP-compatible client (Claude Code, Cursor, Claude Desktop, ChatGPT Desktop, and any custom MCP host) can call them:
| Tool | API key? | Description |
|---|---|---|
get_exchange_rate |
no | Current mid-market rate between two currencies. |
get_historical_rates |
yes | Time series over 1d, 7d, 30d, or 1y. |
get_rates_authenticated |
yes | Multi-target rates with higher limits. |
list_currencies |
no | All 160+ supported currencies. |
Two of the four tools (get_exchange_rate and list_currencies) work without an API key. Set ALLRATES_API_KEY for the historical and multi-target endpoints.
Prerequisites
-
Node.js 18 or newer.
npxships with Node and handles installing the package on first run. - An MCP-compatible client. Claude Code, Cursor (0.42+), Claude Desktop, or ChatGPT Desktop all qualify.
- Optional: AllRatesToday API key — register for a free one if you need higher limits.
Install in Claude Code
claude mcp add allratestoday -- npx -y @allratestoday/mcp-server
claude mcp env allratestoday ALLRATES_API_KEY=art_live_xxxxx # optional
Claude Code will install the package on first invocation via npx. Verify it's loaded:
claude mcp list
# should show: allratestoday running (4 tools)
Now open any chat and ask: "What's the USD to EUR rate right now?" Claude Code picks up the get_exchange_rate tool, calls it, and answers with the live number.
Install in Cursor
Edit ~/.cursor/mcp.json (or create a project-local .cursor/mcp.json):
{
"mcpServers": {
"allratestoday": {
"command": "npx",
"args": ["-y", "@allratestoday/mcp-server"],
"env": {
"ALLRATES_API_KEY": "art_live_xxxxx"
}
}
}
}
Restart Cursor. Settings → Cursor Settings → MCP should now list "allratestoday" with a green indicator. You can toggle individual tools there if you want.
Install in Claude Desktop (and ChatGPT Desktop)
Edit the desktop client's config file:
-
macOS:
~/Library/Application Support/Claude/claude_desktop_config.json -
Windows:
%APPDATA%\Claude\claude_desktop_config.json - ChatGPT Desktop uses the same JSON shape in its own config — paste the block below.
{
"mcpServers": {
"allratestoday": {
"command": "npx",
"args": ["-y", "@allratestoday/mcp-server"],
"env": {
"ALLRATES_API_KEY": "art_live_xxxxx"
}
}
}
}
Fully quit and reopen the app. The "Search and tools" icon should show allratestoday with four tools.
Example prompts
A few prompts that exercise each tool:
-
"What's 1,250 GBP in Singapore dollars?" — calls
get_exchange_rate, multiplies client-side. -
"Show me the trend of USD/JPY over the last 30 days." — calls
get_historical_rateswithperiod=30d. -
"Get me today's rates for EUR against USD, GBP, and CHF in one call." — calls
get_rates_authenticatedwith comma-separated targets (requires API key). -
"What currencies does AllRatesToday support?" — calls
list_currencies.
Debugging tool calls
If the assistant isn't calling the tool, or calls are failing, there are three quick checks.
1. Is the server actually running?
In your terminal:
npx -y @allratestoday/mcp-server
# waits on stdin — this is correct, stdio transport
Press Ctrl+C to exit. If this errors (e.g. command not found: npx), install Node 18+.
2. Send a raw tools/list request
MCP is JSON-RPC over stdio. You can drive it manually:
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test","version":"0"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized"}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list"}' \
| npx -y @allratestoday/mcp-server
You'll see the handshake plus a list of all five tool schemas. If this works, the server is healthy — the problem is in the client config.
3. Check the client's MCP log
Claude Desktop writes a log you can read at:
# macOS
~/Library/Logs/Claude/mcp*.log
# Windows
%APPDATA%\Claude\logs\mcp*.log
Look for allratestoday lines. A common issue: the config's JSON is invalid (trailing comma, missing quote). The log will say so.
Do I need an API key?
Only for two of the four tools. get_exchange_rate and list_currencies call public endpoints and work without a key. get_historical_rates and get_rates_authenticated both require ALLRATES_API_KEY. Set one if you want:
- Historical rate data (1d/7d/30d/1y periods).
- Multi-target single-call lookups (e.g. EUR against USD + GBP + CHF).
- Higher rate limits (the public endpoints have reasonable but not unlimited quotas).
A free key with 300 requests/month is available at registration — no credit card.
What about privacy?
The MCP server runs locally on your machine and talks to allratestoday.com/api directly. It doesn't log prompts, and it doesn't proxy through a third party. Source is on GitHub — you can read it end-to-end in under 15 minutes.
Related integrations
-
DeepSeek (Python):
allratestoday-deepseek— same tools, wired into DeepSeek's function calling. - Any LLM with browsing: our /llms.txt tells them the public endpoint to call.
- Every supported client: the full rundown is on the MCP landing page.
Next steps
- Install the server in your preferred client (above).
- Ask your assistant for a live rate — confirm it cites the number.
- If you need multi-target or higher limits, grab a free API key and set
ALLRATES_API_KEY. - Open an issue or PR on the repo if something's missing.
Give your AI assistant real currency data. Install in one line. Free tier with real-time rates. No credit card. Get your free API key.
Top comments (0)