DatoQA — Historical Exchange Rates
Convert dated amounts to EUR using ECB references, or get historical rates. Exact dates; no trading.
¿Debería usar esto?
Calidad y seguridad
Basado en el análisis automatizado de las definiciones de herramientas y el cumplimiento del protocolo.
Costo de contexto
Este es el número aproximado de tokens que se consumen cada vez que las herramientas del servidor se cargan en el contexto de un modelo. Los recuentos más altos reducen la atención disponible para otras tareas.
Instalar
Instalación con un clic
Agrega esto a tu archivo `claude_desktop_config.json`:
{
"mcpServers": {
"historical-exchange-rates": {
"url": "https://datoqa.bhazarstudio.workers.dev/mcp/fx"
}
}
}Puntos de conexión remotos
https://datoqa.bhazarstudio.workers.dev/mcp/fxstreamable-httpQué puede hacer
Inventario de herramientas
Herramientas (7)
🟢catalog(report_countries, report_indicators, report_from, report_to, language)
Inspect this connection’s scope, tools and access policy. With no arguments returns the usual catalog. On the general or economy connection, optionally supply report_countries (1–10 World Bank codes) for a FREE live preview of the optional paid country comparison: population/GDP/inflation by default, or up to six selected historical indicators over ten years, aligned JSON and CSV, definitions and source evidence. Preview reports price, missing cells, availability and the exact HTTP purchase path; it never signs or pays. Existing data tools remain free. Buying requires an authorized x402 HTTP client, not just MCP. Source/schema checks are not independent factual verification.
Esquema de entrada
{
"type": "object",
"properties": {
"report_countries": {
"description": "Optional free preview for these distinct World Bank country codes, e.g. FRA, DEU, ESP. General/economy connections only.",
"minItems": 1,
"maxItems": 10,
"type": "array",
"items": {
"type": "string",
"pattern": "^[A-Z0-9]{3}$"
}
},
"report_indicators": {
"description": "Custom historical comparison: select up to six of the 22 WDI indicators. Supply report_from and report_to together, up to ten years. Missing cells block payment.",
"minItems": 1,
"maxItems": 6,
"type": "array",
"items": {
"type": "string",
"enum": [
"population",
"gdp",
"gdp_per_capita",
"gdp_real",
"gdp_growth",
"inflation",
"life_expectancy",
"fertility",
"urban_population",
"internet_users",
"electricity_access",
"unemployment",
"renewable_energy",
"forest_area",
"agricultural_land",
"trade",
"exports",
"imports",
"infant_mortality",
"basic_drinking_water",
"basic_sanitation",
"primary_completion"
]
}
},
"report_from": {
"type": "integer",
"minimum": 1960,
"maximum": 9007199254740991
},
"report_to": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 2025
},
"language": {
"default": "en",
"type": "string",
"enum": [
"en",
"fr"
]
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Esquema de salida
{
"type": "object",
"properties": {
"name": {
"type": "string",
"const": "DatoQA"
},
"version": {
"type": "string"
},
"available_records": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"title": {
"type": "string"
},
"profile": {
"type": "string"
},
"tools": {
"type": "array",
"items": {
"type": "string"
}
},
"capabilities": {
"type": "array",
"items": {
"type": "string"
}
},
"independently_verified": {
"type": "boolean",
"const": false,
"description": "Official-source checks are not independent factual corroboration."
}
},
"required": [
"name"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {},
"description": "General availability catalog or a scoped thematic directory; theme metadata is not a live availability guarantee."
}🟢get_exchange_rates(currency)
ECB indicative daily currency reference rates against EUR. Not real-time or executable prices; inspect observation_date. Original rates freely available at the cited ECB source.
Esquema de entrada
{
"type": "object",
"properties": {
"currency": {
"description": "Optional uppercase currency code, for example USD; omit for all available ECB reference currencies. Values are currency units per one EUR.",
"type": "string",
"pattern": "^[A-Z]{3}$"
}
},
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Esquema de salida
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"source_unavailable_or_stale",
"currency_not_supported",
"available_reference_rates"
],
"description": "Read this before using values; a successful transport does not establish data availability."
},
"returned": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Domain-specific result count, not necessarily the number of stored records in items."
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"domain": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {},
"description": "Source-specific payload; inspect units, observation dates, nulls and source notes."
},
"freshness": {
"type": "object",
"properties": {
"observed_at": {
"type": "string"
},
"expires_at": {
"type": "string"
},
"age_seconds": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"meaning": {
"type": "string"
}
},
"required": [
"observed_at",
"expires_at",
"age_seconds",
"meaning"
],
"additionalProperties": false
},
"citation": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"publisher": {
"type": "string"
},
"retrieved_at": {
"type": "string"
}
},
"required": [
"url",
"publisher",
"retrieved_at"
],
"additionalProperties": false
},
"provenance": {
"type": "object",
"properties": {
"source_id": {
"type": "string"
},
"source_name": {
"type": "string"
},
"source_url": {
"type": "string"
},
"license": {
"type": "string"
},
"retrieved_at": {
"type": "string"
},
"verified_at": {
"type": "string"
},
"valid_until": {
"type": "string"
},
"verification_method": {
"type": "string"
},
"content_sha256": {
"type": "string"
},
"verification_level": {
"type": "string",
"enum": [
"official_source_and_schema_checked",
"public_aggregator_and_schema_checked",
"method_specific"
]
},
"independently_verified": {
"type": "boolean",
"const": false,
"description": "Official-source checks are not independent factual corroboration."
},
"verification_scope": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"source_id",
"source_name",
"source_url",
"license",
"retrieved_at",
"verified_at",
"valid_until",
"verification_method",
"content_sha256",
"verification_level",
"independently_verified",
"verification_scope"
],
"additionalProperties": false
},
"display_label": {
"type": "string"
}
},
"required": [
"id",
"domain",
"data",
"freshness",
"citation",
"provenance"
],
"additionalProperties": {}
}
},
"independently_verified": {
"type": "boolean",
"const": false,
"description": "Official-source checks are not independent factual corroboration."
},
"notice": {
"type": "string"
},
"directory": {
"type": "string"
},
"available_currencies": {
"type": "array",
"items": {
"type": "string"
}
},
"selected_rate": {
"anyOf": [
{
"type": "object",
"properties": {
"currency": {
"type": "string"
},
"units_per_eur": {
"type": "number"
},
"source_decimal": {
"type": "string"
}
},
"required": [
"currency",
"units_per_eur",
"source_decimal"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"status",
"returned",
"items"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢list_exchange_rate_history
List available currencies, annual snapshots since 1999 and explicit gaps in ECB daily reference FX history. Some currencies have been discontinued. Units per EUR; original data freely available at ECB.
Esquema de entrada
{
"type": "object",
"properties": {}
}Esquema de salida
{
"type": "object",
"properties": {
"endpoint": {
"type": "string"
},
"source": {
"type": "string"
},
"base_currency": {
"type": "string",
"const": "EUR"
},
"currencies": {
"type": "array",
"items": {
"type": "string"
}
},
"years": {
"type": "array",
"items": {
"type": "object",
"properties": {
"year": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"currencies": {
"type": "array",
"items": {
"type": "string"
}
},
"numeric_values": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"published_days": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"retrieved_at": {
"type": "string"
},
"expires_at": {
"type": "string"
}
},
"required": [
"year",
"currencies",
"numeric_values",
"published_days",
"retrieved_at",
"expires_at"
],
"additionalProperties": {}
}
},
"missing_or_expired_years": {
"type": "array",
"items": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
}
},
"numeric_values": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"frequency": {
"type": "string"
},
"query": {
"type": "string"
},
"refresh": {
"type": "string"
},
"original_data_free": {
"type": "boolean",
"const": true
},
"independently_verified": {
"type": "boolean",
"const": false,
"description": "Official-source checks are not independent factual corroboration."
}
},
"required": [
"endpoint",
"source",
"base_currency",
"currencies",
"years",
"missing_or_expired_years",
"numeric_values",
"frequency",
"query",
"refresh",
"original_data_free",
"independently_verified"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢get_exchange_rate_history(format, currency, year, date)
ECB historical daily reference rates for one currency against EUR. Provide year (1999 onward) or an exact date, not both. Default: current year. Returns one year at most, original decimals, missing values and evidence. No weekend carry-forward, interpolation, current quote for discontinued currencies, cross rates or executable prices.
Esquema de entrada
{
"type": "object",
"properties": {
"format": {
"default": "json",
"description": "CSV content with null flags, original values, source notes and provenance, alongside JSON. No missing-date filling.",
"type": "string",
"enum": [
"json",
"csv"
]
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$",
"description": "Uppercase non-EUR currency code from list_exchange_rate_history, for example USD. Values are currency units per one EUR."
},
"year": {
"description": "One source calendar year since 1999; defaults to the current year. Cannot be combined with date.",
"type": "integer",
"minimum": 1999,
"maximum": 2026
},
"date": {
"description": "Exact source date YYYY-MM-DD, for example 2008-09-15; cannot be combined with year. No filling of weekends or gaps.",
"type": "string"
}
},
"required": [
"currency"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Esquema de salida
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"source_unavailable_or_stale",
"available_reference_rates",
"no_numeric_data_in_period"
],
"description": "Read this before using values; a successful transport does not establish data availability."
},
"returned": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991,
"description": "Domain-specific result count, not necessarily the number of stored records in items."
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"domain": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {},
"description": "Source-specific payload; inspect units, observation dates, nulls and source notes."
},
"freshness": {
"type": "object",
"properties": {
"observed_at": {
"type": "string"
},
"expires_at": {
"type": "string"
},
"age_seconds": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"meaning": {
"type": "string"
}
},
"required": [
"observed_at",
"expires_at",
"age_seconds",
"meaning"
],
"additionalProperties": false
},
"citation": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"publisher": {
"type": "string"
},
"retrieved_at": {
"type": "string"
}
},
"required": [
"url",
"publisher",
"retrieved_at"
],
"additionalProperties": false
},
"provenance": {
"type": "object",
"properties": {
"source_id": {
"type": "string"
},
"source_name": {
"type": "string"
},
"source_url": {
"type": "string"
},
"license": {
"type": "string"
},
"retrieved_at": {
"type": "string"
},
"verified_at": {
"type": "string"
},
"valid_until": {
"type": "string"
},
"verification_method": {
"type": "string"
},
"content_sha256": {
"type": "string"
},
"verification_level": {
"type": "string",
"enum": [
"official_source_and_schema_checked",
"public_aggregator_and_schema_checked",
"method_specific"
]
},
"independently_verified": {
"type": "boolean",
"const": false,
"description": "Official-source checks are not independent factual corroboration."
},
"verification_scope": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"source_id",
"source_name",
"source_url",
"license",
"retrieved_at",
"verified_at",
"valid_until",
"verification_method",
"content_sha256",
"verification_level",
"independently_verified",
"verification_scope"
],
"additionalProperties": false
},
"display_label": {
"type": "string"
}
},
"required": [
"id",
"domain",
"data",
"freshness",
"citation",
"provenance"
],
"additionalProperties": {}
}
},
"independently_verified": {
"type": "boolean",
"const": false,
"description": "Official-source checks are not independent factual corroboration."
},
"notice": {
"type": "string"
},
"directory": {
"type": "string"
},
"currency": {
"type": "string"
},
"year": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"requested_date": {
"type": [
"string",
"null"
]
},
"interpretation": {
"type": "object",
"properties": {
"independently_verified": {
"type": "boolean",
"const": false,
"description": "Official-source checks are not independent factual corroboration."
}
},
"required": [
"independently_verified"
],
"additionalProperties": {}
}
},
"required": [
"status",
"returned",
"items",
"currency",
"year",
"requested_date"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢get_record(id)
Get an unexpired record with provenance and its explicit verification level. Source/schema validation is not independent factual verification.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 128,
"pattern": "^[A-Za-z0-9_-]+$",
"description": "Opaque record id returned by a DatoQA data response. Reuse it exactly; do not invent an id."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Esquema de salida
{
"type": "object",
"properties": {
"id": {
"type": "string"
},
"domain": {
"type": "string"
},
"data": {
"type": "object",
"propertyNames": {
"type": "string"
},
"additionalProperties": {},
"description": "Source-specific payload; inspect units, observation dates, nulls and source notes."
},
"freshness": {
"type": "object",
"properties": {
"observed_at": {
"type": "string"
},
"expires_at": {
"type": "string"
},
"age_seconds": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"meaning": {
"type": "string"
}
},
"required": [
"observed_at",
"expires_at",
"age_seconds",
"meaning"
],
"additionalProperties": false
},
"citation": {
"type": "object",
"properties": {
"url": {
"type": "string"
},
"publisher": {
"type": "string"
},
"retrieved_at": {
"type": "string"
}
},
"required": [
"url",
"publisher",
"retrieved_at"
],
"additionalProperties": false
},
"provenance": {
"type": "object",
"properties": {
"source_id": {
"type": "string"
},
"source_name": {
"type": "string"
},
"source_url": {
"type": "string"
},
"license": {
"type": "string"
},
"retrieved_at": {
"type": "string"
},
"verified_at": {
"type": "string"
},
"valid_until": {
"type": "string"
},
"verification_method": {
"type": "string"
},
"content_sha256": {
"type": "string"
},
"verification_level": {
"type": "string",
"enum": [
"official_source_and_schema_checked",
"public_aggregator_and_schema_checked",
"method_specific"
]
},
"independently_verified": {
"type": "boolean",
"const": false,
"description": "Official-source checks are not independent factual corroboration."
},
"verification_scope": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"source_id",
"source_name",
"source_url",
"license",
"retrieved_at",
"verified_at",
"valid_until",
"verification_method",
"content_sha256",
"verification_level",
"independently_verified",
"verification_scope"
],
"additionalProperties": false
},
"display_label": {
"type": "string"
}
},
"required": [
"id",
"domain",
"data",
"freshness",
"citation",
"provenance"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}🟢get_evidence(id)
Retrieve the source JSON snapshot and SHA-256 digest for a currently available record. The digest proves snapshot integrity, not factual truth.
Esquema de entrada
{
"type": "object",
"properties": {
"id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,128}$",
"description": "Record id returned by a DatoQA data response; returns the retained source snapshot for that record."
}
},
"required": [
"id"
],
"$schema": "https://json-schema.org/draft/2020-12/schema"
}Esquema de salida
{
"type": "object",
"properties": {
"record_id": {
"type": "string"
},
"sha256": {
"type": "string"
},
"hash_scope": {
"type": "string",
"const": "utf8_source_payload_json"
},
"source_payload_json": {
"type": "string"
},
"first_observed_at": {
"type": "string"
},
"source_url": {
"type": "string"
},
"notice": {
"type": "string"
}
},
"required": [
"record_id",
"sha256",
"hash_scope",
"source_payload_json",
"first_observed_at",
"source_url",
"notice"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}🟢convert_currency_batch(rows, rounding, target_currency, output_format)
Free pilot: convert dated decimal-string amounts to a target_currency chosen from 30 supported currencies, including EUR (default), USD, JPY, CNY, GBP, CHF, INR and KRW. Use exact-date ECB historical references; derived cross conversions use amount * target units per EUR / source units per EUR without intermediate rounding. Up to 500 rows, eight currency/year snapshots including target rates, 48,000 UTF-8 argument bytes; start small. Unique id per row. Half-even rounding by default, ISO 4217 minor-unit rounding per line: zero decimals for JPY/KRW/ISK, two for other supported targets; target_decimal_places reports precision; total_target sums rounded lines. amount_target is the result; legacy amount_eur/total_eur are null for non-EUR targets. Same-currency rows use identity without an external quote. Preserve originals and evidence for both currencies from the same source edition. Missing, stale or mismatched rates block complete export and total; never replace dates. JSON default; output_format=both includes CSV. ECB originals are free; indicative calculations are not executable prices or accounting/tax certification. No transfers, independent factual verification, customer-content retention or content logging.
Esquema de entrada
{
"type": "object",
"properties": {
"rows": {
"minItems": 1,
"maxItems": 500,
"type": "array",
"items": {
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1,
"maxLength": 64
},
"date": {
"type": "string"
},
"currency": {
"type": "string",
"pattern": "^[A-Z]{3}$"
},
"amount": {
"type": "string",
"pattern": "^-?\\d{1,36}(?:\\.\\d{1,18})?$"
}
},
"required": [
"id",
"date",
"currency",
"amount"
],
"additionalProperties": false
}
},
"rounding": {
"default": "half_even",
"type": "string",
"enum": [
"half_even",
"half_away_from_zero"
]
},
"target_currency": {
"default": "EUR",
"type": "string",
"enum": [
"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"
]
},
"output_format": {
"default": "json",
"description": "json keeps the response smaller. both includes the CSV in the same free result; no separate export purchase.",
"type": "string",
"enum": [
"json",
"both"
]
}
},
"required": [
"rows"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": false
}Esquema de salida
{
"type": "object",
"properties": {
"status": {
"type": "string",
"enum": [
"complete",
"incomplete"
]
},
"target_currency": {
"type": "string",
"enum": [
"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"
]
},
"target_decimal_places": {
"anyOf": [
{
"type": "number",
"const": 0
},
{
"type": "number",
"const": 2
}
]
},
"rows": {
"type": "array",
"items": {
"type": "object",
"properties": {
"row": {
"type": "integer",
"minimum": -9007199254740991,
"maximum": 9007199254740991
},
"status": {
"type": "string",
"enum": [
"converted",
"blocked"
]
}
},
"required": [
"row",
"status"
],
"additionalProperties": {}
}
},
"sources": {
"type": "array",
"items": {
"type": "object",
"properties": {
"record_id": {
"type": "string"
},
"source_url": {
"type": "string"
},
"evidence_sha256": {
"type": "string"
},
"independently_verified": {
"type": "boolean",
"const": false
}
},
"required": [
"record_id",
"source_url",
"evidence_sha256",
"independently_verified"
],
"additionalProperties": {}
}
},
"blocked_rows": {
"type": "integer",
"minimum": 0,
"maximum": 9007199254740991
},
"total_eur": {
"type": [
"string",
"null"
]
},
"total_target": {
"type": [
"string",
"null"
]
},
"complete_artifact_available": {
"type": "boolean"
},
"billing": {
"type": "object",
"properties": {
"enabled": {
"type": "boolean",
"const": false
},
"charged": {
"type": "boolean",
"const": false
}
},
"required": [
"enabled",
"charged"
],
"additionalProperties": false
}
},
"required": [
"status",
"target_currency",
"target_decimal_places",
"rows",
"sources",
"blocked_rows",
"total_eur",
"total_target",
"complete_artifact_available",
"billing"
],
"$schema": "https://json-schema.org/draft/2020-12/schema",
"additionalProperties": {}
}Comunidad
Evidencia