Skip to main content
Glama

FX reference rate

fx_rate

ECB reference exchange rate for a currency pair (e.g. EUR/USD). Paid: call without x_payment to receive this call's exact terms (amount, asset, network), sign them, then call again with x_payment. The free pricing tool lists every price at once.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
baseYesBase currency, ISO 4217 code.
quoteYesQuote currency, ISO 4217 code.
x_paymentNoOptional signed x402 payment payload (base64, what the X-PAYMENT header carries). Omit to receive the exact payment terms; sign them (e.g. @x402/fetch) and call again with this argument to settle and get the data.

TDQS

A4.4/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 of behavioral disclosure. It clearly reveals the paid nature and the mandatory x402 payment flow, explaining what the first call returns (amount, asset, network) and how settlement works. It does not mention update frequency or result format, but the critical payment behavior is transparent.

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?

The description is exactly two sentences, each earning its place: the first states the tool's purpose, the second explains the payment workflow and points to the free alternative. There is no filler or redundancy.

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?

For a simple currency-rate tool with a nontrivial payment workflow, the description adequately covers purpose, usage flow, and alternative tool. It does not specify the exact return schema, but no output schema is provided and the data type (a reference rate) is straightforward.

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?

The input schema already documents all three parameters at 100% coverage. The description adds significant value by explaining the x_payment parameter's dynamic role: omitting it returns terms, including it settles and returns data. This goes beyond the schema's static type description.

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 opens with a specific and identifiable resource: 'ECB reference exchange rate for a currency pair,' including a concrete example (EUR/USD). It distinguishes itself from the sibling `pricing` tool by noting the paid nature and pointing to the free alternative.

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?

The description explicitly explains the two-step paid workflow: call without x_payment to receive terms, sign, then call again with x_payment. It also gives a usage pointer to `pricing` for a broader listing, though it doesn't explicitly enumerate all cases where `pricing` should be preferred.

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.

TDQS

A4.2/5.0
Disambiguation5/5

Each tool targets a distinct data area or action: coverage vs find_data vs request_data are clearly separate (metadata, search, and suggestion box), and the three holdings tools (holdings_changes, manager_holdings, security_holders) each address a different question (changes, portfolio, owners). No two tools have ambiguous boundaries.

Naming Consistency5/5

All tool names use consistent lowercase snake_case (coverage, find_data, fx_rate, request_data, etc.). While some are verb phrases and others are noun phrases, the naming style is uniform and predictable, making it easy to guess tool purposes.

Tool Count5/5

Twelve tools is a well-scoped size for a financial data API server. Each tool covers a distinct data domain, and there is no excessive redundancy or crowding. The count is within the ideal 3-15 range.

Completeness4/5

The tool set covers a broad range of financial data needs: SEC filings, holdings, insider activity, IPO, macro, and FX. Minor gaps exist (e.g., no direct company fundamentals or full filing text), but the request_data tool provides a path to fill missing datasets, so agents are not at a dead end.

Resources