Skip to main content
Glama

Mirabello Immigration Intelligence

Find Low-Tax Jurisdictions

find_low_tax
Read-onlyIdempotent

Find countries by wealth-protection tax criteria — no personal income tax, no inheritance tax, no wealth tax, no capital gains tax, territorial taxation, not on the EU tax black/grey list, or crypto-friendly (favourable crypto-asset tax regime). Returns matching countries with their HNWI tax + CRS + EU-list (+ crypto) snapshot. Combine with a residence or citizenship route for a full tax-plus-pathway view.

Tool call template

This tool declares no required parameters. Add optional parameters from the input schema as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {},
    "name": "find_low_tax"
  }
}

Input Schema

NameRequiredDescriptionDefault
territorialNoTrue to require a territorial tax system (foreign income untaxed).
no_income_taxNoTrue to require no personal income tax.
no_wealth_taxNoTrue to require no net-wealth tax.
not_eu_listedNoTrue to exclude jurisdictions on the EU list of non-cooperative tax jurisdictions.
crypto_friendlyNoTrue to require a favourable published treatment of digital assets.
no_inheritance_taxNoTrue to require no inheritance or estate tax.
no_capital_gains_taxNoTrue to require no capital-gains tax.

Output Schema

NameRequiredDescriptionDefault
errorNo
termsNo
sourceNo
book_urlNo
providerNo
disclaimerNo
data_updatedNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • removedInput schema / properties / non_crs
      Removed value: -{
      -  "description": "True to restrict to jurisdictions outside the CRS automatic-exchange network. Note: Mirabello advises full tax compliance; this is a factual filter, not a concealment tool.",
      -  "type": "boolean"
      -}
  2. Changed8 schema fields changed
    • changedOutput schema / description
      Previous value: -"Mirabello response envelope. Tool-specific fields vary; the provenance/disclaimer envelope is always present."New value: +"Mirabello envelope; tool fields vary; error only on failure."
    • removedOutput schema / properties / book_url / description
      Removed value: -"Link to request a consultation with a Mirabello specialist, for a personal case."
    • removedOutput schema / properties / data_updated / description
      Removed value: -"Date the underlying dataset was last updated."
    • removedOutput schema / properties / disclaimer / description
      Removed value: -"Information, not legal/tax/financial/immigration advice; figures indicative."
    • removedOutput schema / properties / error / description
      Removed value: -"Present only when the request could not be fulfilled."
    • removedOutput schema / properties / provider / description
      Removed value: -"Always \"Mirabello Consultancy\"."
    • removedOutput schema / properties / source / description
      Removed value: -"Attribution for the data, when it is not Mirabello Consultancy itself."
    • removedOutput schema / properties / terms / description
      Removed value: -"Acceptable-use and information-not-advice terms."
  3. Changed3 schema fields changed
    • removedOutput schema / properties / book_a_consultation
      Removed value: -{
      -  "description": "URL to book a Mirabello consultation.",
      -  "type": "string"
      -}
    • addedOutput schema / properties / book_url
      Added value: +{
      +  "description": "Link to request a consultation with a Mirabello specialist, for a personal case.",
      +  "type": "string"
      +}
    • changedOutput schema / properties / source / description
      Previous value: -"Attribution for the data."New value: +"Attribution for the data, when it is not Mirabello Consultancy itself."
  4. Changed8 schema fields changed
    • addedInput schema / properties / crypto_friendly / description
      Added value: +"True to require a favourable published treatment of digital assets."
    • addedInput schema / properties / no_capital_gains_tax / description
      Added value: +"True to require no capital-gains tax."
    • addedInput schema / properties / no_income_tax / description
      Added value: +"True to require no personal income tax."
    • addedInput schema / properties / no_inheritance_tax / description
      Added value: +"True to require no inheritance or estate tax."
    • addedInput schema / properties / no_wealth_tax / description
      Added value: +"True to require no net-wealth tax."
    • addedInput schema / properties / non_crs / description
      Added value: +"True to restrict to jurisdictions outside the CRS automatic-exchange network. Note: Mirabello advises full tax compliance; this is a factual filter, not a concealment tool."
    • addedInput schema / properties / not_eu_listed / description
      Added value: +"True to exclude jurisdictions on the EU list of non-cooperative tax jurisdictions."
    • addedInput schema / properties / territorial / description
      Added value: +"True to require a territorial tax system (foreign income untaxed)."
  5. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "description": "Mirabello response envelope. Tool-specific fields vary; the provenance/disclaimer envelope is always present.",
      +  "properties": {
      +    "book_a_consultation": {
      +      "description": "URL to book a Mirabello consultation.",
      +      "type": "string"
      +    },
      +    "data_updated": {
      +      "description": "Date the underlying dataset was last updated.",
      +      "type": "string"
      +    },
      +    "disclaimer": {
      +      "description": "Information, not legal/tax/financial/immigration advice; figures indicative.",
      +      "type": "string"
      +    },
      +    "error": {
      +      "description": "Present only when the request could not be fulfilled.",
      +      "type": "string"
      +    },
      +    "provider": {
      +      "description": "Always \"Mirabello Consultancy\".",
      +      "type": "string"
      +    },
      +    "source": {
      +      "description": "Attribution for the data.",
      +      "type": "string"
      +    },
      +    "terms": {
      +      "description": "Acceptable-use and information-not-advice terms.",
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  6. Changed1 schema field changed
    • addedInput schema / properties / crypto_friendly
      Added value: +{
      +  "type": "boolean"
      +}
  7. Added

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description adds value by disclosing what comes back – an HNWI tax + CRS + EU-list (+ crypto) snapshot per matching country – and by clarifying that the EU-list flag means 'non-cooperative black/grey list'; it says nothing about empty-result behavior or result limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with purpose and criteria, then a short output sentence and a combination hint – no filler. The criterion list is dense but each clause maps to a real parameter, so nearly every word earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a seven-parameter boolean filter with full schema coverage, an output schema, and safety annotations, the description covers purpose, return shape, and next-step usage. The only meaningful gap is filter-combination semantics, which the description leaves implicit.

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

Parameters3/5

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

Schema coverage is 100% and each of the seven boolean flags is already documented in the schema, so the description's criterion list largely restates it. It adds no detail on the AND/OR combination semantics of the filters or how conflicting flags are resolved, which is the main ambiguity an agent faces here.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Find countries by wealth-protection tax criteria') and enumerates the exact criteria set (no income/inheritance/wealth/capital-gains tax, territorial, EU-list, crypto). This clearly separates it from single-country lookups like get_country_tax or sibling route finders.

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

Usage Guidelines4/5

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

Gives explicit usage context: filter by any of the listed tax criteria, then 'combine with a residence or citizenship route for a full tax-plus-pathway view'. It does not state when *not* to use it or name the specific sibling to pair with (find_pathways / find_fastest_citizenship), so it stops short of full routing guidance.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.