fx_rates
Latest ECB reference FX rates for a base currency (e.g. USD, AUD, EUR). Costs 0.01 USDC on Base via x402, or 12 sats Cashu ecash (NUT-24), or 12 sats over Lightning (L402).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| base | No |
Latest ECB reference FX rates for a base currency (e.g. USD, AUD, EUR). Costs 0.01 USDC on Base via x402, or 12 sats Cashu ecash (NUT-24), or 12 sats over Lightning (L402).
| Name | Required | Description | Default |
|---|---|---|---|
| base | No |
Changes observed during successful MCP inspections.
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It does disclose a significant trait the schema can't convey: the call is paid, with three distinct payment rails (0.01 USDC on Base via x402, 12 sats Cashu NUT-24, 12 sats L402). However, it says nothing about rate limits, caching, what the response contains, or what happens when no base is supplied.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with the core capability before the pricing detail. The pricing sentence is dense but each rail is meaningful and nothing is repeated. No wasted words, though the alternate-payment enumeration is longer than strictly necessary.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, no annotations, and one undocumented parameter. The description covers the payment dimension well but omits the default base behavior and the shape of the returned rate data, which an agent needs to consume the result. Adequate but with clear gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
One optional string parameter at 0% schema description coverage, so the description must compensate. It adds example values ('e.g. USD, AUD, EUR') but never states the behavior when 'base' is omitted (default currency?) or the accepted format (ISO 4217 three-letter, any case). Partial compensation only.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource with scope qualifiers: 'Latest ECB reference FX rates for a base currency', plus example currency codes. The 'ECB reference' and 'latest' qualifiers help distinguish it from siblings like convert and dataset_fx, though it never names those alternatives explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no when-to-use guidance at all: nothing says how this differs from convert (which likely does arbitrary conversion) or dataset_fx (which likely serves historical FX data). The payment rails are presented as cost information rather than as a decision cue for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Add one secure layer between your agents and this server.