Geo-Parity
Server Details
Cost of living, fair global pay, healthcare costs, nomad visas and tax residency. Free, no key.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
26 toolsarrival_costWhat It Costs to ArriveARead-onlyIdempotentInspect
The cash needed to ARRIVE somewhere, as opposed to what a month costs once you live there: the entry fee for a given passport, the first month's rent, the deposit, and a long-stay visa fee where one has been verified against the issuing government. READ complete BEFORE totalUsd. Rent covers a subset of the country spine and most visa fees could not be verified, so the total is a FLOOR whenever complete is false, and missing names every component that could not be priced. The total can legitimately be 0 - visa-free entry into a country with no rent figure sums to nothing known - which is honest arithmetic and a false headline. depositMonths is a STATED ASSUMPTION, not a measurement: no free global dataset of deposit norms exists. The entry route itself is derived exactly from passport mobility data, so 'for this passport, this destination is visa-free' is always answered even when no fee is.
| Name | Required | Description | Default |
|---|---|---|---|
| income | No | Monthly remote income in USD. Optional; enables housing's income-relative view but is not needed for the arrival total. | |
| passport | Yes | ISO alpha-2 of the traveller's passport, e.g. 'US'. Determines the entry route and therefore the fee. | |
| destination | Yes | ISO alpha-2 of the destination. Must be in the PPP country registry; some countries with a verified nomad-visa fee (e.g. BB) are not and appear only in find_nomad_visas. | |
| depositMonths | No | Months of rent held as a deposit. Defaults to the site's stated assumption of 1; override it if you know the market. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| rows | No | |
| focus | No | |
| updated | No | |
| excluded | No | |
| attribution | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes well beyond the readOnly/idempotent annotations by disclosing that the total is a floor when 'complete' is false, that 'missing' names unpriced components, that a zero total is legitimate and potentially misleading, and that depositMonths is a stated assumption rather than a measurement. This gives the agent the mental model needed to interpret results safely.
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?
The description is dense but every sentence earns its place: it defines the resource, gives reading order, explains floor semantics, warns about zero totals, and clarifies the epistemic status of depositMonths. The key scoping statement is front-loaded before the caveats.
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?
Given the schema's strong parameter coverage, the read-only annotations, and the presence of an output schema, the description covers all critical calling and interpretation aspects: input components, output caveats, missing-data behavior, assumptions, and passport/destination edge cases. Nothing essential is left for the agent to guess.
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?
The input schema already covers 100% of parameters with useful descriptions, so the baseline is 3. The description adds important meta-semantics, especially that depositMonths is an assumption with no underlying global dataset, and that income is irrelevant to the arrival total. This extra context improves parameter understanding beyond the schema.
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?
The description states a specific resource and scope: the cash needed to arrive somewhere, itemized as entry fee, first month's rent, deposit, and verified long-stay visa fee. It explicitly contrasts this with ongoing monthly costs, which distinguishes it from related cost tools like compare_total_cost and estimate_micro_costs without requiring the agent to infer intent.
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?
The description clearly frames when to use the tool ('to ARRIVE somewhere' versus 'what a month costs once you live there') and gives operational guidance like 'READ complete BEFORE totalUsd'. It does not explicitly name sibling tools to use for the monthly-cost case, so it stops short of a full when-not/alternatives statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_pppCalculate Purchasing Power ParityARead-onlyIdempotentInspect
Given a US-denominated annual income and a target country code, returns the effective local purchasing power (income / pppIndex), the lifestyle equilibrium cost (income * pppIndex), and the purchasing power ratio (1 / pppIndex). Figures use real PPP data (World Bank, IMF, OECD, Penn World Table) relative to a US baseline of 1.0.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Optional city slug (e.g. 'london', 'san-francisco') for a sub-national Capital-to-Rural adjustment: multiplies the national price level by a per-city factor (curated overrides / US-metro BEA RPP / population-tier heuristic). Unknown slug = national figure. | |
| income | Yes | Nominal annual income, denominated against the US baseline. | |
| source | No | PPP dataset to draw figures from. 'consensus' = per-country median across the GDP-based providers (recommended default); 'worldbank' = World Bank GDP price level; 'imf' = IMF WEO implied PPP; 'oecd' = OECD PPP-for-GDP (members + key partners only); 'pwt' = Penn World Table; 'worldbank-cons' = World Bank household-consumption price level; 'bigmac' = The Economist Big Mac index (single-good consumer PPP, ~40 countries); 'factbook' = CIA World Factbook derived price level for ~100 micro-states/territories the macro sources ignore (coarse). Defaults to 'consensus' if omitted. | consensus |
| target | Yes | ISO 3166-1 alpha-2 target country code (case-insensitive). Available codes depend on the chosen source. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| source | No | |
| target | No | |
| metrics | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, covering the safety profile. The description adds meaningful behavioral context by disclosing the calculation formulas, the data providers (World Bank, IMF, OECD, Penn World Table), and the US baseline of 1.0. It does not contradict the annotations.
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?
The description is two focused sentences. The first sentence front-loads the input conditions and exact outputs; the second sentence adds data provenance and baseline context. There is no filler or redundant restating of the title.
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?
Given a rich input schema (100% parameter coverage), the presence of an output schema, and annotations covering read-only/idempotent behavior, the description is complete enough. It covers the core computation, inputs, outputs, and data provenance, while edge details like source defaults and city behavior are already captured in the schema.
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?
Schema description coverage is 100%, with each parameter already explained in detail. The description adds value by clarifying how income and pppIndex relate in the formulas, but it does not add significant semantics for the target or source parameters beyond what the schema already provides.
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?
The description states a specific verb ('returns') applied to a clear resource (purchasing power parity calculations), lists the exact computed outputs with formulas, and specifies the input conditions (US-denominated annual income + target country code). This clearly distinguishes it from siblings like localize_salary or compare_total_cost.
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?
The description implies when to use the tool: when you have a US-denominated annual income and want purchasing-power-adjusted local figures for a country. However, it does not explicitly state when not to use it or name any alternative sibling tools, leaving the agent to infer routing from context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_runwayRunway multiplier from relocating (bootstrap buffer)ARead-onlyIdempotentInspect
For founders/freelancers stretching savings: computes how many extra months of runway relocating to a cheaper hub buys. Burn is split into fixed (location-independent — subscriptions, debt, insurance) and local; only the local slice scales by the target's cost-of-living ratio (city-level where a curated hub is given, else national, incl. Factbook-only countries). Returns the home baseline plus each hub's monthly burn, runway months, extra months, run-out date and the ×multiplier. Estimates from purchasing-power data, not financial advice.
| Name | Required | Description | Default |
|---|---|---|---|
| burn | Yes | Total current monthly burn at home (in `currency`). | |
| home | No | Home country alpha-2 code. Default US. | |
| fixed | No | Location-independent slice of burn (0…burn) that won't fall when you move. | |
| savings | Yes | Total savings (in `currency`). | |
| targets | Yes | 1–3 hubs, comma-separated: COUNTRY or COUNTRY:citySlug (e.g. TH:chiang-mai,AR:buenos-aires,GE). | |
| currency | No | ISO code for the money inputs (e.g. GBP). Default USD. | |
| homeCity | No | Optional curated home-city slug. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| home | No | |
| hubs | No | Sorted by extra months; each has runwayMonths, extraMonths, multiplier, monthlyBurnUsd, runsOut, priceRatio and a coverage note when approximate. |
| fixedFloorMonths | No | Runway cap even at zero local cost (savings ÷ fixed burn). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnly and idempotent behavior. The description adds valuable behavioral context: the fixed/local burn split, city-level vs national cost-of-living scaling, and the list of returned fields. It also appropriately frames the output as estimates from purchasing-power data, not financial advice.
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?
The description is compact, front-loaded with the user benefit, and each sentence contributes: audience, computation, method, output, and caveat. No filler or redundant restatement of the tool name or schema.
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?
For a tool with 7 parameters and an output schema, the description covers the calculation approach, inputs, output fields, and limitations. Combined with the 100% schema coverage and safe annotations, an agent has everything needed to invoke it correctly and interpret results.
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?
Schema coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema by explaining how burn is split into fixed and local slices and how only the local slice scales by cost of living, which directly clarifies burn, fixed, and targets. This is genuine semantic enrichment, not schema repetition.
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?
The description immediately states the specific outcome: computing extra months of runway from relocating to a cheaper hub. It defines the audience, the method, and the returned metrics, making it clearly distinct from siblings like compare_total_cost or calculate_ppp.
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?
It gives clear context for when this tool fits: founders/freelancers stretching savings by relocating to a cheaper hub. It does not explicitly name alternatives or exclusion conditions, but the use case is specific enough to guide selection among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
calculate_wage_bandsBenchmark local salary bands (min, median, top 10%)ARead-onlyIdempotentInspect
Models a country's wage distribution as log-normal, calibrated from World Bank GNI per capita (mean) and the Gini index (spread: sigma = sqrt(2)*normInv((Gini+1)/2)), then returns the survival floor (essentials), statutory minimum (ILOSTAT where available, else curated; null where none exists), median (p50), comfortable (p75), top 10% (p90) and top 1% (p99) bands — each monthly and annual, USD and local currency. Optional salary locates a pay figure on the curve (percentile + out-earns %); percentile returns that exact threshold wage. Model estimates for benchmarking, not payroll data.
| Name | Required | Description | Default |
|---|---|---|---|
| salary | No | Your salary to locate on the distribution. Values over 20000 are read as annual (÷12), else monthly. | |
| country | Yes | ISO 3166-1 alpha-2 country code (case-insensitive). | |
| percentile | No | Return the exact wage threshold at this percentile (e.g. 90 for the top-10% floor). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| bands | No | |
| model | No | |
| country | No | |
| standing | No | |
| atPercentile | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral detail beyond the annotations: log-normal modeling, GNI/Gini calibration, null statutory minimum behavior, monthly/annual and USD/local currency outputs, and optional salary/percentile behaviors. This is rich context that would not be visible from annotations or schema alone, and it contradicts none of the annotations.
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?
The description is dense but purposeful, packing the model, output dimensions, and parameter behavior into one structured paragraph. All content earns its place, though the formula line is technical and slightly heavy for an agent that mainly needs to understand what the tool returns.
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?
With an output schema and rich annotations already present, the description covers the remaining essentials: model inputs, full band list, currency and period variants, optional parameter behavior, and data caveats. Nothing needed to call the tool correctly is missing.
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?
Schema coverage is 100%, so the parameters are already documented. The description adds useful interpretive detail, such as salary being located on the curve to yield percentile plus 'out-earns %' and percentile returning an exact threshold wage, which enhances parameter understanding beyond the schema.
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?
The description clearly states what the tool does: it models a country's wage distribution and returns a specific set of salary bands (survival floor, statutory minimum, p50, p75, p90, p99), so purpose is unambiguous. It does not explicitly distinguish itself from a sibling like localize_salary, though the 'benchmark' framing and band output make the distinction reasonably clear.
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?
The description gives a clear use boundary: results are 'model estimates for benchmarking, not payroll data,' which tells the agent where this tool is and is not appropriate. It does not name alternative tools or provide exhaustive when-to-use versus when-not-to-use guidance, so it stops short of full routing instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_residencyCheck tax-residency day countsARead-onlyIdempotentInspect
Count distinct days of presence per country per calendar year and evaluate the generic 183-day rule, the US Substantial Presence Test (weighted 3-year formula), and the UK 183-day tax-year test. Early-warning day counter — not tax advice.
| Name | Required | Description | Default |
|---|---|---|---|
| stays | Yes | ||
| referenceDate | No | Optional 'as of' date. Defaults to today (UTC). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| countries | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool read-only and idempotent, so the description does not need to cover safety. It adds useful behavioral context: days are distinct (deduplicated), counted per calendar year, and assessed under the generic 183-day rule, the US SPT weighted formula, and the UK tax-year test; the 'early-warning, not tax advice' qualifier also sets expectations about precision.
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 tightly written sentences; the first packs the core computation and the three tests, and the second adds an important scope disclaimer. Every phrase earns its place and the most important information is front-loaded.
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?
For a read-only calculation tool with an output schema, the description covers the computation, the three tests, the per-calendar-year scope, and the advisory nature. The main gap is the lack of differentiation from overlapping sibling tools, which matters given the long sibling list.
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?
The schema documents referenceDate and the country code format, leaving the stays array only structurally defined. The description supplies the missing semantics: stays represent periods of presence and are counted as distinct days per country per calendar year, which clarifies how entry/exit pairs are interpreted. It does not discuss overlap handling or date parsing, but it adds meaningful value beyond the schema.
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?
The description opens with a concrete verb ('Count') and a specific resource ('distinct days of presence per country per calendar year'), then names the exact tax tests evaluated. It is clear what the tool computes, but it never distinguishes itself from similarly named siblings like check_tax_residency_risk or check_travel_residency.
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?
No explicit when-to-use or alternative routing is given; the closest is the 'Early-warning day counter — not tax advice' boundary, which implies use for preliminary counts rather than official determinations. Since it neither names any alternative tool nor gives clear exclusion conditions beyond the disclaimer, guidance is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_schengenCheck a Schengen 90/180-day visa itineraryARead-onlyIdempotentInspect
Validate a set of trips against the Schengen Area rule: a non-EU visitor may be present at most 90 days within any rolling 180-day window. Entry and exit days both count as days of presence; overlapping trips are de-duplicated. Returns days used in the current window, days remaining, an overall compliance flag, and the exact first overstay date (if any).
| Name | Required | Description | Default |
|---|---|---|---|
| trips | Yes | List of Schengen stays. | |
| plannedEntry | No | Optional planned entry date. When set, the response adds plan: { maxStay, latestExit, fullResetDate } — the longest compliant stay starting on that date. | |
| referenceDate | No | Optional 'as of' date (ISO YYYY-MM-DD). Defaults to today (UTC). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| daysUsed | No | |
| compliant | No | |
| windowStart | No | |
| daysRemaining | No | |
| referenceDate | No | |
| maxDaysInWindow | No | |
| firstOverstayDate | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already convey readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful behavior beyond annotations: entry and exit days both count, overlapping trips are de-duplicated, and the exact output items (days used, days remaining, compliance flag, first overstay date) are spelled out. No contradiction with annotations.
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?
Three sentences with zero filler: purpose and rule in the first, counting nuances in the second, return-value summary in the third. The most decision-relevant information (what rule is checked) is front-loaded, and every sentence earns its place.
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?
With full schema parameter coverage, an output schema, and annotations covering safety/idempotency, the description only needed to explain edge-case behavior and result meaning — which it does. An agent knows what inputs to provide, what computation will be performed, and what the response will contain. Nothing material is missing.
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?
Schema description coverage is 100%, so each parameter (trips, plannedEntry, referenceDate) is already documented inline with formats and semantics; the description adds no parameter-level information beyond the rule mechanics that map to the trips field. Baseline 3 is correct here because the schema carries the heavy lifting.
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?
Description opens with a specific verb-resource pair ('Validate a set of trips against the Schengen Area rule') and concretely defines the rule (90 days in any rolling 180-day window). This cleanly separates it from siblings like check_residency, check_travel_residency, and find_nomad_visas, which deal with different constructs (residency status, visa discovery), so an agent can select it without opening sibling schemas.
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?
The domain context is explicit: this is the tool for compliance-checking trip itineraries against the Schengen 90/180-day rule. It does not name alternatives or state when-not-to-use conditions, but the rule specificity makes the intended selection obvious among the residency/tax/visa siblings. Lacks the explicit exclusion language that would earn a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_tax_residency_riskCheck tax-residency risk for remote work abroadARead-onlyIdempotentInspect
Remote Worker Tax Trap radar: evaluates how close a stay is to triggering tax residency (183-day rule with per-country variations across 43 tax jurisdictions) and estimates the tax owed on the FULL annual income if the threshold is crossed — comparing the standard resident effective rate against the country's special expat/nomad regime (Spain's Beckham Law 24%, Portugal's IFICI 20%, Italy's impatriati, territorial/remittance systems, …). Optionally computes leave-by/residency dates from an arrival date and warns where the Schengen 90/180 tourist limit bites first. Early-warning estimates — not tax advice.
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes | Days of presence in the relevant counting period. | |
| income | Yes | Gross annual income (USD) the residency cliff would expose. | |
| arrival | No | Optional arrival date — adds leaveBy and residencyDate to the response. | |
| country | Yes | ISO 3166-1 alpha-2 country code (case-insensitive). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| risk | No | |
| dates | No | |
| projection | No | |
| daysRemaining | No | |
| thresholdDays | No | |
| pctOfThreshold | No | |
| schengenWarning | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint and idempotentHint annotations, the description discloses that this is an estimation tool, explicitly disclaims tax advice, mentions per-country variation across 43 jurisdictions, and explains optional Schengen-warning behavior. This gives the agent a clear model of what the tool will and will not reliably provide.
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?
The description is information-dense but not bloated; it front-loads the core purpose and then details optional behavior and caveats. The list of example regimes adds credibility but is slightly more detailed than strictly necessary, keeping it from a perfect score.
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?
Given the output schema exists, the description does not need to explain return values. It covers purpose, inputs, optional behavior, jurisdictional scope, and a clear not-tax-advice disclaimer, making the tool adequately specified for correct invocation.
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?
Schema description coverage is 100%, and the schema already documents country, days, income, and arrival. The description adds useful context by tying 'arrival date' to leave-by/residency dates and income to the residency cliff, but it does not substantially extend the parameter meaning beyond the schema.
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?
The description names specific actions — evaluating proximity to tax-residency triggers, estimating tax owed on full annual income, comparing standard vs expat/nomad regimes, and optionally computing leave-by/residency dates. This clearly differentiates it from sibling tools like check_residency or check_schengen by emphasizing tax liability and regime comparison, not just presence rules.
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?
The description establishes a clear use case: remote workers abroad needing an early-warning tax-residency risk assessment, including tax exposure if a threshold is crossed. It does not explicitly state when to prefer an alternative tool, but the context is specific enough that an agent can infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
check_travel_residencyUnified Schengen + tax-residency + tax-cost trackerARead-onlyIdempotentInspect
The comprehensive engine: from one travel itinerary it returns (1) Schengen 90/180 tourist-visa status (days used/remaining, first overstay, longest compliant stay), (2) per-country tax-residency risk on each country's OWN threshold and basis — the 183-day rule, Cyprus's conditional 60-day rule (flagged only when you're not 183+ resident elsewhere), the US Substantial Presence Test and the UK tax-year test — with safe days left, leave-by dates and a safe/warning/triggered rating, and (3) with an optional income, the tax cost of triggering residency at the standard rate vs an expat regime. Supersedes check_schengen / check_residency / check_tax_residency_risk (all still available). Early-warning day math — not tax advice.
| Name | Required | Description | Default |
|---|---|---|---|
| stays | Yes | ||
| income | No | Optional gross annual income (USD) — enables the tax-cost projection for at-risk countries. | |
| referenceDate | No | Optional 'as of' date. Defaults to today (UTC). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| summary | No | |
| schengen | No | 90/180 status when any Schengen stay exists: daysUsed, daysRemaining, compliant, firstOverstayDate, maxStayFromRef. |
| countries | No | |
| referenceDate | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds substantial behavioral context beyond those hints: it explains the Cyprus 60-day rule is flagged only when not 183+ resident elsewhere, that results include safe days left, leave-by dates, and a safe/warning/triggered rating, and that optional income enables tax-cost projection. It also hedges with 'Early-warning day math — not tax advice.' No contradiction with annotations.
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?
The description is dense but organized with numbered output categories, making complex information scannable. The disclaimer and supersession note are useful and short. It could be slightly more streamlined, but every sentence contributes meaningful guidance.
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?
For a complex multi-result tool, the description covers the main inputs, outputs, rating semantics, jurisdiction-specific logic, and alternatives. Since an output schema exists, the description does not need to enumerate every return field. The combination of detailed prose, schema, and annotations leaves little ambiguity about what the tool does and how to invoke it.
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?
Schema description coverage is 67%, so the description carries meaningful weight. It enriches 'stays' by framing it as a travel itinerary, and 'income' by explaining it enables tax-cost projection for at-risk countries. It does not explicitly describe 'referenceDate', but the schema already documents it as an optional 'as of' date defaulting to today. This is strong but not exhaustive.
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?
The description names a concrete verb ('returns') and a precise resource ('from one travel itinerary'), then enumerates three specific outputs: Schengen 90/180 status, per-country tax-residency risk, and tax-cost projection. It also explicitly distinguishes itself from sibling tools by saying it supersedes check_schengen, check_residency, and check_tax_residency_risk.
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?
The description gives direct routing guidance: 'Supersedes check_schengen / check_residency / check_tax_residency_risk (all still available).' This tells an agent this unified tool should be preferred over those alternatives while acknowledging they remain callable. That is explicit when-to-use guidance relative to siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_climateCompare climate normals and comfortable daysARead-onlyIdempotentInspect
Monthly climate normals from ERA5 reanalysis (2015-2024) via Open-Meteo: mean daily maximum and minimum temperature, average monthly rainfall, and a count of comfortable days. Pass city (slug) or country (alpha-2) for one place's twelve months — a country answers through a named representative city, because a country does not have one climate. Otherwise cities are ranked by comfortable days, for a single month (1-12) or across the year; the seasonal question is the one people actually have, and an annual total hides it. A comfortable day has a maximum between 18 and 27 C with under 1 mm of rain — a STATED PREFERENCE, not an objective measure: it is temperate-biased and scores hot destinations low on terms they did not agree to, so mean maximum and rainfall travel with every row for callers who want to rank on those instead. ERA5 is reanalysis rather than station observation, which makes it complete and comparable across countries.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City slug (e.g. "lisbon"). Returns that city's twelve months. | |
| limit | No | Return at most this many cities. | |
| month | No | Rank a single month. Omit to rank on the whole year. | |
| country | No | ISO alpha-2. Returns the representative city's months, naming which city. | |
| minComfortDays | No | Filter: minimum comfortable days in the ranked window. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| city | No | |
| rows | No | |
| month | No | |
| updated | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the read-only/idempotent/non-destructive annotations, the description discloses key behavioral traits: the comfortable-day definition is a stated, temperate-biased preference rather than an objective measure, the data is reanalysis rather than station observations, and country queries return a named representative city. It also explains that mean maximum temperature and rainfall travel with each row, which is important context for callers who want alternative ranking criteria.
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?
The description is dense but not bloated; every sentence contributes substantive information. It front-loads the core purpose, then explains modes, then the comfort-day caveat and data source. It is a bit longer than strictly necessary, but the additional context about temperate bias and reanalysis data earns its place.
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?
Given the tool's complexity, the rich output schema, and the read-only annotations, the description is complete. It covers data provenance, metric definitions, mode selection, country handling, and ranking behavior. Minor edge cases like what happens if both `city` and `country` are supplied are not addressed, but they are well-covered by the schema and not essential for correct invocation.
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?
The input schema already covers all five parameters at 100% coverage, providing a baseline of 3. The description adds meaningful semantic context beyond the schema: the distinction between returning a single place's months versus ranking cities, the representative-city behavior for `country`, the meaning of omitting `month`, and the subjective definition of comfortable days. This pushes the score above baseline.
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?
The description clearly identifies the tool's function: retrieving monthly climate normals and comfortable-day counts from ERA5/Open-Meteo. It distinguishes itself from sibling comparison tools by specifying the data source, metrics, and modes (city/country vs. ranked cities), so an agent understands what this tool uniquely offers.
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?
The description explains when to pass `city` or `country` versus when cities will be ranked, and why a country resolves through a representative city. It also gives guidance on choosing month-level vs. annual ranking. It does not explicitly name alternative tools or state when not to use this tool, but the mode-based instructions are clear enough for most selection scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_connectivityCompare measured internet quality by countryARead-onlyIdempotentInspect
Measured connection quality per country from Cloudflare Radar: median download and upload (Mbps), median idle latency and jitter (ms), and a call-quality verdict derived from latency and jitter rather than bandwidth — a video call fails on latency and jitter long before it fails on throughput, which is why a download figure alone cannot answer “can I work from here”. Aggregated from real connections over a 28-day window, not crowdsourced or self-reported. Coverage is wider than the site's country pages (~200 locations), so this answers for places with no page here. A country Radar has too little data for is absent, never zero.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Metric to rank by. Bandwidth sorts high-to-low; latency and jitter sort low-to-high, because “better” runs in opposite directions. | download |
| limit | No | Return at most this many countries. | |
| maxLatency | No | Filter: maximum median idle latency, ms (e.g. 100). | |
| minDownload | No | Filter: minimum median download, Mbps (e.g. 50). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| rows | No | |
| sort | No | |
| updated | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly and idempotent behavior, but the description adds important behavioral context beyond that: data is aggregated over a 28-day window, comes from real connections rather than self-reported sources, and missing countries are absent rather than reported as zero. It also explains the call-quality verdict is derived from latency and jitter rather than bandwidth, which clarifies a potentially surprising output.
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?
The description is composed of four dense sentences, each covering a distinct useful aspect: metric definitions, data provenance, geographic coverage, and missing-data semantics. It is front-loaded with the central purpose and contains no redundant or filler content.
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?
For a read-only comparison tool with rich schema descriptions and an output schema, the description covers the key unknowns: what is measured, from what source, over what period, how missing data behaves, and why call quality is not simply bandwidth. An agent has all information needed to select and invoke the tool correctly.
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?
Schema description coverage is 100%, with parameter descriptions already explaining sort directions, units, and filter thresholds. The description adds broader context about the measured metrics but does not add further meaning to individual parameters beyond what the schema already provides, so the baseline score of 3 applies.
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?
The description clearly states the tool measures connection quality per country from Cloudflare Radar, listing specific metrics: median download/upload, latency/jitter, and a call-quality verdict. It distinguishes itself from sibling comparison tools by focusing specifically on internet connectivity rather than climate, healthcare, or cost.
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?
It provides clear context on when the tool is useful, noting coverage extends beyond the site's country pages and that it works for places with no dedicated page. However, it does not explicitly name sibling alternatives or state conditions when another tool would be more appropriate, so it stops short of a full usage decision rule.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_contractCompare contractor vs employee net take-homeARead-onlyIdempotentInspect
Compute gross-to-net parity between a self-employed contractor hourly rate and an employee (W2/EOR) hourly rate, accounting for self-employment/income tax and self-paid health insurance, and return the break-even contractor rate. Uses transparent effective-rate tax presets per country, all overridable. Estimates only — not tax advice.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | Hours per week (default 40). | |
| ctRate | No | Override contractor effective tax rate, percent (e.g. 32). | |
| health | No | Annual self-paid health insurance (USD); defaults to the country preset. | |
| country | No | Country code for tax presets. | US |
| empRate | No | Override employee effective tax rate, percent (e.g. 24). | |
| taxMode | No | 'brackets' uses progressive 2025 schedules (US and GB only; falls back to flat elsewhere — response echoes the mode). | |
| expenses | No | Annual business expenses (USD, default 0). | |
| employeeRate | Yes | Employee/W2/EOR hourly rate (USD). | |
| employeeWeeks | No | Employee paid weeks (default 52). | |
| contractorRate | Yes | Self-employed hourly rate (USD). | |
| contractorWeeks | No | Contractor paid/billable weeks (default 48). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| employee | No | |
| contractor | No | |
| breakevenRate | No | |
| netDifference | No | |
| contractorProfitable | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it read-only and idempotent; the description adds meaningful behavior beyond that: it relies on country-specific effective-rate tax presets, supports overrides, and is expressly an estimate, not tax advice. This helps set expectations about accuracy and configurability.
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?
The description is three sentences, front-loaded with the core computation, then method and caveat. No sentence is wasted; each earns its place.
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?
For an 11-parameter tool with a rich output schema, the description covers the central calculation, overridability, country-preset behavior, and estimation caveat. Remaining details like country-specific fallbacks are present in the schema, so nothing needed for correct invocation is missing.
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?
The input schema already documents all 11 parameters with descriptions, and schema coverage is 100%, so the baseline applies. The description reinforces the role of tax presets and overrides but does not add substantial meaning beyond what each parameter description already provides.
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?
The description names the exact computation (gross-to-net parity between contractor and employee hourly rates), the inputs considered (self-employment/income tax, self-paid health insurance), and the output (break-even contractor rate). This clearly distinguishes it from sibling cost/salary tools.
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?
The description provides clear context for when to use the tool: comparing net take-home between a self-employed contractor rate and an employee/W2/EOR rate. It does not explicitly name alternatives or exclusions, but the use case is specific enough to route an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_countriesCompare two countries' cost of livingARead-onlyIdempotentInspect
Side-by-side comparison of two countries: US-relative price levels across every dataset (World Bank, IMF, OECD, Penn World Table, consumption basket), the consensus ratio, percent difference, and $100k salary equivalence in both directions.
| Name | Required | Description | Default |
|---|---|---|---|
| a | Yes | First ISO 3166-1 alpha-2 country code (case-insensitive). | |
| b | Yes | Second ISO 3166-1 alpha-2 country code (must differ from a). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| ratioAtoB | No | |
| salary100k | No | |
| pctDifference | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the read-only, idempotent, non-destructive nature of the tool. The description adds useful context about US-relative price levels and both-direction salary equivalence, but does not disclose additional behavioral traits such as data freshness, coverage caveats, or limits. This is adequate given the annotations.
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?
The description is one dense, front-loaded sentence that names the action first and then enumerates the distinct outputs. There is no filler or redundant restatement of the title.
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?
For a simple two-parameter read-only tool with annotations and an output schema, the description is largely complete: it names the data sources and the derived metrics. The main missing piece is a brief statement about when to prefer this over sibling comparison tools, which is primarily a usage-guideline gap.
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?
Schema coverage is 100%, so both parameters are already documented as ISO alpha-2 country codes with clear constraints. The description adds little beyond confirming 'two countries' and implying a US-relative frame, but it does not clarify the role of a vs. b in the comparison.
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?
The description states a specific action ('Side-by-side comparison of two countries') and a clear resource: cost-of-living data across named datasets. The output list ('consensus ratio, percent difference, $100k salary equivalence') makes it distinct from sibling tools like compare_climate or compare_healthcare.
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 guidance on when to use this tool versus alternatives such as compare_total_cost or other compare_* siblings. The recommended use is only implied by the title and description, with no explicit exclusions or routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_country_riskCompare country risk (INFORM, EC JRC)ARead-onlyIdempotentInspect
INFORM Risk from the European Commission's Joint Research Centre: a 0-10 composite where HIGHER IS WORSE, plus the three dimensions behind it — hazard (exposure to earthquakes, floods, cyclones, drought, conflict), vulnerability (how exposed the population is) and copingCapacity (whether institutions and infrastructure could respond). The last is usually the one that matters when choosing where to live: two countries can face the same earthquake and have completely different outcomes. Safest-first by default. Covers 191 countries, far wider than this site's country pages. A country INFORM does not score is ABSENT, never zero — zero is the safest possible value and would rank an unassessed country first. Deliberately not folded into any other ranking here: risk flags, it never silently reweights a cost or livability score.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Dimension to sort by. maxRisk always filters on the composite. | risk |
| limit | No | Return at most this many countries. | |
| country | No | ISO alpha-2 for a single country's scores. | |
| maxRisk | No | Keep only countries at or below this composite score. | |
| descending | No | True lists the most dangerous first. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| rows | No | |
| entry | No | |
| release | No | |
| updated | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is known. The description adds valuable behavioral quirks: the 'ABSENT, never zero' semantic distinction, the default sorting behavior, and the warning that an unassessed country would incorrectly rank first if treated as zero. It also explains that maxRisk always filters on the composite, which prevents misinterpretation when sorting by other dimensions.
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?
The description is moderately sized but every sentence earns its place: scale, dimensions, real-world interpretation, default ordering, coverage, missing-data semantics, and integration philosophy. It front-loads the most decision-critical fact (higher is worse) and then moves to the comparison-relevant nuance. It is slightly dense, but not padded.
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?
Given that an output schema exists and the annotations cover safety, the description is largely complete. It explains the scale, the missing-data encoding, default order, and the conceptual importance of copingCapacity. The only minor gap is that it doesn't describe the output row structure beyond the fact that the composite and three dimensions are returned, but the output schema presumably covers that.
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?
Schema description coverage is 100%, so the baseline is 3. The description adds meaning for the composite scale and the copingCapacity dimension, but it does not elaborate on the exact format of the country parameter (ISO alpha-2 is already in the schema) or the numeric constraints. The description's additional context about sort dimensions is useful but not essential; the schema already documents each parameter.
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?
The description opens with the exact source (INFORM Risk, EC JRC), the 0-10 composite scale with the higher-is-worse direction, and the three component dimensions. It names the specific resource and the verb 'compare', and it distinguishes itself from sibling tools like rank_livability and compare_countries by stating it is deliberately not folded into other rankings.
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?
The description gives concrete selection context: it is the tool for risk flags, it covers 191 countries wider than the site's country pages, and it notes the safest-first default sorting. It also states that the tool is not folded into other rankings, which implicitly tells an agent when not to use it for composite livability/cost comparisons. It does not explicitly name alternative sibling tools for the exclusion case, but the 'deliberately not folded into any other ranking here' sentence is a clear usage boundary.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_healthcareCompare Healthcare Costs & ExposureARead-onlyIdempotentInspect
Healthcare cost and financial exposure across 41 countries: out-of-pocket spend per person per year (US$), out-of-pocket as a share of all health spending, total health spend per capita (PPP international $), government funding share, physicians per 1,000 and dentists per 10,000. Figures are MEASURED from World Bank and WHO Global Health Observatory series, never derived from a price index: scaling healthcare by a country's general price level overstates costs abroad by 1.2x-5.4x, because health prices do not track the price level (the US is an outlier and several countries deliberately price healthcare below their own economies). Share and burden are separate facts and both are returned - the US pays only ~11% out of pocket, a low share, but the highest absolute amount. Dental is reported as ACCESS (dentist density), not price: no free citable source publishes procedure prices. National averages, not a quote for any individual's care. Not medical, insurance or financial advice.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Metric to rank by. 'outOfPocket' = out-of-pocket spend per person per year (default, the figure a person actually pays); 'spend' = total health spend per capita; 'exposure' = out-of-pocket as a share of health spending; 'doctors' = physicians per 1,000 (ranked best-first); 'dentists' = dentists per 10,000 (best-first). | outOfPocket |
| country | No | Optional ISO 3166-1 alpha-2 country code (case-insensitive). Echoes that country's row and its rank under the active sort. | |
| maxOutOfPocketPct | No | Optional filter: keep only countries where households pay at most this percentage of health spending directly. | |
| minPhysiciansPer1000 | No | Optional filter: keep only countries with at least this many physicians per 1,000 people. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| rows | No | Countries under the active sort, best first. |
| focus | No | The requested country's row, when `country` was given. |
| updated | No | ISO date the underlying data was last refreshed. |
| excluded | No | Countries removed by filters or missing the sorted metric. |
| attribution | No | Sources, a quotable citation and a permalink. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses important behavioral details: figures are measured from World Bank/WHO and never derived from a price index, share and burden are separate facts, dental is access not price, results are national averages not individual quotes, and it is not advice. This is substantial contextual disclosure that prevents misuse.
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?
The description is dense and front-loaded with the core scope and metric list, and every sentence adds useful caveats. It could be slightly shorter without losing value, but the length is justified given the tool's interpretation pitfalls.
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?
With an output schema present, the description does not need to explain return values. It covers the country scope, metric definitions, data provenance, major interpretation caveats, dental limitation, and advice disclaimer. This is complete for an agent to call the tool correctly and interpret results appropriately.
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?
The input schema already documents all parameters with 100% coverage, including enum meanings and filter semantics. The description adds general context about metrics like out-of-pocket share and dental access, but it does not need to repeat parameter-level detail and does not substantially extend what the schema already provides.
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?
The description states exactly what the tool offers: healthcare cost and financial exposure across 41 countries, with a precise and rich metric list. This makes the resource and scope unmistakable and clearly separates it from broader comparison tools like compare_total_cost or compare_countries.
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?
The description gives clear context for when this tool is relevant: comparing healthcare spending, out-of-pocket exposure, doctor/dentist availability across countries. It does not explicitly name alternative tools or give when-not-to-use rules, but its domain-specific scope is enough for an agent to select it over non-healthcare siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_housingCompare Housing Costs & AffordabilityARead-onlyIdempotentInspect
Housing cost and affordability across countries, built for remote workers. Returns monthly rent plus TWO ratios that together answer the real question: rent as a share of the LOCAL median wage (are locals priced out?) and as a share of YOUR remote income (can you afford it?). The gap between them - arbitrageGap, in percentage points - is the single number saying whether a place is cheap FOR YOU; pass remoteIncome to get it. Also returns price-to-income and price-to-rent as a percentage of each country's OWN long-run average (OECD), and mortgage rates (ECB, euro area only; absent elsewhere rather than estimated). IMPORTANT: those affordability percentages compare a country with its own history, NOT with other countries - 127 for Spain means 27% less affordable than Spain's norm, not 27% dearer than Germany. Every rent carries rentBasis: 'measured' where a real Eurostat city figure exists (Spain, Portugal, Switzerland only) or 'modelled' from the site's price basket, which understates housing by up to ~40% where housing has decoupled from the general price level. National averages; not financial advice.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | 'affordability' = rent as a share of your remote income, lowest first (falls back to raw rent when no income given); 'rent' = monthly rent; 'localBurden' = rent as a share of the local median wage; 'priceToIncome' = price-to-income vs long-run average. | affordability |
| flatM2 | No | Flat size in m² used to convert measured per-m² rents. Default 70; echoed back so the assumption is visible. | |
| country | No | Optional ISO 3166-1 alpha-2 code; echoes that country's row and rank. | |
| remoteIncome | No | Your monthly income in USD, earned remotely. Enables rentPctOfYourIncome and arbitrageGap; omit for the local-only view. | |
| maxRentPctOfIncome | No | Optional filter: keep only countries where rent is at most this percentage of your remote income. Requires remoteIncome. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| rows | No | |
| focus | No | |
| updated | No | |
| excluded | No | |
| attribution | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already signal readOnly=true, idempotent=true, and non-destructive, but the description goes well beyond them. It explains what each metric means, warns that affordability percentages are country-own historical comparisons rather than cross-country rankings, discloses that mortgage rates are absent outside the euro area rather than estimated, and reveals the material up-to-40% understatement for modelled rents. This is exactly the kind of non-obvious behavioral nuance an agent needs before trusting results.
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?
Although the description is long, every sentence carries operational value: what is returned, how ratios relate, the crucial own-history caveat, the rentBasis reliability warning, and the data-coverage limits. It is front-loaded with the core purpose and then layers caveats in a logical order. No filler or redundancy is present.
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?
Given the tool's complexity, the optional parameters, and the existence of an output schema, the description is remarkably complete. It explains return values, units, fallback behavior, data sources, limitations, and interpretation hazards. An agent has enough context to call the tool correctly, interpret results sensibly, and avoid common misreadings without needing to inspect the output schema.
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?
Schema description coverage is 100%, so the baseline is 3 and the schema already documents every parameter clearly. The description adds some useful semantic context by tying remoteIncome to arbitrageGap and explaining the conceptual meaning of the ratios, but it does not substantially improve on the existing parameter descriptions. It reinforces, rather than extends, what the schema provides.
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?
The description names a specific resource and verb: comparing housing cost and affordability across countries for remote workers. It clearly distinguishes this from broader sibling tools like compare_total_cost or compare_countries by focusing on rent, affordability ratios, and the remote-income lens. It also specifies concrete outputs (monthly rent, two ratios, arbitrageGap), so an agent knows exactly what this tool is for.
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?
The description gives clear context: it is for remote workers evaluating housing affordability, and it explains when remoteIncome should be passed to get the arbitrageGap. It does not explicitly name alternatives or state 'use this instead of compare_total_cost,' but the housing-specific framing makes the intended use evident. There are no exclusions beyond the ECB/Eurostat coverage note, which is more data-availability guidance than usage routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_public_holidaysShared working days and public holidays by countryARead-onlyIdempotentInspect
Two questions in one. Given countries (two or more), returns the working days those places genuinely SHARE in a year — weekdays on which nobody is on a public holiday — which is the number a distributed team actually plans against and the half of the question timezone-overlap tools never answer: a London/Tokyo team loses roughly three working weeks a year to non-overlapping holidays. Without countries, ranks countries by nationwide public holidays. Weekend holidays are excluded (they cost nobody a working day) and regional holidays are counted separately from national ones. Covers 204 countries, but NOT India, Thailand, Malaysia, the UAE or Saudi Arabia — those return NO_DATA rather than an empty calendar, because “no data” and “no holidays” are opposite claims.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Ranking direction. Ignored when `countries` is given. | most |
| year | No | Calendar year. Defaults to the first year in the dataset. | |
| limit | No | Return at most this many countries in a ranking. | |
| countries | No | Comma-separated ISO alpha-2 codes, two or more (e.g. "GB,JP"). Omit to get a ranking instead of an overlap. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| rows | No | |
| year | No | |
| lostDays | No | |
| weekdays | No | |
| countries | No | |
| lostDates | No | |
| sharedWorkingDays | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Even with readOnlyHint and idempotentHint annotations, the description adds meaningful behavioral nuance: weekend holidays are excluded, regional holidays are counted separately from national ones, and five named countries return NO_DATA instead of an empty calendar to avoid conflating no data with no holidays. This is exactly the kind of non-obvious result behavior an agent needs.
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?
The description is front-loaded with the core two-mode behavior and each sentence contributes either a usage rule, an output interpretation, or a coverage caveat. It is a bit long with the London/Tokyo example, but the extra detail is substantive rather than filler.
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?
With an output schema present and annotations covering safety, the description still covers the critical contextual gaps: conditional parameter behavior, holiday counting methodology, and geographic coverage exceptions. An agent can call this tool confidently without hidden surprises about modes or missing-data semantics.
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?
Schema coverage is 100%, so the baseline is 3, but the description adds real value by explaining the dual-mode semantics of countries and explicitly noting that sort is ignored when countries is supplied. It also clarifies how weekend and regional holidays affect the calculation, which is not evident from the schema alone.
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?
The description opens with 'Two questions in one' and clearly defines both modes: given two or more countries it returns shared working days, otherwise it ranks countries by public holidays. This is a specific verb-plus-resource statement that distinguishes the tool from the many compare_* siblings.
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?
The description explicitly ties usage to the presence of the countries parameter: provide it for overlap, omit it for ranking. It also contrasts the tool with timezone-overlap tools, explaining the gap it fills. It does not name a sibling alternative directly, but the conditional guidance is clear and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_total_costTotal Cost of Living vs Your IncomeARead-onlyIdempotentInspect
What a month actually costs in each of 41 countries on a stated income, and what is left over. Sums four lines that are kept from overlapping: rent (measured Eurostat city rents, HUD Fair Market Rents, or the price basket where neither covers a country), the everyday basket EXCLUDING rent (the basket normally contains rent — roughly half of it — so adding a separate housing figure to the full basket would overstate a total by ~60%), out-of-pocket healthcare, and income tax plus employee social contributions on that income. VAT is already inside the basket prices (purchasing-power data derives from surveyed purchaser prices) and is therefore never added. Tax assumes you become tax-resident and are taxed locally, single filer, no deductions; special regimes such as Portugal's IFICI are reported separately where they would be cheaper. Estimates for comparison — not a quote and not tax advice.
| Name | Required | Description | Default |
|---|---|---|---|
| sort | No | Ranking. 'remaining' = most left over first; 'share' = smallest share of your income. | total |
| income | Yes | Monthly income in USD. Required — the tool is a subtraction. | |
| country | No | ISO 3166-1 alpha-2; echoes that country's row and rank as `focus`. | |
| maxPctOfIncome | No | Keep only countries whose total is at or below this share of income (%). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description discloses significant behavioral details: four cost lines are deliberately kept non-overlapping, rent is excluded from the everyday basket to prevent ~60% overstatement, VAT is already included and never added, and tax assumptions are spelled out (tax-resident, single filer, no deductions, IFICI handled separately). This gives an agent an accurate model of how results are computed.
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?
The description is dense but front-loaded: it leads with the core result, then explains methodology and caveats in a logical order. Every section earns its place given the complexity of the calculation, though it is somewhat long for a tool with a simple required parameter.
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?
For a tool with no output schema, the description covers the essential return concept (monthly cost and leftover), data sources, exclusions, tax assumptions, and scope limits across 41 countries. It stops short of describing the exact response shape or sorting mechanics, but the input schema covers sort behavior and the overall picture is complete enough for correct invocation.
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?
Schema coverage is 100%, so the baseline is 3. The description adds context for income ('the tool is a subtraction') and clarifies what cost components the total comprises, but it does not add much detail about sort values, country format, or maxPctOfIncome beyond what the schema already states.
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?
The description opens with a specific outcome: what a month actually costs in each of 41 countries on a stated income and what is left over. It then names the four cost components (rent, everyday basket excluding rent, healthcare, income tax) and the subtraction logic, making the tool's scope distinct from broader siblings like compare_countries or compare_housing.
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?
The description gives clear usage context: it is for comparing monthly total living costs against a stated income across 41 countries, with explicit caveats that it is an estimate and not a quote or tax advice. It does not explicitly name when to prefer an alternative sibling, but the domain and boundary conditions are clear enough for an agent to route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
estimate_micro_costsEstimate everyday prices in two countries (Pint & Property Index)ARead-onlyIdempotentInspect
Estimates local prices for a 32-item everyday basket (rent, pint of beer, groceries, transport, gym, …) in two countries, derived as usPrice × pppIndex^elasticity — non-tradables like rent swing harder across borders than world-priced goods like petrol (Balassa-Samuelson-style model). Returns per-item prices in USD and local currency, category subtotals, and a single-person monthly budget rollup. Model estimates, not price quotes.
| Name | Required | Description | Default |
|---|---|---|---|
| base | Yes | ISO 3166-1 alpha-2 country code to compare FROM (case-insensitive). | |
| source | No | Optional dataset override. Defaults to the consumption basket (worldbank-cons) when it covers both countries, else consensus; the response echoes the source used. | |
| target | Yes | ISO 3166-1 alpha-2 country code to compare TO (must differ from base). | |
| baseCity | No | Optional city slug for the base side (sub-national cost adjustment, e.g. 'london'). Enables intra-country city comparisons like London vs Hull. | |
| targetCity | No | Optional city slug for the target side (e.g. 'hull'). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| items | No | |
| source | No | |
| monthlyBudget | No | |
| categoryTotals | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal read-only/idempotent behavior, and the description adds meaningful transparency: the derivation formula, the distinction between tradable and non-tradable goods, the output structure (per-item prices, subtotals, monthly budget rollup), and the explicit limitation that these are estimates, not quotes.
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?
The description is a single dense paragraph with no filler; every sentence contributes methodology, scope, or output details. It could be slightly tighter, but it is well-structured and front-loaded with the primary purpose.
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?
Combined with the very detailed schema and presence of an output schema, the description covers the model, scope, outputs, and caveats. Minor gaps remain, such as explicitly explaining optional city sub-adjustments in the description itself, but the schema already handles those.
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?
Schema description coverage is 100% and each parameter already has a clear explanation. The tool description does not add parameter-specific meaning beyond generally referencing 'two countries' and the basket contents, so the baseline score of 3 is appropriate.
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?
The description uses a specific verb ('Estimates') with a concrete resource ('local prices for a 32-item everyday basket in two countries') and clearly differentiates this from siblings via the Balassa-Samuelson-style model and the 'Model estimates, not price quotes' caveat.
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?
The intended use case is implied clearly—estimate everyday consumer prices across two countries—but the description does not explicitly state when to choose this over alternatives like compare_total_cost or calculate_ppp, nor does it frame exclusions beyond the 'not price quotes' caveat.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_fire_locationsFind where a portfolio can fund early retirementARead-onlyIdempotentInspect
Geo-arbitrage FIRE analysis: given a portfolio and safe withdrawal rate, returns every country where the passive income sustains a lean ($32k US-equivalent/yr), comfortable ($55k), upper ($90k), or luxury ($150k) lifestyle at local purchasing-power prices — plus FIRE numbers per tier, nomad-visa income-floor eligibility, local-currency income, an SWR sensitivity band, (with savings/coast params) years until each country unlocks, and — where covered — a statePension overlay with the OECD net pension replacement rate (safety net from pension age; not subtracted from the FIRE numbers). Estimates only — not financial advice.
| Name | Required | Description | Default |
|---|---|---|---|
| swr | No | Safe withdrawal rate as fraction (0.04) or percent (4). Default 0.04. | |
| coast | No | Set to 1 for Coast-FIRE mode (project growth with zero further savings). | |
| return | No | Expected real annual return, fraction (0.05) or percent (5). Default 0.05. | |
| source | No | consensus | |
| savings | No | Monthly savings (USD) — enables the years-to-FIRE planner. | |
| portfolio | Yes | Total investable portfolio (USD). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| rows | No | |
| sensitivity | No | |
| annualIncome | No | |
| monthlyIncome | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, and the description adds meaningful behavioral context beyond those: 'Estimates only — not financial advice,' the statePension overlay is 'not subtracted from the FIRE numbers,' and optional savings/coast parameters change the output to include years until each country unlocks. This helps avoid misinterpretation of results.
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?
The description is one long, dense sentence, but it is front-loaded with the core purpose and then enumerates outputs. There is no filler, though splitting into a few sentences would improve readability.
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?
Given the output schema exists, the description thoroughly covers the key input relationship and enumerates the important output categories: tiers, FIRE numbers, nomad-visa eligibility, local currency, SWR sensitivity, savings/coast effects, and statePension caveats. The only lightly documented parameter is 'source,' but the enum values are fairly self-explanatory and the required portfolio parameter is well covered.
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?
Schema coverage is 83%, and the schema already explains most parameters including accepted fraction/percent forms for swr and return. The description adds only aggregate mentions of portfolio/SWR and savings/coast mode, without detailing each parameter, so it neither substantially improves nor hurts parameter understanding.
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?
The description clearly states a specific verb-plus-resource purpose: given a portfolio and SWR, return all countries where passive income supports specified FIRE lifestyle tiers. It is distinct from sibling tools by its geo-arbitrage FIRE focus, though it does not explicitly name or differentiate itself from a sibling such as find_nomad_visas.
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?
The description provides clear context for when to use the tool: when a user wants country-level FIRE feasibility based on a portfolio and withdrawal rate. It does not state exclusions or name alternative tools, but the FIRE-specific framing makes the intended use case fairly unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_meeting_slotScore team timezone friction + find the meeting windowARead-onlyIdempotentInspect
Given a set of cities/timezones and each participant's local working hours, find the longest UTC window where everyone is simultaneously within their working day (DST-accurate), AND score the team's overall timezone friction. Returns the overlap in UTC and in each participant's local time (or null with the best partial coverage), plus a friction block: a 0–100 score, grade (Effortless/Manageable/Strained/Broken), daily shared hours, coverage, and the loneWolf — the member whose removal would free the most team overlap. Useful for scheduling and for hiring/team-composition decisions.
| Name | Required | Description | Default |
|---|---|---|---|
| end | No | Default working-window end, minutes from local midnight (default 1080 = 18:00). | |
| date | No | Reference date (ISO YYYY-MM-DD) for DST. Defaults to today (UTC). | |
| hours | No | Optional per-zone overrides aligned to `zones`, e.g. '540-1080;420-720'. | |
| start | No | Default working-window start, minutes from local midnight (default 540 = 09:00). | |
| zones | Yes | IANA timezone identifiers, e.g. 'Europe/London'. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| overlap | No | |
| friction | No | |
| referenceDate | No | |
| bestPartialCount | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover readOnlyHint, idempotentHint, and destructiveHint. The description goes well beyond those by disclosing DST-accuracy, the fallback behavior of returning 'null with the best partial coverage', and the detailed shape of the `friction` block including the `loneWolf` concept. This gives an agent a strong behavioral model of what the tool will compute and return.
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?
The description is front-loaded with the core purpose, then moves to the return contract, then to use cases. It is somewhat detailed, especially around return values even though an output schema exists, but the structure makes it easy to scan and every sentence contributes meaningful selection or behavioral information.
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?
For a tool with this complexity—5 parameters, 1 required, and an output schema—the description covers input scenario, algorithm behavior, return semantics, and practical use cases. The presence of an output schema reduces the burden for return-value detail, but the description is still complete enough for an agent to correctly select and invoke the tool.
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?
Schema description coverage is 100%, so the schema itself already documents all five parameters. The description adds general context ('each participant's local working hours') but does not provide new parameter-level meaning beyond the schema. Baseline 3 is appropriate.
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?
The description names a specific verb ('find'), a specific resource ('the longest UTC window where everyone is simultaneously within their working day'), and a second distinct deliverable ('score the team's overall timezone friction'). It clearly distinguishes this tool from the sibling tools, none of which target meeting-window discovery or timezone friction scoring.
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?
The description explicitly states the intended contexts: 'Useful for scheduling and for hiring/team-composition decisions.' It does not name alternatives or exclusion conditions, but no sibling tool appears to compete with this capability, so the absence of exclusions is acceptable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_nomad_visasMatch income to digital nomad visasARead-onlyIdempotentInspect
Digital-nomad visa Income Matcher: given a monthly remote income (any currency) and household size, computes each program's real income threshold (base plus its published per-dependent uplift) and returns the programs you qualify for plus the near misses just out of reach — with duration, renewability, tax notes and official source URLs. Curated summaries — verify with the official source before applying.
| Name | Required | Description | Default |
|---|---|---|---|
| income | No | Your gross monthly income (in `currency`, default USD). | |
| children | No | Number of dependent children (each adds the program's child uplift). | |
| currency | No | ISO currency code for `income` (e.g. EUR, GBP, INR). Defaults to USD. | |
| partners | No | 1 if bringing a partner (raises each program's threshold by its partner uplift). | |
| renewable | No | Set to 1 to require renewable programs. | |
| residency | No | Set to 1 to require a path to permanent residency. | |
| minDuration | No | Minimum program duration in months. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| total | No | |
| matches | No | Programs you qualify for; each carries requiredUsd (household threshold) and shortfallUsd (≤0). |
| updated | No | |
| household | No | |
| incomeUsd | No | Your income converted to USD, used for matching. |
| nearMisses | No | Programs within ~$1,000/mo of qualifying, closest first. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
It discloses the computation method (base threshold plus per-dependent uplift), the deliberate inclusion of near-misses, and the output payload (duration, renewability, tax notes, official source URLs). The caveat to verify with the official source, combined with readOnlyHint and idempotentHint, gives a complete picture with no contradiction.
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 function, and a necessary verification caveat. There is no filler, and every sentence earns its place.
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?
For a read-only, idempotent computation tool, the description plus fully described schema and presence of an output schema cover eligibility behavior, output fields, filters, and reliability caveats. Nothing critical for selecting or invoking the tool is missing.
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?
Schema coverage is 100%, so the baseline is 3. The description adds 'any currency' and clarifies per-dependent/partner uplifts, but it does not materially deepen each parameter beyond the schema's already clear definitions.
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?
The opening phrase 'Digital-nomad visa Income Matcher' immediately names the verb and resource; 'computes each program's real income threshold' and 'returns the programs you qualify for plus the near misses' spells out behavior. This clearly distinguishes it from sibling tools like compare_climate or check_residency.
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?
The description implies a use case: matching income and household size to digital-nomad visa eligibility. However, it never explicitly states when to prefer this tool over related siblings such as check_residency or check_tax_residency_risk, and it provides no exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
localize_salaryLocalize a salary for fair pay across bordersARead-onlyIdempotentInspect
Convert a base salary from a home country into a cost-of-living-fair local equivalent: S_local = S_base × (I_target / I_home), where I is a US-relative price level. Omit target to receive a localized salary matrix across every country in the source — useful for pricing one offer across many markets. Returns USD purchasing-power equivalents, not currency-converted amounts.
| Name | Required | Description | Default |
|---|---|---|---|
| base | Yes | Base annual salary in the home country (USD-denominated). | |
| home | Yes | ISO 3166-1 alpha-2 home country code the base salary is expressed in (case-insensitive). | |
| source | No | PPP dataset to draw figures from. Defaults to 'consensus' if omitted. | consensus |
| target | No | Optional ISO 3166-1 alpha-2 target country code. Omit to localize across all countries in the source. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| home | No | |
| input | No | |
| source | No | |
| results | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), so the bar is lower. The description adds value beyond annotations by disclosing the mathematical transformation behavior, the matrix-mode expansion when target is omitted, and the critical non-obvious return trait: 'USD purchasing-power equivalents, not currency-converted amounts.' This prevents a common misuse.
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?
Three dense sentences, each earning its place: the core operation with formula, the batch-mode variation, and the return-semantics clarification. The most decision-relevant information (what it computes and how) is front-loaded, with zero filler words.
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?
Given the output schema exists and annotations are rich, the description need not explain return structures or safety. It covers the formula, both invocation modes, and return semantics. Minor gaps remain: no guidance on choosing among the 8 source datasets and no edge-case behavior (e.g., home == target), but these are minor for a read-only calculation tool.
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?
Schema coverage is 100%, so the baseline is 3. The description adds genuine meaning beyond the schema by relating home and target through the ratio (I_target / I_home), giving the agent a conceptual model of how the parameters interact. The omit-target behavior is somewhat redundant with the schema's target description, but the formula is a real increment.
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?
The description states a specific verb ('Convert') + resource ('base salary') + purpose ('cost-of-living-fair local equivalent'), backed by the exact formula S_local = S_base × (I_target / I_home). It differentiates itself from close siblings like calculate_ppp and calculate_wage_bands by clarifying it returns salary equivalents, not indices or bands, and explicitly notes it is not a currency conversion.
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?
The description gives clear context for the two modes: single-target conversion versus omitting target to 'receive a localized salary matrix across every country' with the use case 'pricing one offer across many markets.' However, it does not name sibling alternatives (e.g., calculate_ppp, calculate_wage_bands) or state when-not-to-use, so routing between related tools is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
passport_powerPassport visa-free access score and global rankARead-onlyIdempotentInspect
Passport Power: for a given country's passport, returns the visa-free-access score (visa-free + visa-on-arrival + eTA destinations), global rank and percentile among all ~199 passports, and the full destination breakdown by access type with names resolved. Omit country for the ranked league table. Reference data from the open ilyankou/passport-index-dataset (public domain) — confirm entry rules with the destination authority before travel.
| Name | Required | Description | Default |
|---|---|---|---|
| country | No | Passport country alpha-2 code (e.g. US, GB, SG). Omit for the full league table. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| passport | No | |
| resolved | No | |
| percentile | No | |
| totalPassports | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint/idempotentHint annotations, the description discloses meaningful behavioral context: the data source (open ilyankou/passport-index-dataset, public domain), the approximate scope (~199 passports), and the access-type composition (visa-free + visa-on-arrival + eTA). The practical caveat to 'confirm entry rules with the destination authority before travel' adds responsible usage context. No contradiction with the annotations.
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?
Three sentences with zero waste: the first front-loads the core function and its outputs, the second gives the optional-parameter mode, and the third covers provenance and a safety caveat. Every sentence earns its place.
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?
For a single-optional-parameter, read-only tool with an output schema and safety annotations, the description covers purpose, output contents, dual-mode usage, data provenance, and a travel-safety precaution. Nothing an agent needs to invoke it correctly is missing.
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?
Schema description coverage is 100% — the 'country' parameter is already documented with alpha-2 format examples and the omit-for-league-table behavior. The description restates this same omit behavior rather than adding new parameter semantics, so the baseline of 3 applies.
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?
The description states a specific verb ('returns') and resource (a country's passport visa-free-access data), then enumerates the exact outputs: visa-free-access score, global rank, percentile among ~199 passports, and full destination breakdown by access type. It is clearly distinguishable from all 25 siblings, none of which cover passport or visa topics.
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?
The description gives clear invocation context with two modes: 'for a given country's passport' and 'Omit country for the ranked league table.' It provides a conditional usage rule but does not explicitly name alternatives or state when-not-to-use; however, the tool's domain is so distinct from its siblings that the intended use case is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rank_livabilityRank countries by quality of life vs costARead-onlyIdempotentInspect
Quality-of-Life vs Cost matrix: ranks 41 countries by a user-weighted composite of livability metrics (median broadband Mbps, safety, healthcare, air quality, English usability — curated country-level data replacing the discontinued Teleport API) against the monthly cost of single-person essentials at local purchasing-power prices. Returns per-country composite and value scores, lifestyle label for your budget (comfortable → like royalty), nomad-visa eligibility, and days-to-tax-residency. Curated estimates — verify locally.
| Name | Required | Description | Default |
|---|---|---|---|
| budget | No | Monthly budget (USD) — drives lifestyle labels and visa eligibility. | |
| weights | No | Five comma-separated 0–10 weights: internet,safety,healthcare,air,english (default 5,5,5,5,5). | |
| maxBudget | No | Filter: keep countries whose monthly essentials cost ≤ this (USD). | |
| minSafety | No | Filter: minimum safety score, 0–100. | |
| minInternet | No | Filter: minimum median broadband, Mbps (e.g. 80). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| rows | No | |
| excluded | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the read-only safety profile is covered. The description adds valuable behavioral context beyond annotations: it discloses that data is curated country-level estimates replacing a discontinued API and warns the agent to verify locally.
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?
The description is compact and front-loaded, using two sentences to convey scope, metric composition, output categories, data provenance, and a trust caveat. Every clause adds information; there is no padding or repetition.
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?
For a read-only tool with an output schema and fully documented parameters, the description is complete enough: it explains the ranking methodology, the key metrics, return categories, and the reliability caveat. An agent has sufficient context to invoke it correctly without additional clarification.
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?
Schema description coverage is 100%, so the schema already documents all five parameters. The description adds useful context by noting that budget drives lifestyle labels and visa eligibility and that weights are user-selected, but it does not need to restate parameter syntax or types.
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?
The description clearly states a specific verb and resource: it ranks 41 countries by a weighted composite of livability metrics versus cost. It distinguishes itself from sibling comparison tools by emphasizing ranked, multi-country scoring rather than pairwise or single-aspect comparisons.
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?
The intended use is strongly implied: use this when you want a weighted quality-of-life vs cost ranking across many countries. However, it never explicitly names sibling alternatives like compare_countries or select_region, nor does it state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
required_rateCompute the required freelance hourly rateARead-onlyIdempotentInspect
Given a desired annual net income, compute the freelance hourly and day rate required after taxes, self-paid health insurance, weeks off, and billable utilization. Uses the same per-country effective-rate presets as compare_contract; all overridable. Estimates only — not tax advice.
| Name | Required | Description | Default |
|---|---|---|---|
| hours | No | Hours per week (default 40). | |
| health | No | Annual self-paid health insurance (USD); defaults to the country preset. | |
| country | No | US | |
| taxRate | No | Override effective tax rate, percent (e.g. 32). | |
| expenses | No | Annual business expenses (USD, default 0). | |
| weeksOff | No | Unpaid weeks off per year (default 4). | |
| desiredNet | Yes | Desired annual net take-home (USD). | |
| utilization | No | Billable share of working hours, 0–1 (default 0.75). |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| dayRate | No | |
| hourlyRate | No | |
| billableHours | No | |
| requiredGross | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already mark the tool as read-only and idempotent, and the description adds meaningful behavioral context: it uses per-country effective-rate presets shared with compare_contract, all of which are overridable, and it explicitly labels the result as an estimate, not tax advice. This gives the agent important caveats without contradicting the annotations.
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?
The description is two compact sentences with no filler. The main computation is front-loaded, followed by the preset/override detail and a necessary disclaimer, each earning its place.
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?
For a calculator with an output schema, the description sufficiently covers the input domain, method, and caveats. The only minor gap is that it does not explicitly spell out currency assumptions or the fact that desiredNet is required, though the schema covers those. Overall it is complete enough for correct invocation.
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?
Schema coverage is high at 88%, so the baseline is 3, but the description adds value by explaining that the country parameter uses the same overridable presets as compare_contract, which compensates for the one parameter with no schema description. It also maps the core inputs ('taxes, self-paid health insurance, weeks off, and billable utilization') to the relevant parameters, clarifying how the rate is derived.
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?
The description clearly identifies the tool as a calculator that takes a desired annual net income and produces freelance hourly and day rates, while naming the main input factors (taxes, health insurance, weeks off, utilization). This is a specific verb+resource combination and it reads distinctly from the sibling tools, none of which compute a required rate from net income.
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?
The scenario is clear: use this when you need to compute a required freelance rate from a target net income. It does not explicitly list when-not-to-use or name an alternative, but the context strongly implies the intended use case, and the mention of compare_contract provides a related point of reference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
select_regionSelect the lowest-latency cloud host regionARead-onlyIdempotentInspect
Given a user-population breakdown, find the cloud host region that minimizes population-weighted round-trip latency (argmin_j Σ_i P_i × L_ij), and compute the optimal multi-region split (each user region routed to its nearest host). Latency is estimated from great-circle distance via a fibre-propagation model, not measured.
| Name | Required | Description | Default |
|---|---|---|---|
| hosts | No | Optional comma-separated host region ids to restrict candidates (e.g. 'us-east-1,eu-west-2'). | |
| users | Yes | Comma-separated region:percent pairs (percentages auto-normalize), e.g. 'US-East:40,UK:30,Germany:30'. Region ids: US-East, US-West, Canada, Brazil, UK, Germany, France, Spain, Nigeria, South-Africa, UAE, India, Singapore, China, Japan, Australia. | |
| provider | No | Optional cloud provider filter, applied before the hosts whitelist. |
Output Schema
| Name | Required | Description |
|---|---|---|
| ok | No | |
| best | No | |
| split | No | |
| ranking | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint. The description adds valuable behavioral context beyond those: latency is estimated from great-circle distance via a fibre-propagation model rather than measured, and the optimal multi-region split is computed alongside the single best region. This helps set expectations about result reliability.
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?
The description is compact and front-loaded: it states the core purpose first, then the multi-region split, then the critical modeling caveat. The formula is dense but earns its place by specifying the exact optimization. No redundant sentences.
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?
The description is complete for a read-only selection tool: it explains what it computes, how latency is estimated, and that multi-region routing is also handled. With an output schema present, return values need no elaboration, and annotations cover safety/idempotence.
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?
Schema description coverage is 100%, so the schema already documents all three parameters. The description reinforces that 'users' represents a user-population breakdown and explains the optimization objective, but it does not add significant new parameter-level meaning beyond what the schema provides.
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?
The description states a precise verb-resource pair: 'find the cloud host region that minimizes population-weighted round-t-trip latency' and also 'compute the optimal multi-region split'. It clearly distinguishes the tool from siblings like compare_connectivity by focusing on latency minimization and region selection.
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?
The description gives clear context: this is for selecting cloud host regions based on a user-population breakdown. It does not explicitly name alternatives or exclusion criteria, but the 'Given a user-population breakdown' framing makes the intended use case unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user or an account that owns the GitHub organization, then choose Claim with GitHub.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Cost-of-living & quality-of-life comparison: take-home pay, equivalent salary, safety-net deltas.
Travel-compliance intelligence and curated booking for digital nomads and long-stay travellers.
8 EU accounting (x402 USDC on Base): reconcile, VAT, invoicing. Free health.
N American govt data, cited to source: rates, VAT, tax, wages, holidays, FX. 10 countries; USA free.
Related MCP Servers
- AlicenseAqualityCmaintenanceCost-of-living and quality-of-life comparison across ~165 cities: take-home pay, the equivalent salary you'd need, and the safety-net deltas (childcare, healthcare, vacation, parental leave).6422MIT
- AlicenseNot gradedqualityBmaintenanceEnables geographic parity analysis with 26 read-only tools covering purchasing power, salary localization, cost of living, nomad visas, tax residency, FIRE planning, and relocation costs.MIT

Departi MCP Serverofficial
AlicenseAqualityBmaintenanceTravel compliance and trip planning for digital nomads — visa requirements, tax residency analysis, Schengen 90/180-day tracking, and curated accommodation, transport, and experience search across 189 European destinations.7MIT- AlicenseNot gradedqualityCmaintenanceCost of living, CPI, PPP, and regional price data for 190+ countries. Semantic endpoints with natural language parameters. MCP server for AI agents.MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Several tools occupy adjacent territory: check_travel_residency explicitly supersedes check_residency, check_schengen, and check_tax_residency_risk, and the cost-of-living family (arrival_cost, compare_total_cost, compare_housing, estimate_micro_costs, calculate_ppp, localize_salary) has overlapping price-level concepts. The detailed descriptions mostly clarify boundaries, but an agent selecting by name alone could easily pick the wrong residency or cost tool.
Most tools follow a clean verb_noun snake_case pattern with recognizable prefixes (compare_*, check_*, find_*, calculate_*), which makes the set predictable. Deviations like arrival_cost, passport_power, required_rate, and the acronym-heavy calculate_ppp keep it from being perfectly uniform.
26 tools is a heavy surface, and at least three of the check_* tools are explicitly superseded by check_travel_residency, adding redundant weight. The broad geo-arbitrage/nomad domain justifies much of the breadth, but the set feels closer to a full toolkit than a focused server.
The toolset covers the core remote-work and geo-arbitrage decision space: cost of living, purchasing power, tax residency risk, nomad visas, housing, healthcare, climate, connectivity, holidays, salary localization, FIRE, livability, and even team timezone planning. Gaps are minor—no family-size cost tool, no immigration/citizenship pathway data, and no dedicated safety/crime dataset beyond the livability composite—but agents can work around them.