Skip to content

AllRatesToday exchange rates (hosted)

by allratestoday.com · remote · no sign-in to list tools · v1.0.0 · published by com.allratestoday

Live FX + official central-bank rates, 110+ sources. Hosted, keyless, nothing to install.

Changes · 3

11 tools: 3 change things and 8 only read.

Scanned Oct 21, 2026

2 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http allratestoday https://allratestoday.com/api/mcp

Findings

Matches of fixed checks, with the text they matched.

2 warn
  • The server marks "list_currencies" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "list_currencies" says "list": a word for reading.

    What this check looks for
  • The server marks "list_central_banks" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

    Matched text

    annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "list_central_banks" says "list": a word for reading.

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

11 tools

Changes things 3Claude Code: ask
  • list_central_banksCall this FIRST when you need a bank code, or for 'which central banks do you cover?' / 'do you have rates from X?'.1 finding

    Why it is in this group

    • The name "list_central_banks" says "list": a word for reading.
    • The description's first verb is "call": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "list_central_banks" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "list_central_banks" says "list": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Call this FIRST when you need a bank code, or for 'which central banks do you cover?' / 'do you have rates from X?'. Returns every covered source — 122 central banks plus 4 tax authorities (HMRC, US Treasury, Swiss BAZG, India's CBIC) — with `code` (what every other official-rates tool takes as `bank`), name, latest publication date and whether it is behind schedule. No API key needed.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • destructiveHint: false
    • title: List covered central banks & tax authorities
  • list_currenciesCall this when unsure whether a currency code is supported, or for 'what currencies do you support?' / 'what is the symbol for X?'.1 finding

    Why it is in this group

    • The name "list_currencies" says "list": a word for reading.
    • The description's first verb is "call": a word for a change.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Warn

      The server marks "list_currencies" read-only (readOnlyHint: true), and its own name, description or input give the class "write".

      Matched text

      annotations: {"readOnlyHint":true,"destructiveHint":false,"openWorldHint":true}; The name "list_currencies" says "list": a word for reading.

      What this check looks for
    Description, as the server wrote it
    Call this when unsure whether a currency code is supported, or for 'what currencies do you support?' / 'what is the symbol for X?'. Returns { currencies: [{ code, name, symbol }], count } for 150+ ISO 4217 fiat currencies. No API key needed; cheap to call.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • destructiveHint: false
    • title: List supported currencies
  • request_trial_keySelf-issue an AllRatesToday API key with 100 lifetime calls, valid 7 days, with no account and no email.No findings

    Why it is in this group

    • The name "request_trial_key" says "request": a word for a change.
    Description, as the server wrote it
    Self-issue an AllRatesToday API key with 100 lifetime calls, valid 7 days, with no account and no email. Use it when another tool answered "needs an API key" and the user wants real-time rates, history, dated central-bank tables or cross-bank comparison right now. The key is returned once — store it, then reconnect to https://allratestoday.com/api/mcp?api_key=<key> (or send `Authorization: Bearer <key>`); this stateless server cannot adopt the key mid-session. Capped at 3 keys per IP per day. For a lasting key, register at https://allratestoday.com/register (free, 300 calls) or see https://allratestoday.com/pricing.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
    • title: Request a trial API key
Only reads 8Claude Code: allow
  • compare_official_ratesOne currency pair across ALL institutions at once — 'what does each central bank say USD/EUR is?', 'spread between official USD/LKR rates'.No findings

    Why it is in this group

    • The name "compare_official_rates" says "compare": a word for reading.
    Description, as the server wrote it
    One currency pair across ALL institutions at once — 'what does each central bank say USD/EUR is?', 'spread between official USD/LKR rates'. Returns every covered bank's latest official rate for the pair plus { min, max, median, spread_bps } over fresh sources. Banks are never mixed: derived rates are cross-computed within each bank's own table. API key required (free tier). Methodology: https://allratestoday.com/official-rates-methodology/

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • destructiveHint: false
    • title: Compare one pair across every bank
  • get_exchange_rateUse this when the user asks 'what is X in Y?', 'convert X to Y', 'current rate of EUR/USD', or any single fiat-to-fiat exchange rate question.No findings

    Why it is in this group

    • The name "get_exchange_rate" says "get": a word for reading.
    Description, as the server wrote it
    Use this when the user asks 'what is X in Y?', 'convert X to Y', 'current rate of EUR/USD', or any single fiat-to-fiat exchange rate question. Returns { rate, source } meaning 1 source = rate target. Without an API key it answers from the official ECB daily reference table (~30 majors) and says so in `note` — relay the `rate_date`. With a key it is the real-time mid-market rate for 160+ currencies. For several targets at once use get_rates_authenticated; for a time series use get_historical_rates; for a specific institution's official rate use get_official_rates.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • destructiveHint: false
    • title: Get live exchange rate
  • get_historical_ratesFixed-window time series ending now: 'how has EUR/USD moved this week', 'last month of GBP/JPY', '1-year AUD/USD'.No findings

    Why it is in this group

    • The name "get_historical_rates" says "get": a word for reading.
    Description, as the server wrote it
    Fixed-window time series ending now: 'how has EUR/USD moved this week', 'last month of GBP/JPY', '1-year AUD/USD'. Returns { source, target, period, data: [{ date, rate, timestamp }] }. Sampling: 1d=hourly, 7d/30d=daily, 1y=weekly. Requires an API key on a paid plan; free and trial keys get a 403. For a specific past datetime use get_rates_authenticated with `time`.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • destructiveHint: false
    • title: Get historical rate time-series
  • get_official_rate_historyDate-by-date series of one bank's OFFICIAL rates — 'ECB USD rate for every day of 2025', 'how did the CBSL rate move last quarter'.No findings

    Why it is in this group

    • The name "get_official_rate_history" says "get": a word for reading.
    Description, as the server wrote it
    Date-by-date series of one bank's OFFICIAL rates — 'ECB USD rate for every day of 2025', 'how did the CBSL rate move last quarter'. Returns { series: [{ date, rate, rate_type, derived, method }] }. Give either `symbol` (vs the bank's home currency) or a source+target pair; from/to default to the last year. API key with a paid plan, BILLED BY VOLUME: one call per month of history covered — keep ranges narrow. For publication dates without values use get_publication_calendar.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • destructiveHint: false
    • title: Get a bank's official rate history
  • get_official_ratesOFFICIAL rates a named institution published — 'what is the ECB rate for USD?', 'Bank of Japan rate on 2026-03-14', 'HMRC rate for invoicing'.No findings

    Why it is in this group

    • The name "get_official_rates" says "get": a word for reading.
    Description, as the server wrote it
    OFFICIAL rates a named institution published — 'what is the ECB rate for USD?', 'Bank of Japan rate on 2026-03-14', 'HMRC rate for invoicing'. These are the fixed, citable rates for compliance, tax, customs and accounting — NOT live market rates. Omit `date` for the newest published table (no API key needed); give `date` (API key, paid plan) for the table in force that day — weekends/holidays roll back to the last published date and the response's `rate_date` says which. Omit source/target for the full table; give both for one pair — cross-computed inside the bank's own table when not directly published, flagged `derived`. Always cite the returned `rate_date`.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • destructiveHint: false
    • title: Get a bank's official published rates
  • get_publication_calendarWhich dates a bank actually published a rate table — 'did the ECB publish on 2026-01-01?', 'how often does the US Treasury publish?'.No findings

    Why it is in this group

    • The name "get_publication_calendar" says "get": a word for reading.
    Description, as the server wrote it
    Which dates a bank actually published a rate table — 'did the ECB publish on 2026-01-01?', 'how often does the US Treasury publish?'. Dates only, no values, so it is on every plan (API key required, free tier). Give `year` or a from/to range; large ranges are capped and flagged `truncated`.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • destructiveHint: false
    • title: Get a bank's publication calendar
  • get_rates_authenticatedOne source against several targets in a single call ('USD vs EUR, GBP, JPY'), or the rate at a specific past datetime, optionally bucketed by hour/day/week/month.No findings

    Why it is in this group

    • The name "get_rates_authenticated" says "get": a word for reading.
    Description, as the server wrote it
    One source against several targets in a single call ('USD vs EUR, GBP, JPY'), or the rate at a specific past datetime, optionally bucketed by hour/day/week/month. Returns { rates: [{ rate, source, target, time }] }. Requires an API key (free tier for latest rates; a past datetime needs a paid plan).

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • destructiveHint: false
    • title: Get multi-target or point-in-time rates
  • get_reference_rateAllRatesToday's once-a-day, never-revised mid-market rate: the per-currency median of five samples in a five-minute window centred on 16:00 London, published each business day.No findings

    Why it is in this group

    • The name "get_reference_rate" says "get": a word for reading.
    Description, as the server wrote it
    AllRatesToday's once-a-day, never-revised mid-market rate: the per-currency median of five samples in a five-minute window centred on 16:00 London, published each business day. Use it when the user needs ONE reproducible rate per day — index levels, return series, research datasets, month-end reports — rather than a live quote (get_exchange_rate) or an institution's official rate (get_official_rates). Keyless: returns the latest table, or one pair with source/target (cross via USD, flagged derived). With a key, `date` returns the table for a past business day. Not the WM/Refinitiv fix and not a registered benchmark — relay the disclaimer and the rate_date.

    Annotations the server declares

    • readOnlyHint: true
    • openWorldHint: true
    • destructiveHint: false
    • title: Get the Daily Reference Rate (16:00 London)

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 1.0.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http allratestoday https://allratestoday.com/api/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__allratestoday__get_exchange_rate",
      "mcp__allratestoday__get_historical_rates",
      "mcp__allratestoday__get_rates_authenticated",
      "mcp__allratestoday__get_official_rates",
      "mcp__allratestoday__get_official_rate_history",
      "mcp__allratestoday__compare_official_rates",
      "mcp__allratestoday__get_publication_calendar",
      "mcp__allratestoday__get_reference_rate"
    ],
    "ask": [
      "mcp__allratestoday__list_currencies",
      "mcp__allratestoday__list_central_banks",
      "mcp__allratestoday__request_trial_key"
    ],
    "deny": []
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as allratestoday. Review it before you use it.