Skip to main content
Glama

Plan Path — Freedom Compass

plan_path
Read-only

The Mirabello Freedom Compass — ORIGIN-AWARE migration path planner. Given the client's STARTING POINT — current citizenship(s) + tax residence — plus their goal, returns ranked end-to-end options. The origin is the constraint: it sets the MOBILITY DELTA (what a passport actually ADDS over the one they hold — a Caribbean passport adds little to a US/EU citizen, lots to others), eligibility/restrictions, and tax-exit/reporting considerations (e.g. US citizenship-based tax & §877A, German AStG §6 — generic, sourced, CHECK-OFFICIAL-SOURCE). Each path carries fit_score + rationale, mobility_delta, eligibility, min_investment, processing_time. Informational only, not advice. Use for "I am a [nationality], I want [goal] — what should I do?". Pass from_citizenship (ISO alpha-2 array) + goal.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
goalNoWhat the applicant is optimising for, in plain words: visa-free travel, tax residence, family relocation.
familyNoFamily composition object, e.g. { "adults": 2, "children_under16": 1, "children_16plus": 0 }.
budget_usdNoTotal budget the applicant has available for the investment itself, in USD (fees are additional).
timeline_monthsNoTarget time to the outcome, in MONTHS.
from_citizenshipYescurrent citizenship(s), ISO alpha-2 e.g. ["US"]
from_tax_residenceNoISO alpha-2 tax residence (defaults to first citizenship)
physical_presence_toleranceNoHow much time the applicant can spend in-country: "none", "minimal", "flexible", "relocating".

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNoPresent only when the request could not be fulfilled.
termsNoAcceptable-use and information-not-advice terms.
sourceNoAttribution for the data.
providerNoAlways "Mirabello Consultancy".
disclaimerNoInformation, not legal/tax/financial/immigration advice; figures indicative.
data_updatedNoDate the underlying dataset was last updated.
book_a_consultationNoURL to book a Mirabello consultation.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed9 schema fields changed
    • addedInput schema / properties / budget_usd / description
      Added value: +"Total budget the applicant has available for the investment itself, in USD (fees are additional)."
    • addedInput schema / properties / budget_usd / examples
      Added value: +[
      +  300000
      +]
    • addedInput schema / properties / family / description
      Added value: +"Family composition object, e.g. { \"adults\": 2, \"children_under16\": 1, \"children_16plus\": 0 }."
    • addedInput schema / properties / goal / description
      Added value: +"What the applicant is optimising for, in plain words: visa-free travel, tax residence, family relocation."
    • addedInput schema / properties / goal / examples
      Added value: +[
      +  "visa-free travel"
      +]
    • addedInput schema / properties / physical_presence_tolerance / description
      Added value: +"How much time the applicant can spend in-country: \"none\", \"minimal\", \"flexible\", \"relocating\"."
    • addedInput schema / properties / physical_presence_tolerance / examples
      Added value: +[
      +  "minimal"
      +]
    • addedInput schema / properties / timeline_months / description
      Added value: +"Target time to the outcome, in MONTHS."
    • addedInput schema / properties / timeline_months / examples
      Added value: +[
      +  9
      +]
  2. 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"
      +}
  3. Added

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds valuable behavioral context: it is origin-aware, returns ranked end-to-end options, includes a mobility delta concept, and explicitly warns to check official sources for tax-exit rules. It also discloses that it is informational only, not advice. It does not detail pagination or exact response structure, but the output schema exists and the description covers the key behavioral traits.

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

Conciseness4/5

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

The description is dense but well-structured: it front-loads the tool's identity and core constraint, then lists outputs, then gives usage guidance. It is longer than ideal, but every sentence adds information (origin-aware, mobility delta, tax-exit examples, output fields, informational disclaimer). The use of caps for key concepts is slightly noisy but aids scanning.

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?

Given the tool's complexity (7 params, nested objects, enums, output schema), the description covers the essential context: what the tool does, what the origin constraint means, what outputs to expect, and how to invoke it. It does not explain the meaning of each output field (fit_score, mobility_delta) in detail, but the output schema likely covers that. The description is complete enough for an agent to select and call the tool correctly.

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

Parameters4/5

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

Schema description coverage is 100%, so the schema already documents all 7 parameters. The description adds meaning by explaining the core constraint (from_citizenship as the origin that sets the mobility delta) and by giving a concrete usage pattern ('Pass from_citizenship (ISO alpha-2 array) + goal'). It also clarifies that from_tax_residence defaults to first citizenship, which is not in the schema. This goes beyond the schema's baseline.

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

Purpose5/5

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

The description states a specific verb ('planner'), resource ('migration path'), and the origin-aware constraint that distinguishes it from generic pathway tools. It explicitly names the input (from_citizenship + goal) and output (ranked options with fit_score, mobility_delta, etc.), making it easy for an agent to know what this tool does and how it differs from siblings like find_pathways or recommend_programmes.

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

Usage Guidelines5/5

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

The description gives an explicit use case ('I am a [nationality], I want [goal] — what should I do?') and tells the agent what to pass. It also states what the tool is not ('Informational only, not advice') and implies it is the right choice when the origin is the key constraint, which differentiates it from sibling tools like check_eligibility or find_pathways.

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.