DatoQA — Historical Exchange Rates
ECB recent and historical EUR reference exchange rates since 1999. Exact source dates, original decimals, citations and explicit gaps. Not live or executable prices.
7 tools

MCP integration documentation
Free pilot MCP for sourced data, table validation and dated batch conversions to 30 supported currencies including EUR, USD, JPY, CNY, GBP, CHF, INR and KRW. Historical exchange rates, country indicators and international public-holiday calendars. Explicit gaps and provenance.
27 read-only tools · Streamable HTTP · No account, API key or wallet · Free factual tools during the pilot
ECB recent and historical EUR reference exchange rates since 1999. Exact source dates, original decimals, citations and explicit gaps. Not live or executable prices.
7 tools
World Bank annual country indicators and history since 1960; scoped Eurostat, BLS, Bank of Canada, ECB, Fed and Bank of England policy-rate series. Units, source dates, missing values and citations. Availability varies by series; not real-time.
13 tools
FR/UK/HK government calendars plus international OpenHolidays curated public holidays. Published dates and multilingual names, regional and half-day scope, explicit source kind and gaps. International coverage is incomplete; future dates can change.
5 tools
Remote MCP endpoint:
https://datoqa.bhazarstudio.workers.dev/mcp
Connect one scope. Adding both the general server and every theme duplicates tools. Review and merge configuration with existing servers; do not overwrite another connection named datoqa.
claude mcp add --transport http datoqa https://datoqa.bhazarstudio.workers.dev/mcp
Use /mcp to check the connection. Download project .mcp.json content.
Merge into .vscode/mcp.json, then use MCP: List Servers and enable the tools in agent chat.
{
"servers": {
"datoqa": {
"type": "http",
"url": "https://datoqa.bhazarstudio.workers.dev/mcp"
}
}
}Download VS Code configuration
Merge into the project’s .cursor/mcp.json, then review the server in MCP settings.
{
"mcpServers": {
"datoqa": {
"url": "https://datoqa.bhazarstudio.workers.dev/mcp"
}
}
}If you know the supported identifiers, call the data tool directly. A separate catalog or evidence call is optional. The data response already includes citations and freshness.
What was the ECB USD reference rate per EUR on 15 September 2008? Cite the source and distinguish it from a tradable quote.
Avec DatoQA, donne le taux de référence BCE du dollar pour un euro au 15 septembre 2008, avec sa source. Précise qu’il ne s’agit pas d’un cours négociable.
Tool: get_exchange_rate_history
{
"currency": "USD",
"date": "2008-09-15"
}Show US GDP per capita in current USD for 2000 and 2020, with source, observation years and missing values. Do not describe the difference as real purchasing-power growth.
Avec DatoQA, compare le PIB par habitant des États-Unis en dollars courants en 2000 et en 2020. Cite la source et distingue les dollars courants du pouvoir d’achat réel.
Tool: get_historical_indicators
{
"country": "USA",
"indicator": "gdp_per_capita",
"from": 2000,
"to": 2020
}Which official bank holiday is listed for England and Wales on 28 December 2026? Preserve the substitute-day note; do not infer business opening hours.
Avec DatoQA, quel jour férié officiel est publié pour l’Angleterre et le pays de Galles au 28 décembre 2026 ? Conserve la note de report, sans conclure sur les horaires des commerces.
Tool: get_public_holidays
{
"region": "gb-england-and-wales",
"date": "2026-12-28"
}convert_currency_batch converts dated decimal-string amounts to a target_currency chosen from 30 supported currencies, including EUR (default), USD, JPY, CNY, GBP, CHF, INR and KRW using exact-date ECB references. Supported target codes: EUR, USD, JPY, CZK, DKK, GBP, HUF, PLN, RON, SEK, CHF, ISK, NOK, TRY, AUD, BRL, CAD, CNY, HKD, IDR, ILS, INR, KRW, MXN, MYR, NZD, PHP, SGD, THB, ZAR. JPY, KRW and ISK use zero decimal places; other supported targets use two (ISO 4217 minor units, not cash rounding). Availability depends on source dates; use list_exchange_rate_history to inspect coverage. Cross conversions retain both rates and their evidence; no intermediate rounding. Read amount_target and total_target; legacy euro fields are null for non-EUR targets. No transfers or date substitution. A missing or stale rate blocks the complete export and total.
{
"rows": [
{
"id": "example-1",
"date": "2025-09-26",
"currency": "USD",
"amount": "125.50"
}
],
"target_currency": "GBP",
"output_format": "both"
}Demandez : « Convertis ces montants en livres sterling aux dates indiquées, conserve les montants d’origine et explique les lignes impossibles à convertir. »
validate_table checks CSV or JSON string/null rows using explicit column types, formats, allowed values and duplicate keys. No row deletion or inferred dates. The caller supplies allowed country/currency codes; the tool does not independently verify facts.
{
"format": "json",
"columns": [
{
"name": "reference",
"type": "text",
"trim": true
},
{
"name": "amount",
"type": "decimal",
"decimal_separator": ","
}
],
"rows": [
[
" 001 ",
"12,50"
]
],
"unique_by": [
"reference"
],
"output_format": "both"
}Demandez : « Contrôle mon tableau, repère les doublons et les erreurs de format, puis explique chaque modification. »
Maximum 500 rows and 48,000 UTF-8 argument bytes; 20 columns for tables or eight currency/year snapshots for conversions. Start small. JSON by default; output_format=both adds CSV to the same free result. Inspect status and issues. Customer content stays in memory; DatoQA retains only aggregate tool/status/count telemetry. No wallet or payment required. Original ECB data is free; references are indicative, not executable or accounting/tax certification.
Use reconcile_tables for a free preview of two explicitly mapped CSV/JSON tables: exact one-to-one keys, quantities, identical units, net/gross amounts and optional dated ECB conversion. Maximum 500 combined rows and 48,000 input bytes. Duplicates, invalid rows and incomparable units block purchase. Differences and unmatched valid rows are findings, not proof of unpaid invoices. No fuzzy matching or accounting certification.
To compare catalogue, inventory or CRM versions, use mode: "fields". Supply left and right tables as usual, but each mapping contains only keys. Set fields: [{"left":"status","right":"status"}] for the columns to compare (up to 19). Omit amount_basis and all financial options. The report identifies added/removed rows and changed field values. Row order is ignored; only mapped fields are compared as explicitly normalized strings or null. Null and empty text differ, as do decimal spellings such as 1.0 and 1.00. Empty snapshots are supported. No database synchronization or independent factual check. JSON retains original values; CSV contains row-presence and null flags.
A complete dossier costs 0.002 USDC on Base, including JSON and CSV. Save the private encrypted ticket and result digest before payment. Use an authorized x402 HTTP client to POST {"ticket":"..."} to /v1/paid/table-reconciliation; never put a ticket in a URL. The quote lasts at most ten minutes. After a lost response POST the same ticket with "recover_only":true, without a payment signature. A confirmed purchase is recoverable until 24 hours from preview. A pending settlement requires operator review: do not sign or pay again. Ticket holders can recover the paid dossier. DatoQA processes tables in memory and stores only minimal payment receipts. The existing validation and currency-conversion tools stay free.
Compare two inventory exports by SKU, or adapt the explicit fields to catalogue attributes or CRM statuses. This synthetic example finds one changed row, one left-only row and one right-only row. No inferred stock movements or synchronization.
{
"mode": "fields",
"left": {
"table": {
"format": "json",
"columns": [
{
"name": "sku",
"type": "text",
"required": true,
"nullable": false
},
{
"name": "quantity",
"type": "decimal"
},
{
"name": "status",
"type": "text",
"required": false,
"nullable": true
}
],
"rows": [
[
"00123",
"12",
"active"
],
[
"00456",
"3",
null
]
]
},
"mapping": {
"keys": [
"sku"
]
}
},
"right": {
"table": {
"format": "json",
"columns": [
{
"name": "sku",
"type": "text",
"required": true,
"nullable": false
},
{
"name": "quantity",
"type": "decimal"
},
{
"name": "status",
"type": "text",
"required": false,
"nullable": true
}
],
"rows": [
[
"00123",
"10",
"active"
],
[
"00789",
"2",
"new"
]
]
},
"mapping": {
"keys": [
"sku"
]
}
},
"fields": [
{
"left": "quantity",
"right": "quantity"
},
{
"left": "status",
"right": "status"
}
]
}Call reconcile_tables on the general MCP. The free summary may be sufficient for your task. Purchase is optional when the detailed original/normalized rows, comparisons and CSV are useful.
Runnable preview and purchase/recovery instructions · Download the synthetic inputs. Run node mcp.mjs reconcile_tables; it has no payment capability and hides the private ticket from terminal output.
Compare ces deux inventaires par référence exacte. Montre gratuitement les comptes des écarts, explique les limites et le prix du dossier détaillé. Ne paie rien sans budget autorisé.
Need a ready-to-use table for several countries? The existing country report defaults to population, current-USD GDP and annual CPI inflation for 1–10 economies over five completed years. Custom dossiers can select up to six of 22 historical WDI indicators over up to ten years: trade, energy, land use, water, health or education. Supply report_indicators, report_from and report_to together in catalog, or indicators/from/to in HTTP. Missing observations block purchase. One payment of 0.002 USDC on Base includes aligned JSON, an embedded CSV export, definitions, original producers, notes and source snapshots. Original data and factual tools remain free; this pays for preparation and delivery, not exclusive data or independent factual verification.
First ask the existing catalog tool for a free preview:
{"report_countries":["FRA","DEU","ESP","ITA","NLD"],"language":"fr"}Open the free HTTP preview. Inspect purchasable, missing cells, source dates and price. The preview never pays. A missing numeric value or stale/incomplete source blocks the purchase.
To buy, use the returned purchase_path with an x402-enabled HTTP client and an authorized budget. Ordinary MCP connectivity does not enable payment. The snapshot digest must match the preview; changes return 409 before payment. Save the JSON response and its csv.content without making a second purchase. Do not blindly authorize a new payment after a lost response; automatic recovery/refunds are not offered.
The focused guides describe source publishers, variables, units, gaps and reuse information. Use their live directories before choosing a country, currency, region or year. Supported scope is not a promise that every record is currently available.
status and returned, then the observation period and unit. HTTP 200 can contain an unavailable or empty result.source_unavailable_or_stale means there is no currently publishable snapshot; retry later or consult the publisher. It does not establish a zero value.no_numeric_data_in_period, no_data_in_period, year_not_covered or no_holiday_listed_for_date describe different gaps. Never replace a missing value with zero or infer a working day.citation, freshness and provenance. A SHA-256 evidence hash checks the stored source snapshot, not independent factual truth.World Bank economy codes use three characters, such as USA and FRA. Eurostat uses its own two-character codes, with EL for Greece. Holiday region identifiers such as gb-england-and-wales and oh-de are a separate system.
Use the focused guides for their exact coverage. Other general tools include ten NWS US forecast points, a rolling USGS M2.5+ earthquake feed and French RappelConso notices: latest 20 by default, or scope=history for monthly archives with GTIN search. Inspect missing months; none is exhaustive.
Read status, returned, observation dates, units, nulls, freshness, citation and provenance. Collection time is not the observation period. Historical values can be revised. independently_verified remains false: official-source and schema checks are not independent factual corroboration. Missing information stays unavailable.
Use Streamable HTTP with the exact endpoint above. Client policies and workspace trust may restrict MCP. No authentication is required for factual tools. A successful HTTP status alone does not prove usable data: inspect the structured status. An out-of-theme tool requires another scope.
Runnable HTTP and SDK examples · Dated response excerpts · Live catalog · OpenAPI · Plain-text quickstart
Configuration syntax checked against official client documentation; SDK tests are not end-to-end certification of each client interface. No uptime guarantee during the pilot. The optional paid HTTP country report is separate and is never called by these examples.