cahthuranag/mcp-server

๐Ÿ’ฐ Finance & Fintech
0 Views
0 Installs

๐Ÿ“‡ โ˜๏ธ - AllRatesToday currency exchange rates: real-time mid-market rates for 160+ currencies (Reuters/Refinitiv), historical data (1d/7d/30d/1y), currency list, and multi-target lookups. Free tier, no key needed for the simple-rate endpoint. Install: npx @allratestoday/mcp-server.

Quick Install

One-Click IDE Configuration
claude_desktop_config.json
{
  "mcpServers": {
    "cahthuranag-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "cahthuranag-mcp-server"
      ]
    }
  }
}
Or

Using an AI coding agent (Claude Code, Cursor, etc.)? Copy a ready-made prompt that tells it to fetch the setup instructions and install this server for you.

Documentation Overview

AllRatesToday MCP Server

Powered by AllRatesToday

npm version npm downloads License MCP

English | ็ฎ€ไฝ“ไธญๆ–‡

Give your AI coding assistant a live window into the foreign-exchange market.

A Model Context Protocol server that lets Claude Code, Cursor, Claude Desktop, Windsurf, and any other MCP-compatible client fetch real-time currency rates, historical data, and multi-currency lookups from the AllRatesToday API.

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."
  • "List every supported currency."

Table of contents


What you get

CapabilityDetail
Currencies150+ ISO 4217 codes, all major and most exotics
Update frequencyMid-market rates refresh every ~60 seconds
Data sourceTier-1 financial data providers (Reuters / Refinitiv-class)
Historical depthUp to 1 year via 1d / 7d / 30d / 1y granularity
Tools exposed4 โ€” get_exchange_rate, get_historical_rates, get_rates_authenticated, list_currencies
Transportstdio (subprocess), MCP 1.x compatible
RuntimeNode.js โ‰ฅ18

Get an API key (required)

The server will not start without a valid ALLRATES_API_KEY. A free key is enough for development and personal use โ€” no credit card required.

  1. Register at 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

If you forget, the server prints clear registration instructions on stderr and exits with code 1.


Install

The server is published as an npm package. The simplest install is zero-install via npx, which is what every config below uses.

# Run without installing (recommended)
npx -y @allratestoday/mcp-server

# 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 directly 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:

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):

{
  "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):

OSPath
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 (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:

{
  "mcpServers": {
    "allratestoday": {
      "command": "npx",
      "args": ["-y", "@allratestoday/mcp-server"],
      "env": {
        "ALLRATES_API_KEY": "art_live_xxxxx"
      }
    }
  }
}

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. If the MCP integration shows a red dot or "failed to connect", the API key is missing or wrong (see Troubleshooting).

  2. Tools are listed โ€” most clients have a "tools" or "MCP" panel. You should see:

    • get_exchange_rate
    • get_historical_rates
    • get_rates_authenticated
    • list_currencies
  3. A live call returns a number โ€” ask the assistant:

    What's the current USD to EUR rate?

    The assistant will call get_exchange_rate(source: "USD", target: "EUR") and reply with a real rate (e.g. "USD to EUR is currently 0.9214."). If it fabricates a number without making a tool call, the server isn't connected.


Tools reference

All four tools require ALLRATES_API_KEY.

get_exchange_rate

Current mid-market rate between two currencies.

Input

FieldTypeRequiredDescription
sourcestringyes3-letter ISO 4217 code, e.g. USD
targetstringyes3-letter ISO 4217 code, e.g. EUR

Example call

{ "source": "USD", "target": "EUR" }

Example response

{ "rate": 0.92145, "source": "wise" }

get_historical_rates

Time-series data points for a currency pair over a fixed period.

Input

FieldTypeRequiredDescription
sourcestringyesSource currency code
targetstringyesTarget currency code
periodstringno (default 7d)One of 1d, 7d, 30d, 1y

Granularity by period

periodData points
1dHourly (24 points)
7dDaily (7 points)
30dDaily (30 points)
1yWeekly (52 points)

Example call

{ "source": "USD", "target": "INR", "period": "30d" }

Example response (truncated)

{
  "source": "USD",
  "target": "INR",
  "period": "30d",
  "data": [
    { "date": "2026-03-27T00:00:00Z", "rate": 83.42, "timestamp": 1743033600000 },
    { "date": "2026-03-28T00:00:00Z", "rate": 83.51, "timestamp": 1743120000000 },
    "..."
  ]
}

get_rates_authenticated

Multiple targets in one call, with optional historical timestamp or grouping window.

Input

FieldTypeRequiredDescription
sourcestringyesSource currency code
targetstringyesOne or more codes, comma-separated (EUR,GBP,JPY)
timestring (ISO 8601)noHistorical point in time
groupstringnoOne of hour, day, week, month

Example call

{ "source": "USD", "target": "EUR,GBP,JPY" }

Example response

[
  { "rate": 0.9214, "source": "USD", "target": "EUR", "time": "2026-04-26T11:00:00Z" },
  { "rate": 0.7891, "source": "USD", "target": "GBP", "time": "2026-04-26T11:00:00Z" },
  { "rate": 151.34, "source": "USD", "target": "JPY", "time": "2026-04-26T11:00:00Z" }
]

list_currencies

All supported currencies with codes, names, and symbols. Cached upstream for 24 hours.

Input โ€” none.

Example response (truncated)

{
  "currencies": [
    { "code": "USD", "name": "US Dollar", "symbol": "$" },
    { "code": "EUR", "name": "Euro", "symbol": "โ‚ฌ" },
    { "code": "GBP", "name": "British Pound", "symbol": "ยฃ" },
    "..."
  ],
  "count": 162
}

Environment variables

VariableDefaultRequiredPurpose
ALLRATES_API_KEYโ€”yesYour API key. The server exits at startup if unset.
ALLRATES_BASE_URLhttps://allratestoday.com/apinoOverride for self-hosted or staging deployments.

You set these in your MCP client's config (in the env block) โ€” not in your shell โ€” because MCP servers are launched as subprocesses with isolated environments.


Plans

A free tier and paid plans are available. See allratestoday.com/pricing for current quotas. All plans include the same currency coverage and historical depth โ€” only the request quotas differ.


Troubleshooting

SymptomLikely causeFix
Client shows "MCP server failed to start" or red dotALLRATES_API_KEY not set or invalidVerify the key in your client config; check it matches the dashboard
Tools show but every call returns "Invalid AllRatesToday API key"Key is malformed (missing prefix, truncated, or revoked)Copy a fresh key from the dashboard
Tools return "AllRatesToday API quota exceeded"Free-tier monthly limit hitWait until next month or upgrade plan
Historical tool returns "Bad request"Invalid period or unknown currency codePeriod must be 1d/7d/30d/1y; codes must be 3 letters
Server starts but tools never appear in clientClient didn't reload after config changeFully quit (not just close) and reopen the client
npx runs but hangs foreverThe server is waiting for an MCP client to connect โ€” this is normal when run from a shellDon't run from a shell; let your MCP client launch it

Inspect server logs

To see what the server is doing, run it manually with the API key set:

ALLRATES_API_KEY=art_live_xxxxx npx -y @allratestoday/mcp-server

You should see no output when healthy (stdio is reserved for the MCP protocol). Any errors print to stderr.


Error reference

The server maps API errors to clear, actionable messages.

HTTP statusMeaningTool error message
200Success(rate returned)
400Bad request โ€” usually unknown currency codeBad request โ€” possibly an unknown currency code
401Invalid or missing API keyInvalid AllRatesToday API key
429Quota exceededAllRatesToday API quota exceeded
5xxServer-side issue at allratestoday.comHTTP 5xx โ€” <upstream message>

The LLM will surface these messages in its response, so a user prompt that hits a 429 results in the assistant saying "the API quota has been exceeded โ€” please try again next month or upgrade your plan."


FAQ

Is the free plan really enough for normal use? Yes for personal/dev use. The free tier covers a few daily questions. Heavy interactive use, multiple chat sessions per day, or running the server in production should consider the paid tiers.

Do you store my conversation or query data? No. Only your API key and the request parameters (source, target, period, time) are sent to allratestoday.com โ€” never the LLM's conversation context, sheet contents, or anything else.

What happens to my API key? It's only sent as a Bearer token in the Authorization header on requests to the AllRatesToday API. It's never logged or transmitted elsewhere.

Why is my historical request slow on first call? Cold-start of npx (first run downloads the package) plus the initial AllRatesToday cache miss. Subsequent calls are fast (<200ms typically).

Can I run this without npm/Node? Not currently โ€” Node โ‰ฅ18 is required. We've considered a standalone binary; if that matters to you, open an issue.

Is there a self-hosted option? Yes, set ALLRATES_BASE_URL to your own AllRatesToday instance. Contact support@allratestoday.com for self-hosted licensing.

Does this work with ChatGPT? The Anthropic MCP standard works with any MCP-compatible client. ChatGPT Desktop has experimental MCP support; check OpenAI's docs for current status.


Development

git clone https://github.com/cahthuranag/mcp-server.git
cd mcp-server
npm install
npm run build
ALLRATES_API_KEY=art_live_xxxxx node dist/index.js

The server runs on stdio and waits for an MCP client to connect. Hit Ctrl+C to exit.

To watch and rebuild on changes during development:

npm run dev

To test against a local AllRatesToday instance:

ALLRATES_BASE_URL=http://localhost:8080/api ALLRATES_API_KEY=test_key node dist/index.js

Project structure

src/
โ”œโ”€โ”€ index.ts      # MCP server, tool registration, request handlers
โ””โ”€โ”€ client.ts     # HTTP client for AllRatesToday API + error mapping
dist/             # Compiled JS (gitignored)
server.json       # MCP registry manifest
package.json      # npm metadata, dependencies, scripts

Contributing

Issues and PRs welcome at github.com/cahthuranag/mcp-server. Before opening a PR:

  1. npm run build should succeed with no errors
  2. Test against a real AllRatesToday API key (set in ALLRATES_API_KEY)
  3. Update tool descriptions in src/index.ts if you change tool behavior
  4. Update this README's "Tools reference" section if you add or rename a tool

Changelog

See GitHub Releases for the full list. Recent highlights:

  • 0.3.x โ€” API key required for all tools; fail-fast at startup with clear error
  • 0.2.x โ€” Removed news tool, required auth on get_historical_rates
  • 0.1.x โ€” Initial release with 5 tools

Support


License

MIT โ€” see LICENSE.

Related MCP Servers

@agentfund/mcp

๐Ÿ“‡ โ˜๏ธ - Fundraising infrastructure for AI agents on Solana โ€” campaigns, x402 donations, and on-chain reputation. MCP tools for registering agents, creating campaigns, and donating via the x402 pay-to-call flow, backed by Anchor programs (agentregistry, escrow, reputation). npx -y @agentfund/mcp

๐Ÿ’ฐ Finance & Fintech1 views
@asterpay/mcp-server

๐Ÿ“‡ โ˜๏ธ - EUR settlement for AI agents via x402 protocol. Market data, AI tools, crypto analytics โ€” pay-per-call in USDC on Base. SEPA Instant EUR off-ramp.

๐Ÿ’ฐ Finance & Fintech1 views
@czagents/cnb

๐Ÿ“‡ โ˜๏ธ ๐Ÿ  ๐ŸŽ ๐ŸชŸ ๐Ÿง - Czech National Bank (ฤŒNB) daily FX rates: fetch official CZK exchange rates, convert between currencies, fetch historical rates. Cached 10 min to ease upstream load. npm @czagents/cnb or HTTP at cnb.cz-agents.dev/mcp.

๐Ÿ’ฐ Finance & Fintech1 views
@arbitova/mcp-server

๐Ÿ“‡ โ˜๏ธ - Non-custodial on-chain escrow + AI dispute arbitration for agent-to-agent USDC payments on Base. Seven tools covering the full EscrowV1 contract surface: create escrow, mark delivered with on-chain content hash, confirm or dispute, arbiter resolves with signed verdict, cancel/escalate on timeout. npx @arbitova/mcp-server

๐Ÿ’ฐ Finance & Fintech0 views

Engagement

Views
0
Installs
0
Upvotes
0

Views and upvotes are unique per visitor network (hashed IP). Installs count copy actions.

Status

Health: Not checked yet

We have not completed a health check for this listing yet.

Last checked: 7/28/2026, 7:55:00 PM

Unclaimed listing (imported or pending owner verification). Claim it โ†’
โ˜… Spotlight Slot

Feature Your MCP Server

Get maximum visibility for your server across our directory, search results, and detail pages.

Spotlight Your Server

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to get the verified badge and attach your website.

Claim this listing

Promote this listing

Optional paid placement. Free listings stay free forever.

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.