Card snapshot
allratestoday.com
·
2026-10-31 07:58:16 UTC
·
663d792b81ade2f42aff850a16e67d3e427a19fee16744d74d6d338549ba5f4e
This is a frozen copy of the agent's agent-card.json as we observed it at the timestamp above. We capture a new snapshot every time the card's content hash changes. Useful for: forensic drift analysis, verifying downstream callers see the right version, reproducing routing decisions made historically.
{
"protocolVersion": "0.3.0",
"name": "AllRatesToday",
"description": "Exchange-rate agent: live mid-market rates for 160+ currencies and official rates published by central banks and tax authorities. Send plain text (\"convert 250 EUR to USD\", \"ECB EUR USD 2026-10-01\", \"list central banks\") or a data part { skill, ...arguments } naming a skill id.",
"version": "1.2.0",
"url": "https://allratestoday.com/api/a2a",
"preferredTransport": "JSONRPC",
"supportedInterfaces": [
{
"url": "https://allratestoday.com/api/a2a",
"protocolBinding": "JSONRPC",
"protocolVersion": "0.3.0"
}
],
"provider": {
"organization": "AllRatesToday",
"url": "https://allratestoday.com"
},
"documentationUrl": "https://allratestoday.com/docs/",
"iconUrl": "https://allratestoday.com/favicon.svg",
"capabilities": {
"streaming": false,
"pushNotifications": false,
"stateTransitionHistory": false
},
"securitySchemes": {
"bearer": {
"type": "http",
"scheme": "bearer",
"description": "Optional. Keyless calls get official rates and the ECB table; an art_live_ key adds real-time rates. Skill request_trial_key issues one."
}
},
"defaultInputModes": [
"text/plain",
"application/json"
],
"defaultOutputModes": [
"application/json",
"text/plain"
],
"skills": [
{
"id": "get_exchange_rate",
"name": "Get live exchange rate",
"description": "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` \u2014 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.",
"tags": [
"exchange-rates",
"currency"
],
"examples": [
"convert 250 EUR to USD",
"GBP to JPY"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "get_historical_rates",
"name": "Get historical rate time-series",
"description": "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`.",
"tags": [
"exchange-rates",
"currency"
],
"examples": [
"history EUR USD 30d"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "get_rates_authenticated",
"name": "Get multi-target or point-in-time rates",
"description": "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).",
"tags": [
"exchange-rates",
"currency"
],
"examples": [
"rates USD to EUR,GBP,JPY"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "list_currencies",
"name": "List supported currencies",
"description": "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.",
"tags": [
"exchange-rates",
"currency"
],
"examples": [
"list currencies"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "list_central_banks",
"name": "List covered central banks & tax authorities",
"description": "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 \u2014 123 central banks plus 4 tax authorities (HMRC, US Treasury, Swiss BAZG, India's CBIC) \u2014 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.",
"tags": [
"exchange-rates",
"currency",
"central-bank"
],
"examples": [
"list central banks"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "get_official_rates",
"name": "Get a bank's official published rates",
"description": "OFFICIAL rates a named institution published \u2014 '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 \u2014 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 \u2014 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 \u2014 cross-computed inside the bank's own table when not directly published, flagged `derived`. Always cite the returned `rate_date`.",
"tags": [
"exchange-rates",
"currency",
"central-bank"
],
"examples": [
"ECB EUR USD",
"RBI USD INR 2026-10-01"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "get_official_rate_history",
"name": "Get a bank's official rate history",
"description": "Date-by-date series of one bank's OFFICIAL rates \u2014 '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 \u2014 keep ranges narrow. For publication dates without values use get_publication_calendar.",
"tags": [
"exchange-rates",
"currency",
"central-bank"
],
"examples": [
"ECB history EUR USD from 2026-01-01 to 2026-03-31"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "compare_official_rates",
"name": "Compare one pair across every bank",
"description": "One currency pair across ALL institutions at once \u2014 '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/",
"tags": [
"exchange-rates",
"currency",
"central-bank"
],
"examples": [
"compare USD EUR across central banks"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "get_publication_calendar",
"name": "Get a bank's publication calendar",
"description": "Which dates a bank actually published a rate table \u2014 '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`.",
"tags": [
"exchange-rates",
"currency"
],
"examples": [
"ECB calendar 2026"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "get_reference_rate",
"name": "Get the Daily Reference Rate (16:00 London)",
"description": "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 \u2014 index levels, return series, research datasets, month-end reports \u2014 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 \u2014 relay the disclaimer and the rate_date.",
"tags": [
"exchange-rates",
"currency"
],
"examples": [
"reference rate EUR USD"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json",
"text/plain"
]
},
{
"id": "request_trial_key",
"name": "Request a trial API key",
"description": "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 \u2014 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) or see https://allratestoday.com/pricing.",
"tags": [
"exchange-rates",
"currency"
],
"examples": [
"request a trial key"
],
"inputModes": [
"text/plain",
"application/json"
],
"outputModes": [
"application/json",
"text/plain"
]
}
]
}