MCP Server — AllRatesToday Documentation
Connect Claude Code, Cursor, Claude Desktop, Windsurf, and any MCP-compatible client to live and historical currency exchange rate data via the AllRatesToday MCP server.
MCP Server — Official Guideline
The @allratestoday/mcp-server
package gives any Model Context Protocol
client direct access to the AllRatesToday currency API. Once installed, your AI assistant
can fetch live mid-market rates, query historical time-series, list supported currencies,
and pull authenticated multi-target rates — without you writing any glue code.
The server is published on the
official MCP registry
as io.github.cahthuranag/mcp-server and on
npm. The free tier
is enough to evaluate it; two of the four tools work without an
API key at all.
Why MCP instead of direct REST?
If you are building a single application with one well-defined call pattern, the REST API is simpler. If you want your AI assistant to flexibly use exchange-rate data as part of broader work, MCP is the better choice.
| Concern | Direct REST | MCP Server |
|---|---|---|
| Code to write | HTTP client, error handling, schema parsing | None — install once |
| Tool discovery by the model | Manual prompt engineering | Automatic via tool schemas |
| Tool chaining (multi-step queries) | Manual orchestration | Native — model chains calls itself |
| API key handling | Often pasted into prompts (insecure) | Stays in environment, never seen by the model |
| Reuse across clients | Reimplement per client | One install per client |
Prerequisites
- Node.js 18 or later. The server is distributed via npm and run with
npx. Verify withnode --version. - An AllRatesToday API key for the authenticated tools (free tier available). Get one at allratestoday.com/register.
- An MCP-compatible client. See the next section.
The two public tools (get_exchange_rate, list_currencies) work
without an API key — useful for testing connectivity before configuring auth.
Adding MCP Servers
The server runs locally on your machine via npx — there is nothing to host
and your API key never leaves your computer. Pick your client below:
Installation
Claude Code
Run two commands in any terminal:
claude mcp add allratestoday -- npx -y @allratestoday/mcp-server
claude mcp env allratestoday ALLRATES_API_KEY=art_live_xxxxx The server is registered globally and available in every Claude Code session. Run
claude mcp list to verify.
Cursor
Edit ~/.cursor/mcp.json (global) or .cursor/mcp.json in your
project root, and add an entry under mcpServers:
{
"mcpServers": {
"allratestoday": {
"command": "npx",
"args": ["-y", "@allratestoday/mcp-server"],
"env": {
"ALLRATES_API_KEY": "art_live_xxxxx"
}
}
}
} Restart Cursor. The four tools appear under the MCP icon in chat.
Claude Desktop
Edit your Claude Desktop config file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json - Linux:
~/.config/Claude/claude_desktop_config.json
{
"mcpServers": {
"allratestoday": {
"command": "npx",
"args": ["-y", "@allratestoday/mcp-server"],
"env": {
"ALLRATES_API_KEY": "art_live_xxxxx"
}
}
}
} Fully quit and reopen Claude Desktop after editing — closing the window leaves it running and the new config will not load.
ChatGPT Desktop
ChatGPT Desktop reads the same JSON format. Add the block above to its MCP config and restart the app.
Windsurf
Open Windsurf settings → MCP → Add custom server. Use the same configuration block as Cursor.
Other MCP clients
Any client that supports the MCP stdio transport will work. Point it at the command:
npx -y @allratestoday/mcp-server Pass ALLRATES_API_KEY through the environment.
Configuration
The server reads two environment variables:
| Variable | Required? | Purpose |
|---|---|---|
ALLRATES_API_KEY | For authenticated tools only | Bearer token from your dashboard. Looks like
art_live_xxxxx. |
ALLRATES_BASE_URL | No | Override the API host (default https://allratestoday.com/api).
Useful for staging or self-hosted deployments. |
Tools
The server exposes four typed tools. The MCP client introspects each tool's schema automatically and passes it to the model — you do not need to register them yourself.
Currency / Exchange Rate
get_exchange_rate— current mid-market rate between any two of 160+ supported currencies. No API key required.get_rates_authenticated— fetch one base currency against multiple targets in a single call. Higher rate limits. API key required.
Historical
get_historical_rates— time-series data over1d,7d,30d, or1ywindows for any currency pair. API key required.
Discovery
list_currencies— every supported currency code with its name, symbol, and decimal precision. Useful as a one-shot reference for the model. No API key required.
Authentication
- Sign up at allratestoday.com/register — about thirty seconds.
- Verify your email.
- Copy the key from your dashboard. It begins with
art_live_. - Set it as
ALLRATES_API_KEYin your MCP client'senvblock (see Installation).
The free plan covers personal/dev use. Public tools
(get_exchange_rate and list_currencies) work without a key —
test connectivity with those first if you run into auth issues.
Example prompts
Once installed, try:
- "What's the USD to EUR rate right now?"
- "Show me GBP/JPY over the last 30 days as a sparkline."
- "If I had 1,000 EUR and converted half to GBP and half to JPY, what would
I have in USD?" — the model chains
get_exchange_ratecalls itself. - "List every currency you support, sorted alphabetically."
- "Give me a 1-year time series for AUD/USD."
Troubleshooting
| Symptom | Fix |
|---|---|
| Client doesn't see any AllRatesToday tools. | Fully quit and restart the client. Claude Desktop and Cursor cache the server list and will not reload it on a soft window close. |
command not found: npx | Install Node.js 18+ — npx ships with it.
nodejs.org. |
| Authenticated tools return 401. | Confirm ALLRATES_API_KEY is set on the right server entry and
starts with art_live_. Public tools should still work — test those
to isolate the problem. |
| Authenticated tools return 429. | You've exceeded the free-tier quota. Upgrade at allratestoday.com/pricing or wait until the monthly reset. |
| Server starts but model never calls it. | Re-prompt with an explicit instruction like "use the AllRatesToday MCP tool". Some models are reluctant to call tools when they think they already know the answer. |
Security best practices
- Treat your API key like a password. Anyone with it can spend your monthly quota.
- Never commit
claude_desktop_config.jsonor.cursor/mcp.jsonto git. Add them to.gitignore. If you must share configurations, use placeholder strings for the key. - Rotate the key if you suspect exposure. Dashboard → Settings → Regenerate.
- Use the public tools first when testing connectivity —
get_exchange_rateandlist_currenciesneed no key, so a failure there isolates network issues from auth issues. - Set a quota alert in your dashboard so a runaway agent does not silently exhaust your free tier overnight.
- Project-scoped vs. global config. For shared codebases, prefer
project-level
.cursor/mcp.jsonover global, so the API key lives in a per-project.envrather than a user-wide config file.
Versioning and updates
The package follows semantic versioning. Because installs use
npx -y @allratestoday/mcp-server, every client launch fetches the latest
published version automatically — no manual updates needed.
Pin a specific version if you need reproducibility (CI, audit environments):
"args": ["-y", "@allratestoday/mcp-server@0.3.1"] Release notes are published on GitHub Releases.
Support
- Bug reports & feature requests: GitHub Issues
- General API support: support@allratestoday.com
- Status page: allratestoday.com/status
- Community: share what you build — tag @allratestoday on X or post in the GitHub Discussions.
Resources
- Source code & issues: github.com/cahthuranag/mcp-server
- npm package:
@allratestoday/mcp-server - Official MCP registry entry:
io.github.cahthuranag/mcp-server - Feature overview: /mcp/
- Full API reference: /docs/
- Python alternative for DeepSeek: /deepseek/
Ready to plug live FX data into your AI?
One npx install. Free tier. No credit card.