DatoQA — Historical Exchange Rates
by datoqa.bhazarstudio.workers.dev · remote · no sign-in to list tools · v0.6.15 · published by dev.workers.bhazarstudio.datoqa
Historical reference FX and dated conversions across 30 currencies, with source dates and evidence.
7 tools: 1 change things and 6 only read.
Scanned Oct 21, 2026
- Deletes or cancels0Claude Code: deny
- Can't be undone0Claude Code: ask
- Changes things1Claude Code: ask: see these tools
- Only reads6Claude Code: allow: see these tools
1 check matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http historical-exchange-rates https://datoqa.bhazarstudio.workers.dev/mcp/fxFindings
Matches of fixed checks, with the text they matched.
The server marks "convert_currency_batch" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert_currency_batch" says "convert": a word for a change.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
7 tools
Changes things 1Claude Code: ask
convert_currency_batchFree 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.1 finding
Why it is in this group
- The name "convert_currency_batch" says "convert": 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 "convert_currency_batch" read-only (readOnlyHint: true), and its own name, description or input give the class "write".
What this check looks forMatched text
annotations: {"readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}; The name "convert_currency_batch" says "convert": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 6Claude Code: allow
catalogInspect this connection’s scope, tools and access policy.No findings
Why it is in this group
- The description's first verb is "inspect": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_evidenceRetrieve the source JSON snapshot and SHA-256 digest for a currently available record.No findings
Why it is in this group
- The name "get_evidence" says "get": a word for reading.
Description, as the server wrote it Retrieve the source JSON snapshot and SHA-256 digest for a currently available record. The digest proves snapshot integrity, not factual truth.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_exchange_rate_historyECB historical daily reference rates for one currency against EUR.No findings
Why it is in this group
- The name "get_exchange_rate_history" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_exchange_ratesECB indicative daily currency reference rates against EUR.No findings
Why it is in this group
- The name "get_exchange_rates" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_recordGet an unexpired record with provenance and its explicit verification level.No findings
Why it is in this group
- The name "get_record" says "get": a word for reading.
Description, as the server wrote it Get an unexpired record with provenance and its explicit verification level. Source/schema validation is not independent factual verification.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_exchange_rate_historyList available currencies, annual snapshots since 1999 and explicit gaps in ECB daily reference FX history.No findings
Why it is in this group
- The name "list_exchange_rate_history" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
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 0.6.15. Values in angle brackets are yours to fill in.
claude mcp add --transport http historical-exchange-rates https://datoqa.bhazarstudio.workers.dev/mcp/fxRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__historical-exchange-rates__catalog",
"mcp__historical-exchange-rates__get_exchange_rates",
"mcp__historical-exchange-rates__list_exchange_rate_history",
"mcp__historical-exchange-rates__get_exchange_rate_history",
"mcp__historical-exchange-rates__get_record",
"mcp__historical-exchange-rates__get_evidence"
],
"ask": [
"mcp__historical-exchange-rates__convert_currency_batch"
],
"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 historical-exchange-rates. Review it before you use it.