Skip to main content
Glama

Frankfurter — Latest ECB Exchange Rates

frankfurter.currency.latest
Read-onlyIdempotent

Retrieve daily ECB reference exchange rates for 33 currencies and convert amounts between base and target currencies for FX dashboards, invoicing, or multi-currency apps.

Instructions

Get the latest European Central Bank (ECB) reference exchange rates from Frankfurter.dev (api.frankfurter.dev/v1). Returns rates for 33 major currencies relative to a base currency (default EUR). Rates are updated each business day at ~16:00 CET by the ECB. Supports an optional base currency, target currency filter, and amount scaling for instant conversion. No auth required; public domain ECB data. Ideal for FX dashboards, invoicing, and multi-currency apps.

Input Schema

NameRequiredDescriptionDefault
baseNoBase currency ISO 4217 code to convert from (default: EUR). Supported: AUD,BRL,CAD,CHF,CNY,CZK,DKK,EUR,GBP,HKD,HUF,IDR,ILS,INR,ISK,JPY,KRW,MXN,MYR,NOK,NZD,PHP,PLN,RON,SEK,SGD,THB,TRY,USD,ZAR
amountNoAmount to convert (default: 1.0). Returns rates scaled to this amount.
symbolsNoComma-separated target currency codes to return (e.g. USD,GBP,JPY). Omit for all 33 currencies.

Output Schema

NameRequiredDescriptionDefault
errorNoPresent only when the call failed. Includes error code, message, request_id, and any provider-specific extras.
resultNoTool response payload. Shape varies per tool — consult the tool description and inputSchema. May be an object, array, string, or number depending on the upstream provider response.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Addedv2.2.0

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/openWorld/no-destructive, so safety is covered. The description adds genuinely useful behavioral context beyond them: update cadence (~16:00 CET each business day), no auth required, public-domain ECB data, and the 33-currency coverage. It stops short of describing response shape or pagination, which the output schema presumably handles.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose, source, cadence, and parameters are front-loaded and each sentence carries information. The trailing 'Ideal for FX dashboards, invoicing, and multi-currency apps' is mild filler that doesn't guide behavior, keeping it just under a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With annotations covering safety and an output schema covering returns, the description supplies the remaining context an agent needs: data provenance, freshness cadence, auth-free access, and base/amount/symbols capabilities. Only the absence of sibling routing guidance leaves a small gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all three parameters (base, amount, symbols) are already fully documented in the input schema, including the supported currency enum list. The description restates default EUR and amount scaling for 'instant conversion' but adds no syntax or format detail beyond the schema. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Get the latest ECB reference exchange rates'), names the data provider and endpoint, and scopes the result (33 currencies relative to a default base). An agent can immediately distinguish it from the historical/series/list siblings by the 'latest' framing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The closing sentence 'Ideal for FX dashboards, invoicing, and multi-currency apps' implies use context, but it never names an alternative tool or states when NOT to use this one. The sibling frankfurter.currency.historical and similar FX tools (finance.currency.ecb, norgesbank.fx.latest) are not referenced, so routing among them is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Deploy Server

Other Tools