Skip to main content
Glama

Exchange-rate stress test

fx_stress
Read-only

Use this when the user pays, or plans to pay, an employee in local currency and asks about exchange-rate risk or a USD budget (e.g. "what if the real moves 10%", "risque de change sur un salaire en pesos"). Returns the USD cost (gross salary plus statutory employer charges, before any Employer of Record fee) at the official exchange rate of the data snapshot, with its date and source, and if the local currency moves by 5, 10 or 20 percent either way; with a USD budget, the headroom in each case and the move at which the budget is reached. Do not use for currency conversion alone. Data snapshot 2026-10-22. Cost comparison, not legal or tax advice.

Input Schema

NameRequiredDescriptionDefault
countryYesISO 3166-1 alpha-2 code ("DE") or country name ("Germany")
budget_usdNoAnnual budget in USD for salary plus employer charges, if the user has one
assumptionsNoOverride an adjustable assumption the country declares, e.g. {"basic_share_of_gross": 0.6}. See `assumptions` in an employer_cost answer.
salary_localYesGross salary in the local currency of the country, a year unless salary_period is "month"
salary_periodNoWhether the salary is a year (default) or a month. Pass a monthly salary as the user gives it, with "month": the statutory number of monthly payments of the country (13th, 14th month) is applied, see salary_basis in the answer.year
payments_per_yearNoWith salary_period "month" only: the total number of monthly salaries the contract pays in a year, statutory ones included (e.g. 14). Omit to use the statutory number of the country.

Output Schema

NameRequiredDescriptionDefault
metaYes
budgetNo
countryYes
readingYes
summaryYes
scenariosYes
salary_basisNo
employer_costYes
exchange_rateYes
total_annual_localYes
salary_annual_localYes
total_at_official_rateYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.4/5.0
Behavior5/5

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

Beyond the readOnly/destructive annotations, it discloses the data snapshot date (2026-10-22), the rate basis (official rate of the snapshot, with source and date returned), exactly what cost components are included (gross plus statutory employer charges, excluding EOR fee), and a scope disclaimer ('Cost comparison, not legal or tax advice'). It also previews the response shape: cost at each move and the breakeven move for a budget.

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?

Information is front-loaded: when to use, then what is returned, then the exclusion, snapshot date, and disclaimer. It is a dense single block and the return-value sentence is long, but nearly every clause carries decision-relevant content.

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?

With a full output schema, 100 percent parameter documentation, and annotations covering safety, the description still supplies the pieces structured fields cannot: the snapshot vintage, the rate source, cost-component boundaries, and the breakeven-move behavior. An agent has everything needed to decide and call correctly.

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

Parameters3/5

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

Schema coverage is 100 percent, so all six parameters are already documented, including the country/salary/budget roles and the assumptions override. The description only implies the budget parameter's effect on output (headroom) and adds nothing about salary_period, payments_per_year, or override semantics, so it sits at the baseline.

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 operation on a specific resource: returns USD cost at the official rate plus the USD cost under 5/10/20 percent moves, and budget headroom if a budget is supplied. It also carves out a boundary ('Do not use for currency conversion alone'), which separates it from the plain cost and comparison siblings such as employer_cost or compare_offers.

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 trigger is explicit and even quoted bilingually ('pays, or plans to pay, an employee in local currency... asks about exchange-rate risk or a USD budget'), and an exclusion is given for pure conversion. What is missing is naming the sibling to use instead for baseline employer cost or for finding the max affordable salary, which would complete the routing picture.

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.