Skip to main content
Glama
Jambozx

OnlineCyberTools MCP (280+ filterable tools)

by Jambozx

math_currency_converter_history

Fetch historical daily exchange rates for a currency pair over a trailing date range. Returns open, high, low, close data for charting price movement and percentage change.

Instructions

Currency Converter Historical Rate Series. Fetch a historical end-of-day (EOD) FX rate series for one currency pair over a trailing date range, for charting price movement and percentage change. Returns success plus a data object holding the resolved from/to codes, the window start and end dates, and a series array of daily candles (date, open, high, low, close), plus the resolution path (direct, triangulation through USD, or identity). Data comes from a local cache of EODHD daily forex data; a first-time or stale range triggers an on-demand outbound fetch from EODHD, so the series is live external data that changes day to day and the call is not idempotent. Use this for a multi-day time series of a currency pair; use math_currency_converter_convert for a single present-day amount conversion, and math_unit_converter for non-currency length, mass, volume, or speed conversion. Rate-limited (30 req/min anonymous) to protect the upstream API quota.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
fromYesBase ISO 4217 currency code (3 letters, case-insensitive). Must be one of the 31 supported codes.
toYesQuote ISO 4217 currency code (3 letters, case-insensitive). Same 31-code enum as from; equal from/to returns a flat series of 1.
daysNoLength of the trailing window in calendar days back from today. Must be between 7 and 1825 (about 5 years); defaults to 90 when omitted.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
successNoTrue when the series was retrieved.
dataNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changedv0.5.1
    • addedInput schema / additionalProperties
      Added value: +false
    • removedInput schema / properties / amount
      Removed value: -{
      -  "type": "integer"
      -}
    • addedInput schema / properties / days
      Added value: +{
      +  "default": 90,
      +  "description": "Length of the trailing window in calendar days back from today. Must be between 7 and 1825 (about 5 years); defaults to 90 when omitted.",
      +  "maximum": 1825,
      +  "minimum": 7,
      +  "type": "integer"
      +}
    • addedInput schema / properties / from / description
      Added value: +"Base ISO 4217 currency code (3 letters, case-insensitive). Must be one of the 31 supported codes."
    • addedInput schema / properties / from / enum
      Added value: +[
      +  "USD",
      +  "EUR",
      +  "GBP",
      +  "JPY",
      +  "CHF",
      +  "CAD",
      +  "AUD",
      +  "NZD",
      +  "CNY",
      +  "HKD",
      +  "SGD",
      +  "INR",
      +  "ZAR",
      +  "BRL",
      +  "MXN",
      +  "SEK",
      +  "NOK",
      +  "DKK",
      +  "PLN",
      +  "TRY",
      +  "KRW",
      +  "RUB",
      +  "THB",
      +  "IDR",
      +  "MYR",
      +  "PHP",
      +  "CZK",
      +  "HUF",
      +  "ILS",
      +  "AED",
      +  "SAR"
      +]
    • addedInput schema / properties / to / description
      Added value: +"Quote ISO 4217 currency code (3 letters, case-insensitive). Same 31-code enum as from; equal from/to returns a flat series of 1."
    • addedInput schema / properties / to / enum
      Added value: +[
      +  "USD",
      +  "EUR",
      +  "GBP",
      +  "JPY",
      +  "CHF",
      +  "CAD",
      +  "AUD",
      +  "NZD",
      +  "CNY",
      +  "HKD",
      +  "SGD",
      +  "INR",
      +  "ZAR",
      +  "BRL",
      +  "MXN",
      +  "SEK",
      +  "NOK",
      +  "DKK",
      +  "PLN",
      +  "TRY",
      +  "KRW",
      +  "RUB",
      +  "THB",
      +  "IDR",
      +  "MYR",
      +  "PHP",
      +  "CZK",
      +  "HUF",
      +  "ILS",
      +  "AED",
      +  "SAR"
      +]
    • changedInput schema / required
      Previous value: -[
      -  "from",
      -  "to",
      -  "amount"
      -]New value: +[
      +  "from",
      +  "to"
      +]
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "data": {
      +      "properties": {
      +        "from": {
      +          "description": "Normalised base ISO 4217 code.",
      +          "type": "string"
      +        },
      +        "from_date": {
      +          "description": "Window start date (today minus days), as YYYY-MM-DD.",
      +          "format": "date",
      +          "type": "string"
      +        },
      +        "series": {
      +          "description": "Daily EOD candles ordered oldest to newest; may be shorter than the requested window because forex markets close on weekends and holidays.",
      +          "items": {
      +            "properties": {
      +              "close": {
      +                "description": "Closing rate for the day.",
      +                "type": "number"
      +              },
      +              "date": {
      +                "description": "Candle date as YYYY-MM-DD.",
      +                "format": "date",
      +                "type": "string"
      +              },
      +              "high": {
      +                "description": "Highest rate for the day.",
      +                "type": "number"
      +              },
      +              "low": {
      +                "description": "Lowest rate for the day.",
      +                "type": "number"
      +              },
      +              "open": {
      +                "description": "Opening rate (1 unit of from in to) for the day.",
      +                "type": "number"
      +              }
      +            },
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        "to": {
      +          "description": "Normalised quote ISO 4217 code.",
      +          "type": "string"
      +        },
      +        "to_date": {
      +          "description": "Window end date (today), as YYYY-MM-DD.",
      +          "format": "date",
      +          "type": "string"
      +        },
      +        "via": {
      +          "description": "How the series was resolved.",
      +          "enum": [
      +            "direct",
      +            "triangulation:USD",
      +            "identity"
      +          ],
      +          "type": "string"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    "success": {
      +      "description": "True when the series was retrieved.",
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
  2. First observedv0.1.0

TDQS

A4.6/5.0
Behavior5/5

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

Describes not idempotent behavior, data source (local cache + EODHD fetch), rate limit (30 req/min), and resolution path. Adds context beyond annotations (readOnlyHint=false, idempotentHint=false, openWorldHint=true).

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?

Description is comprehensive but not overly verbose; each sentence adds value. Well-structured with purpose first, then details, usage, and rate limit. Could be slightly more concise but handles complexity well.

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?

Given complexity (3 parameters, output schema), description covers behavior, data source, non-idempotence, rate limits, and alternatives. Output schema exists, so no need to detail return values. Complete for agent decision.

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% with clear descriptions and enums; description adds minimal extra meaning (e.g., 'equal from/to returns a flat series of 1' already in 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?

The description clearly states it fetches a historical EOD FX rate series for a currency pair, for charting. It also distinguishes from sibling tools math_currency_converter_convert and math_unit_converter, specifying when to use each.

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?

Explicitly says 'Use this for a multi-day time series... use math_currency_converter_convert for a single present-day amount conversion, and math_unit_converter for non-currency...' providing clear context and alternatives.

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