Skip to main content
Glama
AllRates-Today

Central Bank Rates MCP Server

Get a bank's official rate history

get_official_rate_history
Read-only

Fetch official central bank exchange rate history for any currency pair, providing daily rates, rate types, and methods across custom date ranges.

Instructions

Use this for a date-by-date series of one bank's OFFICIAL rates — 'ECB USD rate for every day of 2025', 'how did the CBSL official rate move last quarter'. Returns one row per published date: { series: [{ date, rate, rate_type, derived, method }] }. Give either symbol (matches either side of the pair vs the bank's home currency) or a source+target pair. Defaults to the last year when from/to omitted. Paid plans only, and BILLED BY VOLUME: one API call per month of history covered (a year-long series costs ~12 calls) — keep ranges as narrow as the question needs. For publication dates without values (free) use get_publication_calendar.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
toNoEnd date. Defaults to today.
bankYesBank/authority code as returned by list_central_banks (lowercase, e.g. 'ecb', 'fed', 'boj', 'hmrc', 'cbsl'). Call list_central_banks first if unsure — codes are short abbreviations of the institution, not country codes.
fromNoStart date. Defaults to one year ago.
sourceNoISO 4217 currency code, 3 letters, case-insensitive (e.g. 'USD', 'EUR', 'LKR').
symbolNoOne currency vs the bank's home currency, e.g. 'USD'. Alternative to source+target.
targetNoISO 4217 currency code, 3 letters, case-insensitive (e.g. 'USD', 'EUR', 'LKR').

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.2.0

TDQS

A4.7/5.0
Behavior5/5

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

Annotations cover readOnly and openWorld hints, so the bar is lower, yet the description still adds high-value non-obvious behavior: the exact return shape since there is no output schema, the paid-plans-only requirement, and the volume-based billing model (one API call per month of history). The BILLED BY VOLUME warning is exactly the kind of behavioral context an agent needs to avoid costly misuse.

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

Conciseness5/5

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

Six dense sentences, each earning its place: purpose, examples, return shape, parameter alternatives, defaults, billing warning, and sibling routing. The most important scoping info is front-loaded, and the description is structured logically from what → output → how → constraints. No filler or repetition of schema content.

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

Completeness5/5

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

For a 6-parameter tool with no output schema, the description is complete: it provides the return format inline ({ series: [{ date, rate, rate_type, derived, method }] }), explains parameter alternatives and defaults, discloses billing cost that shapes range choices, and routes to get_publication_calendar for a related use case. Annotations cover safety (readOnly) and world-data behavior (openWorld). Nothing an agent needs to call it correctly is missing.

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 coverage is 100%, so baseline 3 applies. The description does add modest semantic value beyond the schema by explaining the either/or relationship between `symbol` and source+target ('Give either symbol... or a source+target pair') and clarifying that symbol 'matches either side of the pair vs the bank's home currency'. This clarifies rather than replaces the schema, which remains the primary parameter documentation.

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?

The description opens with a precise verb+resource+scope: 'Use this for a date-by-date series of one bank's OFFICIAL rates' and grounds it in concrete examples ('ECB USD rate for every day of 2025'). It implicitly distinguishes from siblings through 'one bank's' (vs compare_official_rates) and 'date-by-date series' (vs get_official_rates), and explicitly from get_publication_calendar. An agent can tell exactly what this tool is for.

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

Usage Guidelines5/5

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

The description states the when explicitly ('Use this for a date-by-date series...'), gives a direct when-not with an alternative ('For publication dates without values (free) use get_publication_calendar'), and adds hard operational guidance that affects invocation decisions ('keep ranges as narrow as the question needs' due to per-month billing). This fully routes the agent across the sibling space.

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