Skip to main content
Glama
viajante

viajante

Explore destinations

search_explore
Read-onlyIdempotent

Explore destinations reachable from one origin and get a priced shortlist of the cheapest fares. Use a start date or month to compare where you can fly and at what cost.

Instructions

Destinations from one origin, then a priced shortlist. Give start (ISO date) or month, not both. Needs the browser extra; one adult in economy only. Currency and country as in search_flights. Viajante does not convert. A metro origin (MIL, NYC, and the rest of the owned table) runs one explore per member airport, sequentially, and merges destinations: the cheapest fare is kept and origin_airport names which airport it came from. A rate limit stops the remaining airports. top above 30 is clamped to 30 and named in warnings. A destination without a price is not_loaded, not a usable row. A month window still shops one date; an empty shop that day is not_loaded for that shopped_date, not no_results and not provider_empty for the month.

    deadline_seconds stops starting queries after that many seconds; unfinished
    queries are error code deadline (not loaded, not empty). See get_guide.
    

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "origin": "<origin>"
    },
    "name": "search_explore"
  }
}

Input Schema

NameRequiredDescriptionDefault
topNo
viaNo
bagsNo
daysNo
sortNoprice
cabinNoeconomy
monthNo
proxyNo
startNo
adultsNo
nearbyNo
originYes
countryNo
airlinesNo
allianceNo
carry_onNo
childrenNo
currencyNo
max_stopsNo
price_capNo
exclude_viaNo
max_layoverNo
min_layoverNo
depart_afterNo
max_durationNo
no_overnightNo
arrive_beforeNo
depart_windowNo
baggage_bufferNo
infants_on_lapNo
exclude_regionsNo
infants_in_seatNo
deadline_secondsNo
exclude_airlinesNo
exclude_airportsNo
exclude_allianceNo
include_airportsNo
require_overnightNo

Output Schema

NameRequiredDescriptionDefault
statusYes
empty_noteYes
error_codeYes
observed_atYes
retry_afterYes
completenessYes
empty_reasonYes
observed_at_basisYes
retry_after_secondsYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed40 schema fields changedv1.5.2
    • removedInput schema / properties / adults / title
      Removed value: -"Adults"
    • removedInput schema / properties / airlines / title
      Removed value: -"Airlines"
    • removedInput schema / properties / alliance / title
      Removed value: -"Alliance"
    • removedInput schema / properties / arrive_before / title
      Removed value: -"Arrive Before"
    • removedInput schema / properties / baggage_buffer / title
      Removed value: -"Baggage Buffer"
    • removedInput schema / properties / bags / title
      Removed value: -"Bags"
    • removedInput schema / properties / cabin / title
      Removed value: -"Cabin"
    • removedInput schema / properties / carry_on / title
      Removed value: -"Carry On"
    • removedInput schema / properties / children / title
      Removed value: -"Children"
    • removedInput schema / properties / country / title
      Removed value: -"Country"
    • removedInput schema / properties / currency / title
      Removed value: -"Currency"
    • removedInput schema / properties / days / title
      Removed value: -"Days"
    • addedInput schema / properties / deadline_seconds
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "integer"
      +    },
      +    {
      +      "type": "number"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "default": null
      +}
    • removedInput schema / properties / depart_after / title
      Removed value: -"Depart After"
    • removedInput schema / properties / depart_window / title
      Removed value: -"Depart Window"
    • removedInput schema / properties / exclude_airlines / title
      Removed value: -"Exclude Airlines"
    • removedInput schema / properties / exclude_airports / title
      Removed value: -"Exclude Airports"
    • removedInput schema / properties / exclude_alliance / title
      Removed value: -"Exclude Alliance"
    • removedInput schema / properties / exclude_regions / title
      Removed value: -"Exclude Regions"
    • removedInput schema / properties / exclude_via / title
      Removed value: -"Exclude Via"
    • removedInput schema / properties / include_airports / title
      Removed value: -"Include Airports"
    • removedInput schema / properties / infants_in_seat / title
      Removed value: -"Infants In Seat"
    • removedInput schema / properties / infants_on_lap / title
      Removed value: -"Infants On Lap"
    • removedInput schema / properties / max_duration / title
      Removed value: -"Max Duration"
    • removedInput schema / properties / max_layover / title
      Removed value: -"Max Layover"
    • removedInput schema / properties / max_stops / title
      Removed value: -"Max Stops"
    • removedInput schema / properties / min_layover / title
      Removed value: -"Min Layover"
    • removedInput schema / properties / month / title
      Removed value: -"Month"
    • removedInput schema / properties / nearby / title
      Removed value: -"Nearby"
    • removedInput schema / properties / no_overnight / title
      Removed value: -"No Overnight"
    • removedInput schema / properties / origin / title
      Removed value: -"Origin"
    • removedInput schema / properties / price_cap / title
      Removed value: -"Price Cap"
    • removedInput schema / properties / proxy / title
      Removed value: -"Proxy"
    • removedInput schema / properties / require_overnight / title
      Removed value: -"Require Overnight"
    • removedInput schema / properties / sort / title
      Removed value: -"Sort"
    • removedInput schema / properties / start / title
      Removed value: -"Start"
    • removedInput schema / properties / top / title
      Removed value: -"Top"
    • removedInput schema / properties / via / title
      Removed value: -"Via"
    • removedInput schema / title
      Removed value: -"search_exploreArguments"
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": true,
      +  "properties": {
      +    "completeness": {
      +      "enum": [
      +        "complete",
      +        "partial",
      +        "blocked"
      +      ],
      +      "type": "string"
      +    },
      +    "empty_note": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "empty_reason": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "provider_empty",
      +            "filtered_out",
      +            "not_loaded"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "error_code": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "observed_at": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "observed_at_basis": {
      +      "anyOf": [
      +        {
      +          "enum": [
      +            "provider",
      +            "fetch"
      +          ],
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "retry_after": {
      +      "anyOf": [
      +        {
      +          "type": "string"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "retry_after_seconds": {
      +      "anyOf": [
      +        {
      +          "type": "integer"
      +        },
      +        {
      +          "type": "null"
      +        }
      +      ]
      +    },
      +    "status": {
      +      "enum": [
      +        "ok",
      +        "no_results",
      +        "rate_limited",
      +        "blocked",
      +        "timeout",
      +        "failed"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "status",
      +    "completeness",
      +    "empty_reason",
      +    "empty_note",
      +    "error_code",
      +    "retry_after",
      +    "retry_after_seconds",
      +    "observed_at",
      +    "observed_at_basis"
      +  ],
      +  "type": "object"
      +}
  2. First observedv1.0.0

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already declare readOnly/openWorld/idempotent/non-destructive, yet the description goes well past them: sequential per-airport execution for metro origins with merged cheapest fares, rate-limit truncation of remaining airports, top clamped to 30 with a warnings entry, and deadline_seconds producing error code deadline rather than an empty result. It loses a point for unexplained internal jargon (Viajante, not_loaded, provider_empty) that an outside agent cannot map to observable output.

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

Conciseness3/5

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

There is no filler and the first sentence is front-loaded, but the middle collapses into a dense run of semicolon-chained fragments ('A metro origin (MIL, NYC, and the rest of the owned table) runs one explore per member airport...') that is hard to parse on a first read. The trailing deadline_seconds paragraph is oddly indented and disconnected from the flow.

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

Completeness2/5

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

An output schema exists, so return values need not be described, and the not_loaded/empty distinction is a genuine contribution. But for a tool with 38 parameters and zero schema descriptions, the description documents a small fraction of the input surface, so an agent cannot confidently set most filters.

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

Parameters2/5

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

Schema description coverage is 0% across 38 parameters, so the description carries the full explanatory burden and largely does not. It clarifies only start/month mutual exclusivity, the top>30 clamp, and that origin_airport is populated on merged metro results; sort, cabin, max_stops, price_cap, layover bounds, exclude_* filters, passenger counts, and the rest get no meaning at all.

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

Purpose4/5

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

The opening sentence names both the resource (destinations from one origin) and the two-stage shape (then a priced shortlist), which is more specific than the title alone. It never explicitly contrasts itself with search_flights or search_flex, though it borrows terminology (currency/country) from search_flights, so sibling differentiation stays implicit.

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

Usage Guidelines3/5

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

There is real usage guidance: 'Give start (ISO date) or month, not both', 'Needs the browser extra', 'one adult in economy only'. Those are hard constraints an agent must know before calling. But there is no statement of when to choose this over search_flights or search_flex, and no exclusions pointing at alternatives.

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