Skip to main content
Glama

Market Intel MCP

FX Historical

fx_historical
Read-onlyIdempotent

Get foreign-exchange rates for a base currency on a specific past date (YYYY-MM-DD). ECB publishes rates on business days; a weekend/holiday date returns the most recent prior business day.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
baseNo3-letter base (default USD)
dateYesThe date to look up, YYYY-MM-DD (MM/DD/YYYY is also accepted). Weekends and holidays return the previous business day's ECB rates.
symbolsNoOptional comma-separated targets

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
baseYesISO 4217 base currency actually used
dateYesECB rate date actually used YYYY-MM-DD
ratesYesQuote currencies mapped to the ECB reference rate
sourceYes
requested_dateYesCaller-requested date YYYY-MM-DD

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / date / description
      Previous value: -"YYYY-MM-DD"New value: +"The date to look up, YYYY-MM-DD (MM/DD/YYYY is also accepted). Weekends and holidays return the previous business day's ECB rates."
  2. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": false,
      +  "properties": {
      +    "base": {
      +      "description": "ISO 4217 base currency actually used",
      +      "pattern": "^[A-Z]{3}$",
      +      "type": "string"
      +    },
      +    "date": {
      +      "description": "ECB rate date actually used YYYY-MM-DD",
      +      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +      "type": "string"
      +    },
      +    "rates": {
      +      "additionalProperties": {
      +        "type": "number"
      +      },
      +      "description": "Quote currencies mapped to the ECB reference rate",
      +      "maxProperties": 256,
      +      "minProperties": 1,
      +      "propertyNames": {
      +        "pattern": "^[A-Z]{3}$"
      +      },
      +      "type": "object"
      +    },
      +    "requested_date": {
      +      "description": "Caller-requested date YYYY-MM-DD",
      +      "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
      +      "type": "string"
      +    },
      +    "source": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "base",
      +    "date",
      +    "requested_date",
      +    "rates",
      +    "source"
      +  ],
      +  "type": "object"
      +}
  3. First observed

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover readOnly/idempotent/openWorld/destructive=false, so the safety profile is handled. The description adds genuinely non-obvious behavior: ECB publishes only on business days and weekend/holiday dates resolve to the most recent prior business day. Return format is not described, but an output schema exists.

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?

Two sentences, zero filler, with the core purpose front-loaded and the ECB business-day caveat second. Every clause earns its place.

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?

A simple read-only lookup with a fully documented schema, rich annotations, and an output schema, so return values need no explanation. The one behavior an agent could get wrong — non-business-day dates — is explicitly addressed.

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, date, symbols) are already documented, including the default USD and accepted date formats. The description restates the date format and base-currency notion without adding syntax or constraints 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.

Purpose4/5

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

States a specific verb (get), resource (foreign-exchange rates), and scope (a specific past date) — clearly a point-in-time lookup. It implicitly separates itself from fx_rates (current) and fx_timeseries (range) via 'a specific past date', though it never names a sibling explicitly.

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 phrase 'on a specific past date' implies the usage context, and the weekend/holiday note hints at edge-case handling. But there is no explicit when-to-use vs when-not guidance and no named alternative among fx_convert, fx_currencies, fx_rates, or fx_timeseries.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.