Skip to main content
Glama

Fiat FX rates and conversion

fx_rate
Read-onlyIdempotent

[PAID $0.002 USDC per call via x402 on Base; errors are free] Foreign-exchange rates from one base currency (from, default USD) to a list of currencies (to, comma-separated, or "all"; default 14 majors incl. EUR, GBP, JPY, CNY, INR, KRW, VND), with amount converted. Live mode uses Coinbase public exchange rates (cached 15 s, updated about every minute, 160+ ISO 4217 currencies plus XAU/XAG), falling back to exchangerate-api daily rates. With date=YYYY-MM-DD it returns the ECB reference rates for that day (Frankfurter, ~30 major currencies, back to 1999-01-04). All params optional: with none it returns USD to 14 major currencies. Invalid codes = 400, never charged.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "fx_rate"
  }
}

Input Schema

NameRequiredDescriptionDefault
toNoComma-separated target codes (max 50) or "all". Default: EUR,GBP,JPY,CNY,CHF,CAD,AUD,INR,KRW,SGD,HKD,MXN,BRL,VND.
dateNoOptional YYYY-MM-DD for historical ECB reference rates (since 1999-01-04). Omit for live rates.
fromNoBase currency, ISO 4217 code (default USD).
amountNoAmount in `from` to convert (default 1).

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added

TDQS

A4.5/5.0
Behavior5/5

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

Adds substantial context beyond the readOnly/idempotent/openWorld annotations: paid x402 pricing, that errors are free, upstream data sources, 15s cache with ~1min refresh, fallback behavior, and that invalid codes return 400 without charge. That is exactly the kind of operational detail annotations cannot express.

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?

Front-loads the cost/payment model, then conditions, then defaults — all in dense, purposeful prose. It is a long single paragraph, which slightly taxes scanning, but each sentence carries operational information.

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 no output schema, the description does describe what comes back (rates plus converted amount) and the two data regimes. The precise response shape and rate-value field naming are left implicit, which keeps it just under a 5.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds real meaning: the "all" keyword, the default 14-major-currency set, the amount conversion semantics, and the live-vs-historical switch for `date`. It is not more than a 4 because the schema already documents each parameter's format.

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+resource (foreign-exchange rates with conversion) and enumerates the exact scope: base `from`, target list `to`, `amount` conversion, live vs. historical. It is clearly distinguishable from siblings like crypto_price and base_gas_price, which are asset- and chain-specific.

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 explicit when-to-use context: omit `date` for live rates, supply YYYY-MM-DD for ECB historical reference rates, and notes the no-params default behavior. It doesn't name a sibling alternative to use instead (e.g., crypto_price for non-fiat), so it stops short of a 5.

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.

Resources