Skip to main content
Glama
CurrencyFreaks

currencyfreaks-mcp

Official

Get historical exchange rates

get_historical_rates

Fetch historical exchange rates for a specific past date, with optional base currency and symbol filters, to analyze past currency values.

Instructions

Returns exchange rates for a specific past date. Major fiat currencies go back to 1984-11-28; newer currencies and crypto start from their own listing date (see list_currencies with detailed=true). Starter plan and above (any paid plan).

Input Schema

NameRequiredDescriptionDefault
baseNoBase currency code the rates are expressed against (e.g. 'EUR'). Default is USD. Changing the base requires the Starter plan or above (any paid plan).
dateYesDate in YYYY-MM-DD format.
symbolsNoComma-separated currency codes to return, e.g. 'EUR,GBP,PKR' or 'BTC,ETH' or 'XAU,XAG'. Case-insensitive. Omit to get every supported currency (1000+ entries) — prefer passing symbols to keep responses small. Use list_currencies to look up a code.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv1.0.1

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description carries the burden and does disclose two meaningful behavioral facts: data-availability boundaries and plan gating (Starter+). It is silent on response shape, payload size (the 1000+ entry default lives only in the schema), and whether requests for pre-coverage dates error or return empty.

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?

Three short sentences, front-loaded with what the tool returns, then coverage limits, then plan requirement. No filler; the parenthetical pointer to list_currencies is actionable rather than decorative.

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?

No output schema and no annotations, so the description must stand alone — and it covers purpose, data availability, plan requirement, and a currency-lookup escape hatch. The remaining gap is what the response looks like and how out-of-range dates behave, which an agent needs before calling.

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 the parameters are already documented, including base-plan gating and the symbols size warning. The description adds the date lower bound (1984-11-28) and per-currency listing dates, which genuinely extend the bare 'YYYY-MM-DD format' schema text, but it adds nothing about base or symbols.

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

Purpose4/5

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

Clear verb+resource+scope: 'Returns exchange rates for a specific past date' precisely separates it from get_latest_rates without naming the sibling. It does not explicitly name alternatives, but the temporal qualifier makes the distinction usable.

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

Usage Guidelines4/5

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

Gives real constraints on when the tool works: historical coverage from 1984-11-28 for major fiat, per-currency listing dates for newer/crypto, and a paid-plan requirement. It never explicitly contrasts with get_latest_rates or get_time_series, leaving the choice of tool to the name rather than stated guidance.

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