Skip to main content
Glama

Zovo FBAR Currency Converter

Server Details

Convert the maximum balance of each foreign bank account to US dollars at the U.S.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
ChatGPT
–
Claude
–

TDQS

A4.7/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have clearly distinct purposes: one converts foreign balances for FBAR reporting, the other lists Treasury exchange rates. Descriptions explicitly cross-reference each other and state what each does not do, leaving no meaningful ambiguity.

Naming Consistency5/5

Both names follow the same clear verb_noun snake_case pattern: convert_foreign_balances and list_treasury_rates. The naming is predictable and directly reflects each tool's action and resource.

Tool Count4/5

The server is narrowly scoped, and both tools earn their place: one performs the core FBAR conversion, the other provides the underlying Treasury rates. Two tools is slightly under the typical range but reasonable for this specialized purpose.

Completeness5/5

The tool surface covers the stated domain well: retrieving Treasury year-end and quarterly rates, converting up to 25 foreign balances, checking the FBAR threshold, and producing worksheet outputs. No obvious lifecycle gaps exist for this focused conversion task.

Available Tools

2 tools
convert_foreign_balancesConvert foreign balances for FBARA
Read-onlyIdempotent
Inspect

Use this when the user needs the maximum balance of foreign bank accounts converted to US dollars at the Treasury year-end exchange rate for an FBAR (FinCEN 114) or Form 8938, with the aggregate checked against the $10,000 FBAR threshold and a PDF worksheet, CSV and Excel file. Uses the U.S. Treasury Reporting Rates of Exchange for December 31 of the tax year (a recorded copy of the Treasury Fiscal Data reports since 2001, live API tried first; the source line gives the recording date) and rounds each account up to the next whole dollar. Up to 25 accounts per call. Does not file forms, decide tax obligations, or convert at today's market rate.

NameRequiredDescriptionDefault
accountsYesForeign accounts, 1 to 25, e.g. [{"label":"UK savings","currency":"GBP","max_balance":8200}].
tax_yearYesCalendar (tax) year whose December 31 Treasury rate is used, from 2001 to the last finished year, e.g. 2025.
lives_abroadNoOptional: true if the filer meets the IRS presence-abroad test (lives outside the US), e.g. false. Changes the Form 8938 thresholds shown.
filing_statusNoOptional federal filing status for the Form 8938 threshold comparison, e.g. single.

Output Schema

NameRequiredDescription
sourceYes
summaryYes
accountsYes
tax_yearYes
downloadsYes
form_8938Yes
accounts_countNo

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, and the description goes well beyond them: it names the rate source (Treasury Reporting Rates of Exchange for Dec 31), the recorded-copy fallback with a source line carrying the recording date, per-account rounding up to the next whole dollar, and a 25-account ceiling. It also disclaims side effects (no filing, no obligation determination), which is exactly what an agent needs before calling.

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?

The trigger condition is front-loaded and every clause carries information (rate source, rounding, cap, limits). It is dense to the point of being a single long block, but no sentence is filler.

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?

For a tool with four parameters, an output schema, and full annotation coverage, the description closes the remaining gaps: data provenance, rounding rule, capacity limit, and scope boundaries. Nothing an agent needs before invoking it is missing.

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 meaning not in the schema: the 25-account cap is enforced in prose (the array has no maxItems), and the year-end rate semantics tie tax_year specifically to a December 31 rate from 2001 onward. Rounding and rate-source behavior further clarify what the numeric inputs will produce.

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 and resource (convert foreign account balances to USD at the Treasury year-end rate) plus the exact domain artifacts it serves (FBAR FinCEN 114, Form 8938) and the $10,000 threshold check. An agent can tell this apart from the sibling list_treasury_rates, which supplies rates rather than converting balances.

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?

Opens with an explicit trigger ("Use this when the user needs...") and closes with clear exclusions: it does not file forms, does not decide tax obligations, and does not convert at today's market rate. The only gap is that it never names list_treasury_rates as the alternative for looking up rates directly.

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

list_treasury_ratesList Treasury exchange ratesA
Read-onlyIdempotent
Inspect

Use this when the user wants the U.S. Treasury Reporting Rates of Exchange for a year: the December 31 rate of one currency or of all currencies, or the quarterly reports of that year, from the Treasury Fiscal Data reports (recorded copy since 2001, live API tried first), with a CSV. Rates are foreign units per 1 US dollar. Does not give live market rates or convert balances (use convert_foreign_balances for that).

NameRequiredDescriptionDefault
yearYesCalendar year of the Treasury report, 2001 to the last finished year, e.g. 2025.
currencyNoOptional filter: ISO code (e.g. EUR), country (e.g. Mexico) or part of the Treasury description (e.g. Peso). Omit to list every currency.
all_quartersNoOptional: true lists the March 31, June 30, September 30 and December 31 reports of the year; default false lists only December 31.

Output Schema

NameRequiredDescription
noteYes
yearYes
countYes
ratesYes
reportYes
sourceYes
downloadsYes
rates_countNo

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description goes beyond them by disclosing data provenance and fallback behavior ('live API tried first', 'recorded copy since 2001'), coverage limits since 2001, CSV output, and the direction of the rate values (foreign units per 1 USD) — all things an agent cannot get from annotations.

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?

It is front-loaded with the usage trigger and every clause carries information — no filler. The main cost is that it is a single dense sentence packing provenance, units, and the exclusion, which forces a careful read rather than skimmable structure.

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?

For a read-only listing tool with a full output schema and complete parameter descriptions, this covers everything an agent needs: when to call it, what data source and fallback applies, the unit convention, the year range implicit in the schema, and which sibling to use instead. No meaningful gap remains.

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?

With 100% schema description coverage the baseline is 3, but the description adds real meaning beyond the schema: it clarifies that the choice is between the December 31 rate and the quarterly reports, which explains the relationship between currency and all_quarters, and it defines the unit semantics of the returned rate. It stops short of documenting the currency filter's code/country/substring flexibility, which the schema already handles.

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 names a specific verb and resource ('list ... the U.S. Treasury Reporting Rates of Exchange for a year') and pins down the exact scope: December 31 rate for one or all currencies, or quarterly reports. It is immediately distinguishable from the sibling convert_foreign_balances, which it explicitly names as the different tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It opens with an explicit trigger ('Use this when the user wants...') and closes with a when-not plus an alternative ('Does not give live market rates or convert balances (use convert_foreign_balances for that)'). Both the positive condition and the exclusion route the agent to the correct sibling without inference.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • First observedconvert_foreign_balances
    • First observedlist_treasury_rates

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    C
    maintenance
    Currency conversion and exchange rates for AI assistants. 170+ currencies, historical data back to 1999.
    4
    62 npm
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    Enables local reconciliation of statement totals using exact cent arithmetic and verification that export headers include date, description, and amount or debit/credit fields, plus retrieval of official converter links.
    3
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Forensic FX audit MCP. Detects hidden bank markups on cross-border payments and scores them 1-10. FINTRAC MSB registered (C10001283). Fully remote, no install required.
    -
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources