Skip to main content
Glama

Ni Biashara Shelves — Africa FX, freight & compliance checks (x402)

Official FX rate — one African pair

get_fx_official

Official FX rate — one African pair. Official forex reference rate vs USD for one African currency: KES (Kenyan shilling), NGN (naira), GHS (cedi), TZS, UGX, ZAR, EGP, RWF, via Frankfurter (frankfurter.dev). Frankfurter blends published central-bank reference rates; the number is that blend, not a single central-bank fixing. Each response names the source and carries as_of (Frankfurter's rate date) and fetched_at. Price $0.01 USDC on Base (the /shelf/fx-official price). With a valid Shelf Pass (pass_token or X-SHELF-PASS) on a shelf priced ≤ $0.25, this returns the data. Otherwise it returns payment_required with the x402 v2 URL and header name. It does not return the rate as a bare payment link.

Input Schema

NameRequiredDescriptionDefault
pairYese.g. USD-KES (required)
pass_tokenNoShelf Pass token (pass_…). On an eligible shelf the tool returns the data and spends credits. Above the pass ceiling the token is not spent.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • addedInput schema / properties / pass_token
      Added value: +{
      +  "description": "Shelf Pass token (pass_…). On an eligible shelf the tool returns the data and spends credits. Above the pass ceiling the token is not spent.",
      +  "type": "string"
      +}
  2. Added

TDQS

A4.3/5.0
Behavior5/5

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

Annotations are sparse (readOnlyHint=false, openWorldHint=true, destructiveHint=false), and the description carries the burden well: it discloses pricing ($0.01 USDC on Base), the Shelf Pass ceiling (≤$0.25) above which credits are not spent, the x402 v2 payment_required fallback, and the source-blend caveat plus as_of/fetched_at fields. This is rich behavioral disclosure consistent with readOnlyHint=false.

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-loaded with the core purpose and currency list, then payment mechanics, then a useful negation ('does not return the rate as a bare payment link'). Dense but every sentence mostly earns its place; the title repeated as the opening sentence is minor 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?

No output schema exists, and the description compensates by naming the response fields (source, as_of, fetched_at) and the payment-failure shape. It is nearly complete for a paid single-pair fetch, though it omits error behavior for an unsupported/invalid pair.

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 genuine meaning: the pass ceiling rule ('above the pass ceiling the token is not spent') and the pricing context that gives the pass_token parameter its purpose. The pair format itself is only in the schema, so it isn't a full 5.

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 states a specific verb, resource and scope — the official USD reference rate for exactly one African currency — and enumerates the supported currencies (KES, NGN, GHS, TZS, UGX, ZAR, EGP, RWF). The word 'official' plus the blend-vs-fixing clarification cleanly separates it from the sibling get_fx_parallel without opening either schema.

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?

It explains the payment/eligibility conditions under which data is returned versus a payment_required response, which is real usage context. However, it never tells the agent when to prefer this tool over get_fx_parallel or get_fx_africa_brief; the distinction is left to be inferred from 'official'.

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