DatoQA — Historical Exchange Rates
REMOTE · DATOQA.BHAZARSTUDIO.WORKERS.DEV · SCANNED OCT 5
Historical reference FX and dated conversions across 30 currencies, with source dates and evidence.
Available components
How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →
Endpoint Security69
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- No authorisation is required to call this server. Every tool declares its destructiveHint and none is destructive, so open access doesn't expose one. See how to fix → View diagnostics → Partial
- HTTPS check failed: the endpoint is reachable over plaintext HTTP. See how to fix → View diagnostics → Fail
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
Schema Quality & AI Usability70
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 1171 tokens (~167/item across 7 items; 7 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management27
- Stability observed for 8 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage89
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 63% of tool parameters carry a description.Partial
- Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 7 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 8 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a current MCP spec version (2026-07-28).Pass
How do I install the DatoQA — Historical Exchange Rates MCP server?
DatoQA — Historical Exchange Rates is a hosted endpoint at https://datoqa.bhazarstudio.workers.dev/mcp/fx, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
remote · datoqa.bhazarstudio.workers.dev
claude mcp add --transport http dev-workers-bhazarstudio-datoqa-historical-excha 'https://datoqa.bhazarstudio.workers.dev/mcp/fx'
{
"mcpServers": {
"dev-workers-bhazarstudio-datoqa-historical-excha": {
"url": "https://datoqa.bhazarstudio.workers.dev/mcp/fx"
}
}
} {
"servers": {
"dev-workers-bhazarstudio-datoqa-historical-excha": {
"type": "http",
"url": "https://datoqa.bhazarstudio.workers.dev/mcp/fx"
}
}
} [mcp_servers.dev-workers-bhazarstudio-datoqa-historical-excha] url = "https://datoqa.bhazarstudio.workers.dev/mcp/fx"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"dev-workers-bhazarstudio-datoqa-historical-excha": {
"type": "remote",
"url": "https://datoqa.bhazarstudio.workers.dev/mcp/fx",
"enabled": true
}
}
} openclaw mcp add dev-workers-bhazarstudio-datoqa-historical-excha --url 'https://datoqa.bhazarstudio.workers.dev/mcp/fx' --transport streamable-http
mcp_servers:
dev-workers-bhazarstudio-datoqa-historical-excha:
url: "https://datoqa.bhazarstudio.workers.dev/mcp/fx" {
"McpServers": {
"dev-workers-bhazarstudio-datoqa-historical-excha": {
"Transport": "http",
"Url": "https://datoqa.bhazarstudio.workers.dev/mcp/fx"
}
}
} assistant mcp add dev-workers-bhazarstudio-datoqa-historical-excha -t streamable-http -u 'https://datoqa.bhazarstudio.workers.dev/mcp/fx'
{
"mcpServers": {
"dev-workers-bhazarstudio-datoqa-historical-excha": {
"type": "http",
"url": "https://datoqa.bhazarstudio.workers.dev/mcp/fx"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 4 Oct 26 +1
- Server version: 0.6.12 → 0.6.14 functional
- 2 Oct 26 +1
- Server version: 0.6.10 → 0.6.12 functional
- 30 Sept 26 0
- The server rewrote its instructions, which are the text every model session reads security
- Tool “convert_currency_batch” rewrote its description, which is the text the model reads security
- Schema quality: 145 → 167 ▼ functional
- The server now declares the “prompts” capability functional
- The server now declares the “resources” capability functional
- Server version: 0.6.5 → 0.6.10 functional
- “convert_currency_batch” added an optional parameter “target_currency” cosmetic
- 29 Sept 26 −2
- HTTPS: unverified → fail ▼ security
- The server rewrote its instructions, which are the text every model session reads security
- Tool “catalog” rewrote its description, which is the text the model reads security
- Tool coverage: 100% → 67% ▼ functional
- Tool coverage: 100% → 75% ▼ functional
- Schema quality: pass → fail ▼ functional
- MCP protocol: Implements a current MCP spec version (2026-07-28). functional
- MCP protocol version: 2025-11-25 → 2026-07-28 functional
- Server version: 0.6.4 → 0.6.5 functional
- New tool “convert_currency_batch” functional
- “catalog” added an optional parameter “language” cosmetic
- “catalog” added an optional parameter “report_countries” cosmetic
- “catalog” added an optional parameter “report_from” cosmetic
- “catalog” added an optional parameter “report_indicators” cosmetic
- “catalog” added an optional parameter “report_to” cosmetic
- “get_exchange_rate_history” added an optional parameter “format” cosmetic
- 28 Sept 26 +1
- We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
- 27 Sept 26 70
First indexed and scored.
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 6 Oct 2026 · Probed https://datoqa.bhazarstudio.workers.dev/mcp/fx
TLS valid
Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .
| Subject | Issuer | Valid from | Valid until | Key | Signature | Serial |
|---|---|---|---|---|---|---|
| CN=bhazarstudio.workers.dev | CN=YE2,O=Let's Encrypt,C=US | 3 Sept 2026 | 2 Dec 2026 | ECDSA 256 | ECDSA-SHA384 | 5ab0e87130a64d96f2f3d39cc4055a1aac7 |
| SANs: *.bhazarstudio.workers.dev, bhazarstudio.workers.dev | ||||||
| CN=YE2,O=Let's Encrypt,C=US (CA) | CN=Root YE,O=ISRG,C=US | 3 Sept 2025 | 2 Sept 2028 | ECDSA 384 | ECDSA-SHA384 | 4df3b15dd6c0784c507cd37b58e6f115 |
| CN=Root YE,O=ISRG,C=US (CA) | CN=ISRG Root X2,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | ECDSA-SHA384 | 872165fc34b6e5fba8add5b3705fb53a |
| CN=ISRG Root X2,O=Internet Security Research Group,C=US (CA) | CN=ISRG Root X1,O=Internet Security Research Group,C=US | 13 May 2026 | 2 Sept 2032 | ECDSA 384 | SHA256-RSA | 6c8f1dc727c7117f7baf853ac980f9cd |
Background: What to check on a remote MCP endpoint →
DNSSEC insecure
Validation of datoqa.bhazarstudio.workers.dev. — Not signed
| Zone | DS | Keys | Algorithms | Outcome |
|---|---|---|---|---|
| . | trust_anchor | 20326, 38696 | 8, 8 | Verified |
| dev. | present | 60074 | 8 | Verified |
| workers.dev. | absent | Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation |
Authentication No authorisation required
The endpoint answered without asking for a token. Anyone who knows the URL can reach it.
| Result | No authorisation required |
|---|---|
| HTTP status | 200 |
| Header | Value |
|---|---|
| strict-transport-security | max-age=15552000; includeSubDomains |
| x-content-type-options | nosniff |
| x-frame-options | SAMEORIGIN |
| referrer-policy | no-referrer |
Background: How OAuth 2.1 works in the 2026 MCP spec →
Transports 2 probes
| Transport | URL | Outcome | Status | Location |
|---|---|---|---|---|
| streamable-http | https://datoqa.bhazarstudio.workers.dev/mcp/fx | Verified | 200 | |
| http (plaintext) | http://datoqa.bhazarstudio.workers.dev/mcp/fx | Served over HTTP | 200 |
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
catalog ~238
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.
| Name | Type | Req | Description |
|---|---|---|---|
| language | string | – | – |
| report_countries | array | – | Optional free preview for these distinct World Bank country codes, e.g. FRA, DEU, ESP. General/economy connections only. |
| report_from | integer | – | – |
| report_indicators | array | – | 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. |
| report_to | integer | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| available_records | integer | – | – |
| capabilities | array | – | – |
| independently_verified | boolean | – | Official-source checks are not independent factual corroboration. |
| name | string | yes | – |
| profile | string | – | – |
| title | string | – | – |
| tools | array | – | – |
| version | string | – | – |
No examples provided.
convert_currency_batch ~306
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.
| Name | Type | Req | Description |
|---|---|---|---|
| output_format | string | – | json keeps the response smaller. both includes the CSV in the same free result; no separate export purchase. |
| rounding | string | – | – |
| rows | array | yes | – |
| target_currency | string | – | – |
| Name | Type | Req | Description |
|---|---|---|---|
| billing | object | yes | – |
| blocked_rows | integer | yes | – |
| complete_artifact_available | boolean | yes | – |
| rows | array | yes | – |
| sources | array | yes | – |
| status | string | yes | – |
| target_currency | string | yes | – |
| target_decimal_places | – | yes | – |
| total_eur | string|null | yes | – |
| total_target | string|null | yes | – |
No examples provided.
get_evidence ~61
Retrieve the source JSON snapshot and SHA-256 digest for a currently available record. The digest proves snapshot integrity, not factual truth.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Record id returned by a DatoQA data response; returns the retained source snapshot for that record. |
| Name | Type | Req | Description |
|---|---|---|---|
| first_observed_at | string | yes | – |
| hash_scope | string | yes | – |
| notice | string | yes | – |
| record_id | string | yes | – |
| sha256 | string | yes | – |
| source_payload_json | string | yes | – |
| source_url | string | yes | – |
No examples provided.
get_exchange_rate_history ~196
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.
| Name | Type | Req | Description |
|---|---|---|---|
| currency | string | yes | Uppercase non-EUR currency code from list_exchange_rate_history, for example USD. Values are currency units per one EUR. |
| date | string | – | Exact source date YYYY-MM-DD, for example 2008-09-15; cannot be combined with year. No filling of weekends or gaps. |
| format | string | – | CSV content with null flags, original values, source notes and provenance, alongside JSON. No missing-date filling. |
| year | integer | – | One source calendar year since 1999; defaults to the current year. Cannot be combined with date. |
| Name | Type | Req | Description |
|---|---|---|---|
| currency | string | yes | – |
| directory | string | – | – |
| independently_verified | boolean | – | Official-source checks are not independent factual corroboration. |
| interpretation | object | – | – |
| items | array | yes | – |
| notice | string | – | – |
| requested_date | string|null | yes | – |
| returned | integer | yes | Domain-specific result count, not necessarily the number of stored records in items. |
| status | string | yes | Read this before using values; a successful transport does not establish data availability. |
| year | integer | yes | – |
No examples provided.
get_exchange_rates ~70
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.
| Name | Type | Req | Description |
|---|---|---|---|
| currency | string | – | Optional uppercase currency code, for example USD; omit for all available ECB reference currencies. Values are currency units per one EUR. |
| Name | Type | Req | Description |
|---|---|---|---|
| available_currencies | array | – | – |
| directory | string | – | – |
| independently_verified | boolean | – | Official-source checks are not independent factual corroboration. |
| items | array | yes | – |
| notice | string | – | – |
| returned | integer | yes | Domain-specific result count, not necessarily the number of stored records in items. |
| selected_rate | – | – | – |
| status | string | yes | Read this before using values; a successful transport does not establish data availability. |
No examples provided.
get_record ~60
Get an unexpired record with provenance and its explicit verification level. Source/schema validation is not independent factual verification.
| Name | Type | Req | Description |
|---|---|---|---|
| id | string | yes | Opaque record id returned by a DatoQA data response. Reuse it exactly; do not invent an id. |
| Name | Type | Req | Description |
|---|---|---|---|
| citation | object | yes | – |
| data | object | yes | Source-specific payload; inspect units, observation dates, nulls and source notes. |
| display_label | string | – | – |
| domain | string | yes | – |
| freshness | object | yes | – |
| id | string | yes | – |
| provenance | object | yes | – |
No examples provided.
list_exchange_rate_history ~47
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.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| base_currency | string | yes | – |
| currencies | array | yes | – |
| endpoint | string | yes | – |
| frequency | string | yes | – |
| independently_verified | boolean | yes | Official-source checks are not independent factual corroboration. |
| missing_or_expired_years | array | yes | – |
| numeric_values | integer | yes | – |
| original_data_free | boolean | yes | – |
| query | string | yes | – |
| refresh | string | yes | – |
| source | string | yes | – |
| years | array | yes | – |
No examples provided.
What is the DatoQA — Historical Exchange Rates MCP server?
DatoQA — Historical Exchange Rates is an MCP server listed in the public MCP registry as dev.workers.bhazarstudio.datoqa/historical-exchange-rates. Historical reference FX and dated conversions across 30 currencies, with source dates and evidence. This page covers its hosted endpoint (https://datoqa.bhazarstudio.workers.dev/mcp/fx).
Is the DatoQA — Historical Exchange Rates MCP server safe to use?
DatoQA — Historical Exchange Rates scores 71 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the DatoQA — Historical Exchange Rates MCP server expose?
DatoQA — Historical Exchange Rates exposes 7 tools: catalog, get_exchange_rates, list_exchange_rate_history, get_exchange_rate_history, get_record, and 2 more. Their descriptions and schemas cost roughly 978 tokens of context every time the server is loaded.
Does the DatoQA — Historical Exchange Rates MCP server require authentication?
No. We connected to DatoQA — Historical Exchange Rates without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.
Is the DatoQA — Historical Exchange Rates MCP server still maintained?
DatoQA — Historical Exchange Rates is still listed as active in the MCP registry. We last reached this channel on 5 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.