Zovo Currency Converter
Server Details
Currency rates & history
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
TDQS
Scored across 2 tools
convert_currency handles a single amount at a single date, while rate_history handles series/range queries, so the primary split is clear. There is mild overlap where 'conversion of currency data over a date range' could be read as a conversion task, but the descriptions steer agents correctly.
Both names are snake_case and concise, with convert_currency following a clean verb_noun pattern. rate_history is a noun phrase rather than verb_noun, a minor deviation but still readable and predictable.
Two tools is thin, sitting at the borderline of the 1-2 tool 'feels thin' band. The domain is narrow enough that two tools may genuinely suffice, but a currency service would typically also expose a supported-currencies listing.
The surface covers the core lifecycle: a point-in-time conversion with rate and inverse rate, plus historical series with aggregates and CSV export. Minor gaps remain, notably no tool to list supported currencies or coverage/availability dates, which agents must infer from error messages.
Available Tools
2 toolsconvert_currencyConvert currencyARead-onlyIdempotentInspect
Use this when the user wants a currency converter or the currency exchange rate today, for example to convert usd to eur, euro to dollar, or the rate on date for any day back to 1999-01-04. It uses the European Central Bank euro reference rates (published on working days around 16:00 CET) and returns the converted amount, the rate, the inverse rate and the actual rate date, for up to 10 target currencies. Rates are indicative mid-market rates, not a bank or card rate, and there is no cryptocurrency. Do not use for crypto, metals or live market quotes.
| Name | Required | Description | Default |
|---|---|---|---|
| to | Yes | One to ten ISO 4217 currency codes to convert to, separated by commas. Example: EUR or EUR,JPY,GBP. | |
| date | No | Optional rate date as YYYY-MM-DD (1999-01-04 or later, not in the future). Example: 2026-10-16. Omit for the latest published rate. | |
| from | Yes | The ISO 4217 currency code to convert from, e.g. USD. | |
| amount | Yes | The amount of money to convert, greater than 0 and up to 1e12, with at most 2 decimals. Example: 100.50. |
Output Schema
| Name | Required | Description |
|---|---|---|
| to | Yes | |
| from | Yes | |
| notes | Yes | |
| rates | Yes | |
| amount | Yes | |
| source | Yes | |
| decimals | Yes | |
| converted | Yes | |
| rate_date | Yes | |
| source_url | Yes | |
| inverse_rates | Yes | |
| retrieved_utc | Yes | |
| date_requested | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses the data source (European Central Bank euro reference rates), publication timing, rate type (indicative mid-market, not bank/card), return fields, and the 10-target-currency limit. The annotations already establish read-only and idempotent behavior, and the description adds meaningful operational context without contradicting them.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with usage guidance and remains reasonably compact. There is minor redundancy around cryptocurrency being unavailable, which slightly weakens conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple operation, full schema coverage, annotations, and an output schema, the description is largely complete: it covers source, timing, rate type, scope, and exclusions. The only notable contextual gap is that it does not explain how this tool relates to the sibling rate_history tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents amount, from, to, and date in detail. The description reinforces the date floor and 10-target limit but adds little parameter semantics beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: currency conversion and exchange-rate lookup, with examples such as USD to EUR and a date-based rate back to 1999-01-04. It is clear what the tool does, but it does not explicitly distinguish the tool from the sibling rate_history tool.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear when-to-use guidance for currency conversion and today's exchange rate, and explicit exclusions for crypto, metals, and live market quotes. The main gap is that it does not name rate_history or explain when to choose that sibling instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rate_historyExchange rate historyARead-onlyIdempotentInspect
Use this when the user asks for an exchange rate history or a historical exchange rate, or the conversion of currency data over a date range, or wants a CSV of rates. It returns the daily European Central Bank euro reference rates for up to 5 quote currencies over at most 366 days, with min, max, average and the first-to-last change in percent, plus a CSV download and a line chart in the widget. It shows published working days only (no weekends or ECB holidays) and is not financial advice. Do not use for stocks, crypto or commodity prices.
| Name | Required | Description | Default |
|---|---|---|---|
| end | Yes | The last date of the range as YYYY-MM-DD, at most 366 days after start. Example: 2026-03-31. | |
| base | Yes | The ISO 4217 code of the base currency, e.g. USD. Rates are per 1 unit of this currency. | |
| quote | Yes | One to five ISO 4217 quote currency codes, separated by commas. Example: EUR or EUR,JPY. | |
| start | Yes | The first date of the range as YYYY-MM-DD. Example: 2026-01-01. |
Output Schema
| Name | Required | Description |
|---|---|---|
| end | Yes | |
| base | Yes | |
| notes | Yes | |
| start | Yes | |
| stats | Yes | |
| quotes | Yes | |
| source | Yes | |
| downloads | Yes | |
| source_url | Yes | |
| preview_rows | Yes | |
| retrieved_utc | Yes | |
| published_days | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (which already declare readOnly/idempotent/openWorld), it discloses the data source (ECB), the working-days-only behavior with no weekends or ECB holidays, hard limits of 5 currencies and 366 days, and the returned metrics plus CSV and line-chart artifacts. The 'not financial advice' caveat is also useful framing for an agent paraphrasing results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with the trigger sentence, then limits, then behavior, then exclusions — a sensible order with no filler. The return-format sentence runs long and partly duplicates the output schema, which keeps it below a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-required-param read tool with a full output schema and rich annotations, the description covers everything an agent needs: when to call it, data source, coverage limits, holiday behavior, and what comes back. No material gap remains.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents formats and examples for base, quote, start and end. The description reinforces the 5-currency and 366-day caps and adds the ECB-source meaning, but contributes no new syntax or per-parameter detail beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource ('exchange rate history', 'historical exchange rate ... over a date range') and pins the data source to ECB euro reference rates. It never names the sibling convert_currency, so the boundary with that tool is only implied rather than stated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It opens with an explicit trigger ('Use this when the user asks for...') covering several phrasings, and adds a clear exclusion: 'Do not use for stocks, crypto or commodity prices.' What's missing is a positive pointer to convert_currency for single-point conversions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
2 tool updates
- First observed
convert_currency - First observed
rate_history
Related MCP Connectors
Official exchange rates from central banks: latest & historical rates plus currency conversion.
Currency conversion + exchange rates: free convert/rates, paid historical & trend analytics.
Official ECB euro reference rates for invoices and tax returns. $0.004/call via x402.
Fetch latest and historical currency exchange rates from Frankfurter. Convert amounts between curr…
Related MCP Servers
AlicenseAqualityCmaintenanceCurrency conversion and exchange rates for AI assistants. 170+ currencies, historical data back to 1999.438 npmMIT- AlicenseAqualityDmaintenanceFetches official currency exchange rates from the National Bank of Kazakhstan, supports conversion and rate dynamics tracking.515 npmMIT
- FlicenseNot gradedqualityDmaintenanceProvides real-time and historical foreign exchange rates for 31+ currencies, enabling currency conversion, historical rate lookups, and time series analysis using data from the Frankfurter API.-
- AlicenseAqualityDmaintenanceProvides access to currency exchange rates and conversion tools using the Frankfurter API, including latest rates, historical data, and time series from sources like the European Central Bank.5MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.