CCM
/MCP
SkillsMCPMarketplacesDigestToolsAdvertise

This week in Claude

Every Monday: Claude Code, Agent SDK, MCP, and the Anthropic platform moves worth your time.

Skills by Category
Frontend DevelopmentBackend & APIsTesting & QASecurityDevOps & CI/CDGit & Pull RequestsDocumentationCode Review & QualityAI & Agent BuildingSkill Development
MCP Servers by Category
Sales & MarketingWeb & Browser AutomationDatabasesAI & LLM ToolsCloud & InfrastructureCommunication & MessagingDeveloper ToolsDesign & CreativeDocuments & KnowledgeSearch & Web Crawling
Marketplaces by Category
AI Agents & OrchestrationLLM IntegrationDevelopment ToolsFrontend & UIBackend & APIsDatabasesTesting & Code QualityDevOps & CloudSecurity & ComplianceGit & Version Control

Claude Code Marketplaces

Discover Claude Code plugins, extensions, and tools. Automatically updated directory of Anthropic Claude AI marketplaces with development tools, productivity plugins, and integrations.

Resources

  • Browse Skills
  • Browse MCP Servers
  • Browse Marketplaces
  • Skill index
  • MCP index
  • Marketplace index
  • Plugins Reference

Community

  • About
  • Tools
  • Feedback
  • Privacy Policy
  • Advertise

Built for the Claude Code community with Claude Code by mertbuilds.com

Independent project, not affiliated with Anthropic
cahthuranag avatar

Realtime Exchange Rate Mcp

cahthuranag/realtime-exchange-rate-mcp
authSTDIOregistry active
Summary

Hooks your MCP client directly into live foreign exchange data via the AllRatesToday API. Exposes four tools: fetch spot rates between any two currencies, pull historical time series at hourly to weekly granularity, batch-query multiple pairs in one call, and list all 150+ supported ISO codes. Requires an API key (free tier available) and runs over stdio with npx zero-install, so setup in Claude Desktop, Cursor, or Windsurf is a three-line JSON snippet. Rates refresh every 60 seconds and historical lookups go back one year. Reach for this when you need Claude to quote real conversion rates, analyze FX trends, or calculate multi-currency totals without hardcoded lookup tables or stale snapshots.

CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
Put your SEO on autopilot
Put your SEO on autopilot
An agent that runs the SEO playbooks that move rankings and ships PRs you control.
Get founding access →
Vibe Prospecting MCPVibe Prospecting MCP
Vibe Prospecting MCP
Connect Claude to +800M contacts, +150M companies. Find & Enrich leads in chat.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
Put your SEO on autopilot
Put your SEO on autopilot
An agent that runs the SEO playbooks that move rankings and ships PRs you control.
Get founding access →
Vibe Prospecting MCPVibe Prospecting MCP
Vibe Prospecting MCP
Connect Claude to +800M contacts, +150M companies. Find & Enrich leads in chat.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →

Realtime Exchange Rate MCP Server — @allratestoday/mcp-server

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 series, and multi-currency lookups from the AllRatesToday API. Rates come from institutional interbank market data.

Powered by AllRatesToday npm version npm downloads CI MCP TypeScript License

English | 简体中文

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."

🚀 Features

  • 💱 Live mid-market rates — current rate for any supported ISO 4217 pair
  • 📈 Historical series built in — 1d (hourly), 7d (daily), 30d (daily), 1y (weekly)
  • 🧰 Four focused tools — get_exchange_rate, get_historical_rates, get_rates_authenticated, list_currencies; a small surface the model uses correctly
  • 🔌 Works everywhere MCP does — stdio transport, MCP SDK 1.x; Claude Code, Cursor, Claude Desktop, Windsurf, or any generic stdio host
  • 🛡️ Fail-fast and honest — refuses to start without an API key and relays upstream API errors verbatim instead of guessing
  • 🔒 Nothing leaks — only the request parameters and your API key ever reach allratestoday.com; never conversation context
  • 📦 Two runtime dependencies — @modelcontextprotocol/sdk and zod; Node.js ≥ 18

Everything these tools return is a mid-market rate — the interbank midpoint, the right number for price display and conversion. It is not the official rate a tax authority or auditor may require; for published central-bank and tax-authority rates, see the AllRatesToday docs.

🔑 Get your API key

The server will not start without a valid ALLRATES_API_KEY, and all four tools require it. A free key is enough for development and personal use.

  1. Register at allratestoday.com/register
  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 the key is missing, the server prints registration instructions on stderr and exits with code 1.

📦 Installation

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 are not meant to be run interactively from your shell; your MCP client launches them as a subprocess.

🏁 Quick start

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, then ask: "What's the current USD to EUR rate?"

Cursor

Edit ~/.cursor/mcp.json (or .cursor/mcp.json inside your project for a project-scoped server):

{
  "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 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 ALLRATES_API_KEY set in the subprocess environment. The same block, ready to copy, also lives in .mcp.json in this repo; smithery.yaml describes the same stdio launch for Smithery, and server.json is the MCP registry manifest.

Verify it works

  1. Server starts — open the client. A red dot or "failed to connect" means the API key is missing or wrong (see Troubleshooting).
  2. Tools are listed — most clients have a "tools" or "MCP" panel showing all 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 produces a number without a tool call, the server is not connected.

📚 API reference

ToolPurposeRequired input
get_exchange_rateCurrent rate for one pairsource, target
get_historical_ratesTime series over a preset periodsource, target
get_rates_authenticatedMultiple targets in one call, optional point-in-timesource, target
list_currenciesAll supported codes, names, symbols—

All four tools require ALLRATES_API_KEY, and every input schema sets additionalProperties: false — unknown fields are rejected.

get_exchange_rate

Current mid-market rate between two currencies. Calls GET /rate.

FieldTypeRequiredDescription
sourcestring (exactly 3 chars)yesISO 4217 code, e.g. USD
targetstring (exactly 3 chars)yesISO 4217 code, e.g. EUR
{ "source": "USD", "target": "EUR" }

Response shape — rate (number) and source (string, the upstream data source identifier):

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

get_historical_rates

Time-series data points for a currency pair over a fixed period. Calls GET /historical-rates.

FieldTypeRequiredDescription
sourcestring (exactly 3 chars)yesSource currency code
targetstring (exactly 3 chars)yesTarget currency code
periodstringno (default 7d)One of 1d, 7d, 30d, 1y

Granularity per period:

periodGranularity
1dHourly
7dDaily
30dDaily
1yWeekly
{ "source": "USD", "target": "INR", "period": "30d" }

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 an optional historical timestamp or grouping window. Calls GET /v1/rates.

FieldTypeRequiredDescription
sourcestring (exactly 3 chars)yesSource currency code
targetstringyesOne or more codes, comma-separated (EUR,GBP,JPY)
timestring (ISO 8601 date-time)noHistorical point in time
groupstringnoOne of hour, day, week, month
{ "source": "USD", "target": "EUR,GBP,JPY" }

Response — an array of { rate, source, target, time }:

[
  { "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. Calls GET /v1/symbols, cached 24 h upstream — cheap to call for validating user input before the other tools.

Input — none.

Response (truncated):

{
  "currencies": [
    { "code": "USD", "name": "US Dollar", "symbol": "$" },
    { "code": "EUR", "name": "Euro", "symbol": "€" },
    { "code": "GBP", "name": "British Pound", "symbol": "£" },
    "..."
  ],
  "count": 162
}

🗺️ Currencies covered

Every currency the AllRatesToday API serves is available through these tools — call list_currencies for the authoritative live list. Commonly used codes include:

🇺🇸 USD · 🇪🇺 EUR · 🇬🇧 GBP · 🇯🇵 JPY · 🇨🇦 CAD · 🇮🇳 INR

The source and target fields of get_exchange_rate and get_historical_rates are validated as exactly three characters, so pass ISO 4217 codes, not currency names.

⚙️ Environment variables

VariableDefaultRequiredPurpose
ALLRATES_API_KEY—yesYour API key. The server exits with code 1 at startup if unset; sent as a Bearer token in the Authorization header.
ALLRATES_BASE_URLhttps://allratestoday.com/apinoOverride for a self-hosted or staging deployment. Trailing slashes are stripped.

Set these in your MCP client's config (in the env block), not in your shell — MCP servers are launched as subprocesses with isolated environments.

🛡️ Error handling

Tool failures come back as an MCP tool result with isError: true. The text is AllRatesToday error (<status>): <message>, where <message> is the error field from the API response body when present, and HTTP <status> otherwise.

HTTP statusMeaning
400Bad request — usually an unknown or malformed currency code
401Invalid or missing API key
429Rate limit or quota exceeded
5xxServer-side issue upstream

Two errors are raised locally, before any HTTP call:

  • No API key at request time → API key is required. Get one at https://allratestoday.com/register, then set ALLRATES_API_KEY in your MCP config.
  • Unrecognised tool name → Unknown tool: <name>

Because these arrive as text, the assistant relays them to the user — a 429 surfaces as "the API quota has been exceeded."

🛠️ Troubleshooting

SymptomLikely causeFix
Client shows "MCP server failed to start" or a red dotALLRATES_API_KEY not setAdd the key to the env block in your client config
Every call returns a 401 errorKey malformed, truncated, or revokedCopy a fresh key from the dashboard
Calls return a 429 errorPlan request limit hitWait for the quota to reset or upgrade the plan
get_historical_rates returns a 400 errorInvalid period or unknown currency codeperiod must be 1d/7d/30d/1y; codes must be exactly 3 letters
Server starts but tools never appearClient did not reload after the config changeFully quit (not just close) and reopen the client
npx runs but hangs foreverNormal — the server is waiting for an MCP client on stdioLet your MCP client launch it

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

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

No output means healthy — stdout is reserved for the MCP protocol; errors print to stderr.

💡 Notes

Do you store my conversation or query data? No. Only your API key and the request parameters (source, target, period, time, group) are sent to allratestoday.com — never the model's conversation context.

What happens to my API key? It is only sent as a Bearer token in the Authorization header on requests to the AllRatesToday API. The server does not log it.

Why is the first call slow? Cold start of npx (the first run downloads the package) plus an upstream cache miss.

Can I run this without npm/Node? Not currently — engines requires Node ≥ 18. If a standalone binary matters to you, open an issue.

Is there a self-hosted option? Point ALLRATES_BASE_URL at your own instance.

Does it work with other clients? Any MCP-compatible host with stdio transport works; the four clients above are simply the ones with documented config paths here.

👩‍💻 Development

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

npm run build runs tsc; npm run dev watches and rebuilds; npm start runs the compiled server. CI (.github/workflows/ci.yml) runs npm ci && npm run build on Node 22 for every push to main and every pull request.

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 definitions, request handlers
└── client.ts     # HTTP client for the AllRatesToday API + error mapping
dist/             # Compiled JS (gitignored)
server.json       # MCP registry manifest
smithery.yaml     # Smithery launch config
.mcp.json         # Ready-to-copy client config

Issues and PRs are welcome. Before opening a PR: npm run build must succeed, exercise the change against a real API key, and update both the tool descriptions in src/index.ts and the API reference above if tool behaviour changes.

📝 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 instructions
  • 0.2.x — Removed the news tool; required auth on get_historical_rates
  • 0.1.x — Initial release with 5 tools

🔗 Links

  • Website: allratestoday.com
  • API docs: allratestoday.com/docs
  • Free API key: allratestoday.com/register
  • Status: allratestoday.com/status
  • Support: allratestoday.com/contact
  • npm: @allratestoday/mcp-server
  • MCP protocol: modelcontextprotocol.io
  • Bug reports: github.com/cahthuranag/realtime-exchange-rate-mcp/issues

📜 License

MIT — see LICENSE.

Featured
CodeRabbit
CodeRabbit
AI writes the code. CodeRabbit catches the slop.
Try For Free →
AppSignal
AppSignal
Monitor with ease. Code with confidence.
Start Free Trial →
Make money from your Skills
Make money from your Skills
On Capafy, your Skill runs online 24/7 as an agent product, and you get paid every time someone uses it.
Start earning →
Put your SEO on autopilot
Put your SEO on autopilot
An agent that runs the SEO playbooks that move rankings and ships PRs you control.
Get founding access →
Vibe Prospecting MCPVibe Prospecting MCP
Vibe Prospecting MCP
Connect Claude to +800M contacts, +150M companies. Find & Enrich leads in chat.
Try For Free →
Make your agent a DeFi expert
Make your agent a DeFi expert
Agent, run crypto. Access onchain data & trade routes via 1inch.
Install now →

Configuration

ALLRATES_API_KEY*secret

API key (art_live_xxxxx). Required for all tools. Get one free at https://allratestoday.com/register.

ALLRATES_BASE_URL

Override API base URL (default: https://allratestoday.com/api).

Categories
Data & Analytics
Registryactive
Package@allratestoday/mcp-server
TransportSTDIO
AuthRequired
UpdatedApr 27, 2026
View on GitHub

Related Data & Analytics MCP Servers

View all →
cammac-creator avatar
Openswissdata

cammac-creator/openswissdata

Swiss federal open data via MCP: TARES tariffs, FINMA registry, NOGA codes (9 tools).
canopyhq avatar
Phloem

canopyhq/phloem

Local-first AI memory with causal graphs. Fully offline, zero config, your data stays local.
capratesignals avatar
cap-rate-signals

capratesignals/cap-rate-signals

Cap Rate Signals — US Real Estate Investment Intelligence Identifies US real estate markets that are about to reprice upward, before consensus catches up. Tracks confirmed corporate investment — semiconductor fabs, pharma plants, defense campuses, data centers — and scores markets based on where workers are arriving but housing demand hasn't yet been priced in. 14 tools covering market discovery, investment briefs, head-to-head comparisons, regional comps, signal alerts, and map data. Data sourced live from a proprietary database monitoring 109 companies across 40+ US metros. Use it to ask: Where should I invest right now? What's happening in Indianapolis? Show me semiconductor markets under $300K. What moved this week?
cdcstream avatar
Captapi

cdcstream/captapi

Social media data from YouTube, TikTok, Instagram & Facebook. 62 tools, one API key.
ch.swisslivingindex avatar
Swiss Living Index

ch.swisslivingindex/swiss-living-index

Official Swiss living-cost & relocation data for all 26 cantons — taxes, rent, premiums, jobs.
cherkavskyi avatar
memplato

cherkavskyi/memplato

Personal MCP memory server that runs on your Android phone via Termux. 29 tools: drawers, knowledge graph, diary, semantic search, tunnels. All data stored locally on your device, never on external servers. Works with Claude, Perplexity, Cursor, Windsurf, VS Code, Zed.