Skip to main content
Glama

Server Details

Multilingual travel guides, gear picks and booking links for AI travel agents.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 64 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL
Repository
voyagehacks-com/mcp-server
GitHub Stars
0
Server Listing
VoyageHacks MCP Server

TDQS

A4.3/5.0

Scored across 13 tools

Disambiguation4/5

Each link tool targets a distinct booking category (flights, hotels, cars, transfers, eSIM, VPN, cards) and the descriptions clearly delimit each. The main overlap is get_booking_links, which bundles the same categories in one call, and the gear pair (search_travel_gear vs recommend_travel_gear) which are close but separable by 'browse a category' versus 'build a kit from a trip description'. An agent can resolve these from the descriptions, but a moment of hesitation remains.

Naming Consistency4/5

Almost everything follows verb_noun in snake_case: get_*_links, search_articles, search_travel_gear, recommend_travel_gear, find_destination. The get_X_links family is highly predictable, with only minor verb variation (find/recommend/search) that reflects genuinely different actions rather than inconsistency.

Tool Count5/5

13 tools is squarely in the well-scoped range, and each one maps to a real, non-redundant part of the site's affiliate surface (one per booking vertical plus content search/read and gear). No filler tools and no thin coverage.

Completeness4/5

The surface covers the core lifecycle: discover a destination, research via search_articles/get_article, then get links for flights, hotels, cars, transfers, eSIM, VPN and cards, plus gear discovery and packing. Gaps are minor but real: no train/rail links despite the guides covering trains, no standalone tours/attractions tool (only inside get_booking_links), no travel insurance, and no way to browse guides by section other than full-text search.

Available Tools

13 tools
find_destinationSuggest where to travel for a month and trip typeA
Read-onlyIdempotent
Inspect

Suggest three destinations for a trip from five answers: the month (or "flexible"), the kind of trip (beach, city break, hiking, ski, road trip, adventure or working remotely), the budget, who is travelling and, optionally, the departure airport. Picks come only from VoyageHacks' own where-to-go month guides and travel-style lists, with the average high temperature each month guide states, the reasons it fits, the destination guide to cite, and booking links for that trip: hotels and flights dated in the chosen month, plus tours, car rental or an eSIM where they fit. This is the same matching as the trip finder on voyagehacks.com. Useful when a user asks where to go, for holiday ideas for a month, or for a destination that suits a family, a couple or a budget. Each answer also carries three packing picks for that kind of trip, linked to the VoyageHacks buying guides. When the month or the trip type is missing it returns no picks, only the questions that are still open with their allowed answers (needsInput). It does not return live prices or availability and cannot book. Affiliate links: VoyageHacks may earn a commission at no additional cost to the traveler, which should be disclosed when the links are presented.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoLanguage of the VoyageHacks guides returned. One of: en, de, fr, es, it, pl, cs, ja, nl, pt, zh. Defaults to "en".
monthNoTravel month in English, lowercase, or "flexible" for the next two months.
budgetNoDaily budget: budget (hostels, street food), mid (3-star) or luxury. Defaults to mid.
originNoDeparture IATA city or airport code for the flight links, e.g. LON. Optional.
countryNoISO 3166-1 alpha-2 country the traveler is booking from, e.g. US, DE, GB. Selects the regional Booking.com programme. Defaults to the caller's geolocation, then to the language default.
travelersNoWho is travelling. Defaults to couple.
trip_typeNoKind of trip. "campervan" means a road trip; "digital-nomad" means working remotely.

Output Schema

ParametersJSON Schema
NameRequiredDescription
picksYes
answersNoThe answers used: month, trip_type, budget, travelers, origin.
packingNoThree packing picks for this kind of trip, each linked to its VoyageHacks buying guide.
disclosureYes
needsInputNoPresent when month or trip_type was missing: the questions to ask, each with its allowed answers. No picks are returned until they are answered.
tripFinderNoThe same answers on the VoyageHacks trip finder page.

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover the safe-read profile (readOnly, idempotent, non-destructive, openWorld), but the description adds real behavioral detail beyond them: the needsInput fallback when month or trip type is missing, the exact output contents, and the affiliate-commission disclosure obligation. It stops short of describing pagination or link-failure behavior.

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?

It is front-loaded and the important constraints (needsInput, no live prices, affiliate disclosure) earn their place, but at roughly 190 words it is wordier than needed: the packing-picks sentence and the enumeration of every link type could be tightened without losing signal.

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

Completeness5/5

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

An output schema exists so return values need no restating, and the description still covers source scope, the needsInput fallback, what each answer carries (temperature, reasons, guide, links, packing picks), and the affiliate disclosure. 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.

Parameters4/5

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 earns the extra point by naming the five semantic inputs and by clarifying that month and trip_type are effectively required (absent them it returns needsInput) even though the schema marks zero required parameters. Budget, traveler and origin meanings are already fully in the schema.

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+resource: it suggests three destinations from five trip answers, sourced only from VoyageHacks' own month guides and travel-style lists. It is immediately distinguishable from siblings like get_booking_links or search_articles, which it explicitly does not duplicate (it returns links but does not book or show live prices).

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?

"Useful when a user asks where to go, for holiday ideas for a month, or for a destination that suits a family, a couple or a budget" gives clear triggering contexts, and the note that it does not return live prices or book implies routing to the booking-link siblings. However no sibling alternative is named explicitly, so the routing is left partly to inference.

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

get_articleRead a VoyageHacks guide as MarkdownA
Read-onlyIdempotent
Inspect

Fetch one VoyageHacks page by URL or site path (for example "/en/hotels/best-budget-hotels-in-rome/") and return its body as Markdown, together with the title, canonical URL, language, section, publication date and last-updated date read from the page itself. Useful when the full text of a guide is needed to quote figures accurately, and when a source needs to be cited with a real date. Only HTML pages on voyagehacks.com can be read: the tool cannot fetch other websites, data files or images, and very long pages are truncated with a marker at the cut.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesPage URL or site path on voyagehacks.com, e.g. https://voyagehacks.com/de/esim/esim-japan/ or /de/esim/esim-japan/.

Output Schema

ParametersJSON Schema
NameRequiredDescription
urlYesCanonical URL.
langNo
titleNo
sourceYesAttribution string for citations.
excerptNoThe page's meta description.
sectionNo
updatedNoISO date, or null if the page declares none.
markdownYes
publishedNoISO date, or null if the page declares none.
truncatedNo

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/openWorld/non-destructive, and the description adds substantial behavioral context on top: the tool is restricted to HTML pages on voyagehacks.com, cannot fetch other sites, data files or images, and truncates very long pages with a marker at the cut. The truncation disclosure is exactly the kind of caveat an agent needs before trusting a complete-text read.

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-loads the action and return shape in the first sentence, then adds usage rationale and limits. Three sentences with little waste, though enumerating return fields is partly redundant given an output schema exists.

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

Completeness5/5

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

For a one-parameter read tool with annotations and an output schema, the description covers everything needed: what it returns, what it cannot reach, and how oversized pages behave. Nothing an agent must know before invoking it is missing.

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?

There is a single parameter with 100% schema description coverage, including an example of both accepted forms (full URL and site path). The description restates the URL-or-path duality but adds no syntax, encoding or constraint detail beyond the schema, so the baseline of 3 applies.

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 (Fetch) and resource (one VoyageHacks page by URL or site path) and enumerates the returned fields (body as Markdown, title, canonical URL, language, section, dates). This is clearly distinguishable from sibling search_articles, which would find pages rather than read one.

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 concrete usage contexts: when full text is needed to quote figures accurately, and when a source must be cited with a real date. It does not explicitly name search_articles as the alternative for discovery, so routing guidance is implied rather than stated.

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

recommend_travel_gearBuild a travel gear kit for a tripA
Read-onlyIdempotent
Inspect

Turn a trip description into a packing and gear kit drawn from the VoyageHacks travel gear catalog: one product per category, each with the published reason it was picked, its Amazon ASIN and a link to the product on the VoyageHacks guide that reviews it, where it can be bought on Amazon. Takes a plain-language trip summary ("10 days in Japan in October, carry-on only, long-haul red-eye, working remotely") plus optional structured hints (destination, trip length in days, season, activities, luggage constraint, traveler type, budget), all of which are used to weight which categories make the kit. Answers questions of the form "what should I pack for X", "what gear do I need for Y" and "I only have carry-on, what should I bring". It draws on the VoyageHacks editorial catalog, not a search of all of Amazon, and returns published picks only: prices, star ratings, review counts and stock are not available and are never returned, and it produces no clothing sizes and no itinerary. The guides carry Amazon affiliate links: VoyageHacks may earn a commission from qualifying purchases at no additional cost to the buyer, which should be disclosed when the products are presented.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoLanguage of the VoyageHacks guides returned. One of: en, de, fr, es, it, pl, cs, ja, nl, pt, zh. Defaults to "en".
tripYesFree-text trip description: destination, length, style, flight type, season, gadgets needed.
limitNoMaximum items in the kit. Defaults to 6.
budgetNoOptional budget level. Recorded in the response; the catalog carries no prices, so it does not filter products.
seasonNoOptional season or climate at the destination.
luggageNoOptional luggage constraint. carry_on_only and personal_item_only weight the packing and compression categories.
activitiesNoOptional activities, e.g. ["hiking", "photography", "remote work", "camping", "beach"].
destinationNoOptional country, region or city, e.g. Japan, Iceland, Thailand.
traveler_typeNoOptional traveler type.
trip_length_daysNoOptional trip length in days.

Output Schema

ParametersJSON Schema
NameRequiredDescription
hubNo
kitYes
langYes
tripYes
criteriaNoStructured hints that were applied.
disclosureYes

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already cover readOnly/idempotent/non-destructive/openWorld, and the description adds substantial context on top: no prices, ratings, review counts or stock are ever returned; no clothing sizes or itinerary are produced; budget does not filter products; and Amazon affiliate links require disclosure. These are exactly the behavioral traits an agent needs beyond the structured hints.

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?

Purpose is front-loaded and every sentence carries information (scope, output shape, non-returned fields, affiliate disclosure). The opening sentence is a long multi-clause run-on and some phrasing ('its Amazon ASIN and a link to the product... where it can be bought on Amazon') is mildly redundant, but there is no filler.

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

Completeness5/5

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

For a 10-parameter, output-schema-backed tool, the description covers everything an agent must know to call and present results correctly: the free-text plus structured-hint input model, the curated-catalog limitation, the fields that are never returned, and the affiliate disclosure obligation. Return-value explanation is unnecessary given the output schema.

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 description coverage is 100%, so the baseline is 3. The description adds the weighting semantics ('used to weight which categories make the kit') and echoes the budget-does-not-filter caveat, but it never mentions the lang or limit parameters, so it does not materially enrich the schema on its own.

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 precise verb+resource: turning a trip description into a packing/gear kit drawn from a named, curated catalog, and specifies the output shape (one product per category with reason, ASIN, and guide link). This clearly separates it from the sibling search_travel_gear, since it explicitly says it draws on the editorial catalog 'not a search of all of Amazon.'

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?

It gives concrete triggering queries ('what should I pack for X', 'what gear do I need for Y', 'I only have carry-on, what should I bring') and states the editorial-catalog scope, which implicitly routes agents away from Amazon-wide search. It stops short of explicitly naming a sibling tool or stating when NOT to use it, so it is clear context without full exclusions.

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

search_articlesSearch VoyageHacks travel guidesA
Read-onlyIdempotent
Inspect

Full-text search across the VoyageHacks travel guides, about 680 published pages per language, covering flights, airline reviews, hotels, destinations, car rental, trains, airport transfers, eSIM, travel VPN, travel credit cards, travel gear and month-by-month "where to go" guides. Returns ranked matches with the title, canonical URL, section and a matching excerpt for each. Useful when a travel question needs published prices, comparisons, best-time-to-visit advice or step-by-step detail that can be attributed to a source URL. It searches VoyageHacks content only: not the wider web, not live fares or hotel availability, and it returns no booking or product links (the get_..._links tools do that).

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoLanguage of the VoyageHacks guides returned. One of: en, de, fr, es, it, pl, cs, ja, nl, pt, zh. Defaults to "en".
limitNoMaximum results to return. Defaults to 5.
queryYesSearch terms, e.g. "cheap hotels rome" or "esim japan". Matched against titles, keywords, tags and article text.
sectionNoRestrict results to one site section. Omit to search every section.

Output Schema

ParametersJSON Schema
NameRequiredDescription
langYes
queryYes
resultsYes
sectionNo
resultCountNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, open-world behavior, so the safety profile is covered. The description adds real context beyond that: the corpus size, that it indexes VoyageHacks content only, that it returns no live fares or availability, and that booking links live in sibling tools. It omits pagination/empty-result behavior, but the added scope disclosures are meaningful.

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 the search scope and return shape, and every sentence is purposeful (coverage, return format, ideal use case, exclusions). The long enumeration of sections duplicates the section enum in the schema and is slightly wasteful, but the overall structure is efficient and readable.

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

Completeness5/5

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

With an output schema present, the description need not explain return values, yet it summarizes them briefly anyway. Combined with full parameter documentation and rich annotations, the definition gives an agent everything needed to decide to call this tool and call it correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents query, lang, limit and section, including defaults, enums and max length. The description adds no parameter-level detail (no syntax, operators, or matching-behavior nuance) beyond what the schema provides, so the baseline 3 applies.

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 precise verb (full-text search) and resource (VoyageHacks travel guides) plus corpus scope (~680 published pages per language) and content coverage. It explicitly distinguishes itself from the sibling link tools ("not the wider web, not live fares... the get_..._links tools do that"), so an agent can tell it apart without opening another schema.

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?

Names the conditions that select it ("when a travel question needs published prices, comparisons, best-time-to-visit advice or step-by-step detail that can be attributed to a source URL") and the conditions that should route elsewhere (live fares, hotel availability, booking/product links via the get_..._links tools). This is explicit when-to-use and when-not-to-use guidance.

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

search_travel_gearSearch the VoyageHacks travel gear catalogA
Read-onlyIdempotent
Inspect

Search the VoyageHacks travel gear catalog: about 320 products that appear as picks in roughly 50 published buying guides, including carry-on backpacks, packing cubes and compression bags, universal travel adapters, GaN chargers, airline-compliant power banks, luggage trackers, neck pillows, earplugs and eye masks, toiletry and makeup bags, travel-size bottles, travel routers, translation earbuds and camping and outdoor gear. Each result returns the product name, its category, the published reason it was picked, its Amazon ASIN and a link to the product on the VoyageHacks buying guide that reviews it, where it can be bought on Amazon. Useful when a user asks which travel product to buy, or what to pack for a trip and names a category or a destination. This is the VoyageHacks editorial catalog, not a search of all of Amazon: products outside the published guides are not findable here, and prices, star ratings, review counts and stock are not available and are never returned. The guides carry Amazon affiliate links: VoyageHacks may earn a commission from qualifying purchases at no additional cost to the buyer, which should be disclosed when the products are presented.

ParametersJSON Schema
NameRequiredDescriptionDefault
langNoLanguage of the VoyageHacks guides returned. One of: en, de, fr, es, it, pl, cs, ja, nl, pt, zh. Defaults to "en".
limitNoMaximum products to return. Defaults to 6.
queryYesWhat the traveler needs, e.g. "power bank for a long flight", "packing cubes", "adapter for Japan".

Output Schema

ParametersJSON Schema
NameRequiredDescription
hubNo
langYes
queryYes
productsYes
disclosureYes
productCountNo

TDQS

A4.1/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint), yet the description adds substantial context beyond them: exactly what each result contains (name, category, published pick reason, ASIN, guide link), what is never returned (prices, star ratings, review counts, stock), and a mandatory affiliate-disclosure obligation when presenting results.

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 the catalog scope, then results, then caveats, then the affiliate note — a sensible ordering with no filler sentences. The long enumeration of product categories (carry-on backpacks through camping gear) is somewhat bloated and could be trimmed, but it does communicate query coverage.

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

Completeness5/5

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

For a three-parameter, read-only search with full schema coverage, open-world annotations and an output schema, the description covers everything an agent needs: catalog scope, when to invoke, what is returned, what is unavailable, and the disclosure requirement. Return fields are restated despite the output schema, which is mild redundancy rather than a gap.

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 description coverage is 100%, so the schema already documents query, limit (1-12, default 6) and lang (enum with default). The description adds no parameter-level guidance of its own — its example queries and result-field list duplicate what the schema conveys. Baseline 3 applies when the schema does the heavy lifting.

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?

States a specific verb and resource ('Search the VoyageHacks travel gear catalog') and pins the scope precisely: ~320 products from ~50 published guides, with product categories enumerated. It explicitly distinguishes itself from an all-of-Amazon search, but never mentions the sibling tool recommend_travel_gear, which is the most plausible confusion point for an agent choosing between the two.

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 a clear trigger: 'Useful when a user asks which travel product to buy, or what to pack for a trip and names a category or a destination.' It also states an exclusion in the form of scope limits (products outside the published guides are not findable, no prices/ratings/stock). What is missing is an explicit alternative — recommend_travel_gear is not named as the tool to use when a specific query is not appropriate.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 5 tool updates
    • Changedfind_destination7 fields changed
      • removedInput schema / required
        Removed value: -[
        -  "month",
        -  "trip_type"
        -]
      • addedOutput schema / properties / answers
        Added value: +{
        +  "description": "The answers used: month, trip_type, budget, travelers, origin.",
        +  "type": "object"
        +}
      • addedOutput schema / properties / needsInput
        Added value: +{
        +  "description": "Present when month or trip_type was missing: the questions to ask, each with its allowed answers. No picks are returned until they are answered.",
        +  "items": {
        +    "properties": {
        +      "field": {
        +        "type": "string"
        +      },
        +      "options": {
        +        "items": {
        +          "type": "string"
        +        },
        +        "type": "array"
        +      },
        +      "question": {
        +        "type": "string"
        +      },
        +      "required": {
        +        "type": "boolean"
        +      }
        +    },
        +    "required": [
        +      "field",
        +      "question",
        +      "options"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / packing
        Added value: +{
        +  "description": "Three packing picks for this kind of trip, each linked to its VoyageHacks buying guide.",
        +  "items": {
        +    "properties": {
        +      "asin": {
        +        "type": "string"
        +      },
        +      "badge": {
        +        "description": "Editorial label, e.g. \"Best overall\".",
        +        "type": "string"
        +      },
        +      "category": {
        +        "description": "Product category, taken from the buying guide it appears in.",
        +        "type": "string"
        +      },
        +      "name": {
        +        "type": "string"
        +      },
        +      "productUrl": {
        +        "description": "The product on its VoyageHacks buying guide (#p-<asin>), where the Amazon buy button is.",
        +        "type": "string"
        +      },
        +      "retailer": {
        +        "description": "Where the product is sold. Always \"Amazon\".",
        +        "type": "string"
        +      },
        +      "reviewGuide": {
        +        "properties": {
        +          "title": {
        +            "type": "string"
        +          },
        +          "updated": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "title",
        +          "url"
        +        ],
        +        "type": "object"
        +      },
        +      "whyThisOne": {
        +        "description": "The published reason this product was picked.",
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "name",
        +      "asin",
        +      "productUrl",
        +      "retailer",
        +      "reviewGuide"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
      • changedOutput schema / properties / picks / items / properties / country / type
        Previous value: -"string"New value: +[
        +  "string",
        +  "null"
        +]
      • addedOutput schema / properties / picks / items / properties / image
        Added value: +{
        +  "description": "Photo of the destination on voyagehacks.com.",
        +  "type": [
        +    "string",
        +    "null"
        +  ]
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "disclosure",
        -  "tripFinder",
        -  "picks"
        -]New value: +[
        +  "disclosure",
        +  "picks"
        +]
    • Changedget_booking_links1 field changed
      • addedOutput schema / properties / hotelsElsewhere
        Added value: +{
        +  "description": "The same hotel search on Expedia (via Stay22).",
        +  "type": "string"
        +}
    • Changedget_hotel_links1 field changed
      • addedOutput schema / properties / moreStays
        Added value: +{
        +  "items": {
        +    "properties": {
        +      "label": {
        +        "type": "string"
        +      },
        +      "url": {
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "label",
        +      "url"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
    • Changedrecommend_travel_gear6 fields changed
      • removedOutput schema / properties / kit / items / properties / affiliate
        Removed value: -{
        -  "description": "True: the buy link is an affiliate link.",
        -  "type": "boolean"
        -}
      • removedOutput schema / properties / kit / items / properties / buyUrl
        Removed value: -{
        -  "description": "Amazon product page, carrying the VoyageHacks Associates tag.",
        -  "type": "string"
        -}
      • addedOutput schema / properties / kit / items / properties / productUrl
        Added value: +{
        +  "description": "The product on its VoyageHacks buying guide (#p-<asin>), where the Amazon buy button is.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / kit / items / properties / retailer
        Added value: +{
        +  "description": "Where the product is sold. Always \"Amazon\".",
        +  "type": "string"
        +}
      • removedOutput schema / properties / kit / items / properties / source
        Removed value: -{
        -  "description": "Always \"amazon\".",
        -  "type": "string"
        -}
      • changedOutput schema / properties / kit / items / required
        Previous value: -[
        -  "name",
        -  "asin",
        -  "buyUrl",
        -  "source",
        -  "affiliate",
        -  "reviewGuide"
        -]New value: +[
        +  "name",
        +  "asin",
        +  "productUrl",
        +  "retailer",
        +  "reviewGuide"
        +]
    • Changedsearch_travel_gear6 fields changed
      • removedOutput schema / properties / products / items / properties / affiliate
        Removed value: -{
        -  "description": "True: the buy link is an affiliate link.",
        -  "type": "boolean"
        -}
      • removedOutput schema / properties / products / items / properties / buyUrl
        Removed value: -{
        -  "description": "Amazon product page, carrying the VoyageHacks Associates tag.",
        -  "type": "string"
        -}
      • addedOutput schema / properties / products / items / properties / productUrl
        Added value: +{
        +  "description": "The product on its VoyageHacks buying guide (#p-<asin>), where the Amazon buy button is.",
        +  "type": "string"
        +}
      • addedOutput schema / properties / products / items / properties / retailer
        Added value: +{
        +  "description": "Where the product is sold. Always \"Amazon\".",
        +  "type": "string"
        +}
      • removedOutput schema / properties / products / items / properties / source
        Removed value: -{
        -  "description": "Always \"amazon\".",
        -  "type": "string"
        -}
      • changedOutput schema / properties / products / items / required
        Previous value: -[
        -  "name",
        -  "asin",
        -  "buyUrl",
        -  "source",
        -  "affiliate",
        -  "reviewGuide"
        -]New value: +[
        +  "name",
        +  "asin",
        +  "productUrl",
        +  "retailer",
        +  "reviewGuide"
        +]
  2. 1 tool update
    • Addedfind_destination
  3. 11 tool updates
    • Changedget_airport_transfer_links1 field changed
      • changedInput schema / properties / lang / enum
        Previous value: -[
        -  "en",
        -  "de",
        -  "fr",
        -  "es",
        -  "it",
        -  "pl",
        -  "cs",
        -  "ja",
        -  "nl",
        -  "pt",
        -  "zh"
        -]New value: +[
        +  "en",
        +  "de",
        +  "fr",
        +  "es",
        +  "it",
        +  "pl",
        +  "ja",
        +  "nl",
        +  "pt",
        +  "zh"
        +]
    • Changedget_booking_links1 field changed
      • changedInput schema / properties / lang / enum
        Previous value: -[
        -  "en",
        -  "de",
        -  "fr",
        -  "es",
        -  "it",
        -  "pl",
        -  "cs",
        -  "ja",
        -  "nl",
        -  "pt",
        -  "zh"
        -]New value: +[
        +  "en",
        +  "de",
        +  "fr",
        +  "es",
        +  "it",
        +  "pl",
        +  "ja",
        +  "nl",
        +  "pt",
        +  "zh"
        +]
    • Changedget_car_rental_links1 field changed
      • changedInput schema / properties / lang / enum
        Previous value: -[
        -  "en",
        -  "de",
        -  "fr",
        -  "es",
        -  "it",
        -  "pl",
        -  "cs",
        -  "ja",
        -  "nl",
        -  "pt",
        -  "zh"
        -]New value: +[
        +  "en",
        +  "de",
        +  "fr",
        +  "es",
        +  "it",
        +  "pl",
        +  "ja",
        +  "nl",
        +  "pt",
        +  "zh"
        +]
    • Changedget_credit_card_links1 field changed
      • changedInput schema / properties / lang / enum
        Previous value: -[
        -  "en",
        -  "de",
        -  "fr",
        -  "es",
        -  "it",
        -  "pl",
        -  "cs",
        -  "ja",
        -  "nl",
        -  "pt",
        -  "zh"
        -]New value: +[
        +  "en",
        +  "de",
        +  "fr",
        +  "es",
        +  "it",
        +  "pl",
        +  "ja",
        +  "nl",
        +  "pt",
        +  "zh"
        +]
    • Changedget_esim_links1 field changed
      • changedInput schema / properties / lang / enum
        Previous value: -[
        -  "en",
        -  "de",
        -  "fr",
        -  "es",
        -  "it",
        -  "pl",
        -  "cs",
        -  "ja",
        -  "nl",
        -  "pt",
        -  "zh"
        -]New value: +[
        +  "en",
        +  "de",
        +  "fr",
        +  "es",
        +  "it",
        +  "pl",
        +  "ja",
        +  "nl",
        +  "pt",
        +  "zh"
        +]
    • Changedget_flight_links1 field changed
      • changedInput schema / properties / lang / enum
        Previous value: -[
        -  "en",
        -  "de",
        -  "fr",
        -  "es",
        -  "it",
        -  "pl",
        -  "cs",
        -  "ja",
        -  "nl",
        -  "pt",
        -  "zh"
        -]New value: +[
        +  "en",
        +  "de",
        +  "fr",
        +  "es",
        +  "it",
        +  "pl",
        +  "ja",
        +  "nl",
        +  "pt",
        +  "zh"
        +]
    • Changedget_hotel_links1 field changed
      • changedInput schema / properties / lang / enum
        Previous value: -[
        -  "en",
        -  "de",
        -  "fr",
        -  "es",
        -  "it",
        -  "pl",
        -  "cs",
        -  "ja",
        -  "nl",
        -  "pt",
        -  "zh"
        -]New value: +[
        +  "en",
        +  "de",
        +  "fr",
        +  "es",
        +  "it",
        +  "pl",
        +  "ja",
        +  "nl",
        +  "pt",
        +  "zh"
        +]
    • Changedget_travel_vpn_links1 field changed
      • changedInput schema / properties / lang / enum
        Previous value: -[
        -  "en",
        -  "de",
        -  "fr",
        -  "es",
        -  "it",
        -  "pl",
        -  "cs",
        -  "ja",
        -  "nl",
        -  "pt",
        -  "zh"
        -]New value: +[
        +  "en",
        +  "de",
        +  "fr",
        +  "es",
        +  "it",
        +  "pl",
        +  "ja",
        +  "nl",
        +  "pt",
        +  "zh"
        +]
    • Changedrecommend_travel_gear1 field changed
      • changedInput schema / properties / lang / enum
        Previous value: -[
        -  "en",
        -  "de",
        -  "fr",
        -  "es",
        -  "it",
        -  "pl",
        -  "cs",
        -  "ja",
        -  "nl",
        -  "pt",
        -  "zh"
        -]New value: +[
        +  "en",
        +  "de",
        +  "fr",
        +  "es",
        +  "it",
        +  "pl",
        +  "ja",
        +  "nl",
        +  "pt",
        +  "zh"
        +]
    • Changedsearch_articles1 field changed
      • changedInput schema / properties / lang / enum
        Previous value: -[
        -  "en",
        -  "de",
        -  "fr",
        -  "es",
        -  "it",
        -  "pl",
        -  "cs",
        -  "ja",
        -  "nl",
        -  "pt",
        -  "zh"
        -]New value: +[
        +  "en",
        +  "de",
        +  "fr",
        +  "es",
        +  "it",
        +  "pl",
        +  "ja",
        +  "nl",
        +  "pt",
        +  "zh"
        +]
    • Changedsearch_travel_gear1 field changed
      • changedInput schema / properties / lang / enum
        Previous value: -[
        -  "en",
        -  "de",
        -  "fr",
        -  "es",
        -  "it",
        -  "pl",
        -  "cs",
        -  "ja",
        -  "nl",
        -  "pt",
        -  "zh"
        -]New value: +[
        +  "en",
        +  "de",
        +  "fr",
        +  "es",
        +  "it",
        +  "pl",
        +  "ja",
        +  "nl",
        +  "pt",
        +  "zh"
        +]
  4. 1 tool update
    • Changedget_flight_links1 field changed
      • addedOutput schema / properties / virginAtlantic
        Added value: +{
        +  "type": "string"
        +}
  5. 12 tool updates
    • Changedget_airport_transfer_links8 fields changed
      • changedInput schema / properties / airport / description
        Previous value: -"Airport name or IATA code, e.g. FCO, Bangkok Suvarnabhumi"New value: +"Airport name or IATA code, e.g. FCO, Bangkok Suvarnabhumi."
      • addedInput schema / properties / airport / maxLength
        Added value: +120
      • changedInput schema / properties / city / description
        Previous value: -"Destination city, e.g. Rome"New value: +"Destination city, e.g. Rome."
      • addedInput schema / properties / city / maxLength
        Added value: +120
      • changedInput schema / properties / country / description
        Previous value: -"Optional ISO 3166-1 alpha-2 country of the traveler; defaults to the caller's geolocation"New value: +"ISO 3166-1 alpha-2 country the traveler is booking from, e.g. US, DE, GB. Selects the regional Booking.com programme. Defaults to the caller's geolocation, then to the language default."
      • addedInput schema / properties / country / pattern
        Added value: +"^[A-Za-z]{2}$"
      • changedInput schema / properties / lang / description
        Previous value: -"Content language for the guides that come back (default \"en\")"New value: +"Language of the VoyageHacks guides returned. One of: en, de, fr, es, it, pl, cs, ja, nl, pt, zh. Defaults to \"en\"."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "airport": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "city": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "disclosure": {
        +      "type": "string"
        +    },
        +    "guides": {
        +      "description": "Matching VoyageHacks guides that can be cited as sources.",
        +      "items": {
        +        "properties": {
        +          "section": {
        +            "type": "string"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "title",
        +          "url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "providers": {
        +      "items": {
        +        "properties": {
        +          "label": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "label",
        +          "url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "region": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "disclosure",
        +    "providers",
        +    "guides"
        +  ],
        +  "type": "object"
        +}
    • Changedget_article3 fields changed
      • changedInput schema / properties / url / description
        Previous value: -"Page URL or path on voyagehacks.com"New value: +"Page URL or site path on voyagehacks.com, e.g. https://voyagehacks.com/de/esim/esim-japan/ or /de/esim/esim-japan/."
      • addedInput schema / properties / url / maxLength
        Added value: +400
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "excerpt": {
        +      "description": "The page's meta description.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "lang": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "markdown": {
        +      "type": "string"
        +    },
        +    "published": {
        +      "description": "ISO date, or null if the page declares none.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "section": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "source": {
        +      "description": "Attribution string for citations.",
        +      "type": "string"
        +    },
        +    "title": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "truncated": {
        +      "type": "boolean"
        +    },
        +    "updated": {
        +      "description": "ISO date, or null if the page declares none.",
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "url": {
        +      "description": "Canonical URL.",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "url",
        +    "markdown",
        +    "source"
        +  ],
        +  "type": "object"
        +}
    • Changedget_booking_links14 fields changed
      • addedInput schema / properties / adults
        Added value: +{
        +  "description": "Number of adult travelers. Defaults to 2 for hotels and 1 for flights.",
        +  "maximum": 9,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • changedInput schema / properties / city / description
        Previous value: -"Optional city name for the hotel search, e.g. Phuket"New value: +"City name for the hotel, tours and attractions searches, e.g. Phuket."
      • addedInput schema / properties / city / maxLength
        Added value: +120
      • changedInput schema / properties / country / description
        Previous value: -"Optional ISO 3166-1 alpha-2 country of the traveler; defaults to the caller's geolocation"New value: +"ISO 3166-1 alpha-2 country the traveler is booking from, e.g. US, DE, GB. Selects the regional Booking.com programme. Defaults to the caller's geolocation, then to the language default."
      • addedInput schema / properties / country / pattern
        Added value: +"^[A-Za-z]{2}$"
      • addedInput schema / properties / depart_date
        Added value: +{
        +  "description": "Outbound flight date and hotel check-in, YYYY-MM-DD.",
        +  "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
        +  "type": "string"
        +}
      • changedInput schema / properties / destination / description
        Previous value: -"Optional destination IATA city/airport code, e.g. HKT"New value: +"Destination IATA city or airport code, e.g. HKT."
      • addedInput schema / properties / destination / maxLength
        Added value: +40
      • addedInput schema / properties / include
        Added value: +{
        +  "description": "Categories to return. Omit for all of them.",
        +  "items": {
        +    "enum": [
        +      "flights",
        +      "hotels",
        +      "airport_taxi",
        +      "attractions",
        +      "tours",
        +      "car_rental",
        +      "esim",
        +      "vpn",
        +      "travel_gear"
        +    ],
        +    "type": "string"
        +  },
        +  "maxItems": 9,
        +  "type": "array"
        +}
      • addedInput schema / properties / lang
        Added value: +{
        +  "description": "Language of the VoyageHacks guides returned. One of: en, de, fr, es, it, pl, cs, ja, nl, pt, zh. Defaults to \"en\".",
        +  "enum": [
        +    "en",
        +    "de",
        +    "fr",
        +    "es",
        +    "it",
        +    "pl",
        +    "cs",
        +    "ja",
        +    "nl",
        +    "pt",
        +    "zh"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / origin / description
        Previous value: -"Optional origin IATA city/airport code for flights, e.g. LON"New value: +"Origin IATA city or airport code for flights, e.g. LON."
      • addedInput schema / properties / origin / maxLength
        Added value: +40
      • addedInput schema / properties / return_date
        Added value: +{
        +  "description": "Return flight date and hotel check-out, YYYY-MM-DD.",
        +  "pattern": "^\\d{4}-\\d{2}-\\d{2}$",
        +  "type": "string"
        +}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "airportTaxi": {
        +      "type": "string"
        +    },
        +    "attractions": {
        +      "type": "string"
        +    },
        +    "carRental": {
        +      "type": "string"
        +    },
        +    "disclosure": {
        +      "type": "string"
        +    },
        +    "esim": {
        +      "type": "string"
        +    },
        +    "flights": {
        +      "type": "string"
        +    },
        +    "guides": {
        +      "description": "Matching VoyageHacks guides that can be cited as sources.",
        +      "items": {
        +        "properties": {
        +          "section": {
        +            "type": "string"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "title",
        +          "url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "hotels": {
        +      "type": "string"
        +    },
        +    "included": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "region": {
        +      "type": "string"
        +    },
        +    "toursAndActivities": {
        +      "type": "string"
        +    },
        +    "travelGear": {
        +      "type": "string"
        +    },
        +    "trip": {
        +      "type": "object"
        +    },
        +    "vpn": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "disclosure",
        +    "included"
        +  ],
        +  "type": "object"
        +}
    • Changedget_car_rental_links10 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Optional ISO 3166-1 alpha-2 country of the traveler; defaults to the caller's geolocation"New value: +"ISO 3166-1 alpha-2 country the traveler is booking from, e.g. US, DE, GB. Selects the regional Booking.com programme. Defaults to the caller's geolocation, then to the language default."
      • addedInput schema / properties / country / pattern
        Added value: +"^[A-Za-z]{2}$"
      • changedInput schema / properties / destination / description
        Previous value: -"Country, island or city where the car is picked up, e.g. Iceland, Crete, Lisbon"New value: +"Country, island or city where the car is picked up, e.g. Iceland, Crete, Lisbon."
      • addedInput schema / properties / destination / maxLength
        Added value: +120
      • changedInput schema / properties / dropoff_date / description
        Previous value: -"Optional drop-off date, YYYY-MM-DD"New value: +"Drop-off date, YYYY-MM-DD. Echoed in the response; entered on the provider site."
      • addedInput schema / properties / dropoff_date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • changedInput schema / properties / lang / description
        Previous value: -"Content language for the guides that come back (default \"en\")"New value: +"Language of the VoyageHacks guides returned. One of: en, de, fr, es, it, pl, cs, ja, nl, pt, zh. Defaults to \"en\"."
      • changedInput schema / properties / pickup_date / description
        Previous value: -"Optional pickup date, YYYY-MM-DD"New value: +"Pickup date, YYYY-MM-DD. Echoed in the response; entered on the provider site."
      • addedInput schema / properties / pickup_date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "bookingCars": {
        +      "type": "string"
        +    },
        +    "destination": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "disclosure": {
        +      "type": "string"
        +    },
        +    "dropoff": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "guides": {
        +      "description": "Matching VoyageHacks guides that can be cited as sources.",
        +      "items": {
        +        "properties": {
        +          "section": {
        +            "type": "string"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "title",
        +          "url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "pickup": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "providers": {
        +      "items": {
        +        "properties": {
        +          "label": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "label",
        +          "url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "region": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "disclosure",
        +    "providers",
        +    "guides"
        +  ],
        +  "type": "object"
        +}
    • Changedget_credit_card_links5 fields changed
      • changedInput schema / properties / card / description
        Previous value: -"Optional specific Amex card"New value: +"Restrict the response to one American Express card. \"green\" is the American Express Card, successor to the retired Green Card."
      • changedInput schema / properties / country / description
        Previous value: -"Optional ISO 3166-1 alpha-2 country of the traveler; defaults to the caller's geolocation"New value: +"ISO 3166-1 alpha-2 country the traveler is booking from, e.g. US, DE, GB. Selects the regional Booking.com programme. Defaults to the caller's geolocation, then to the language default."
      • addedInput schema / properties / country / pattern
        Added value: +"^[A-Za-z]{2}$"
      • changedInput schema / properties / lang / description
        Previous value: -"Content language for the guides that come back (default \"en\")"New value: +"Language of the VoyageHacks guides returned. One of: en, de, fr, es, it, pl, cs, ja, nl, pt, zh. Defaults to \"en\"."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "card": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "cards": {
        +      "items": {
        +        "properties": {
        +          "label": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "label",
        +          "url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "country": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "disclosure": {
        +      "type": "string"
        +    },
        +    "facts": {
        +      "description": "Verified fee and welcome-offer figures, currently published for Germany only. Null elsewhere.",
        +      "type": [
        +        "object",
        +        "null"
        +      ]
        +    },
        +    "guides": {
        +      "description": "Matching VoyageHacks guides that can be cited as sources.",
        +      "items": {
        +        "properties": {
        +          "section": {
        +            "type": "string"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "title",
        +          "url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "disclosure",
        +    "cards",
        +    "guides"
        +  ],
        +  "type": "object"
        +}
    • Changedget_esim_links4 fields changed
      • changedInput schema / properties / destination / description
        Previous value: -"Country or region the data is for, e.g. Japan, Europe, USA"New value: +"Country or region the data plan is for, e.g. Japan, Europe, USA."
      • addedInput schema / properties / destination / maxLength
        Added value: +120
      • changedInput schema / properties / lang / description
        Previous value: -"Content language for the guides that come back (default \"en\")"New value: +"Language of the VoyageHacks guides returned. One of: en, de, fr, es, it, pl, cs, ja, nl, pt, zh. Defaults to \"en\"."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "destination": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "disclosure": {
        +      "type": "string"
        +    },
        +    "guides": {
        +      "description": "Matching VoyageHacks guides that can be cited as sources.",
        +      "items": {
        +        "properties": {
        +          "section": {
        +            "type": "string"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "title",
        +          "url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "providers": {
        +      "items": {
        +        "properties": {
        +          "label": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "label",
        +          "url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    }
        +  },
        +  "required": [
        +    "disclosure",
        +    "providers",
        +    "guides"
        +  ],
        +  "type": "object"
        +}
    • Changedget_flight_links13 fields changed
      • changedInput schema / properties / country / description
        Previous value: -"Optional ISO 3166-1 alpha-2 country of the traveler; defaults to the caller's geolocation"New value: +"ISO 3166-1 alpha-2 country the traveler is booking from, e.g. US, DE, GB. Selects the regional Booking.com programme. Defaults to the caller's geolocation, then to the language default."
      • addedInput schema / properties / country / pattern
        Added value: +"^[A-Za-z]{2}$"
      • changedInput schema / properties / depart_date / description
        Previous value: -"Optional outbound date, YYYY-MM-DD"New value: +"Outbound date, YYYY-MM-DD. Omitted dates default to about a month ahead."
      • addedInput schema / properties / depart_date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • changedInput schema / properties / destination / description
        Previous value: -"Destination IATA city/airport code, e.g. HKT, TYO, ROM"New value: +"Destination IATA city or airport code, e.g. HKT, TYO, ROM."
      • addedInput schema / properties / destination / maxLength
        Added value: +40
      • changedInput schema / properties / lang / description
        Previous value: -"Content language for the guides that come back (default \"en\")"New value: +"Language of the VoyageHacks guides returned. One of: en, de, fr, es, it, pl, cs, ja, nl, pt, zh. Defaults to \"en\"."
      • changedInput schema / properties / origin / description
        Previous value: -"Origin IATA city/airport code, e.g. LON, NYC, BER"New value: +"Origin IATA city or airport code, e.g. LON, NYC, BER."
      • addedInput schema / properties / origin / maxLength
        Added value: +40
      • changedInput schema / properties / passengers / description
        Previous value: -"Passengers (default 1)"New value: +"Number of adult passengers. Defaults to 1."
      • changedInput schema / properties / return_date / description
        Previous value: -"Optional return date, YYYY-MM-DD (omit for one-way)"New value: +"Return date, YYYY-MM-DD. Omit for a one-way search."
      • addedInput schema / properties / return_date / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "airIndia": {
        +      "type": "string"
        +    },
        +    "airSerbia": {
        +      "type": "string"
        +    },
        +    "disclosure": {
        +      "type": "string"
        +    },
        +    "flightCompensation": {
        +      "type": "string"
        +    },
        +    "flightSearch": {
        +      "type": "string"
        +    },
        +    "guides": {
        +      "description": "Matching VoyageHacks guides that can be cited as sources.",
        +      "items": {
        +        "properties": {
        +          "section": {
        +            "type": "string"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "title",
        +          "url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "region": {
        +      "type": "string"
        +    },
        +    "route": {
        +      "type": "object"
        +    },
        +    "vueling": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "disclosure",
        +    "flightSearch",
        +    "guides"
        +  ],
        +  "type": "object"
        +}
    • Changedget_hotel_links13 fields changed
      • changedInput schema / properties / adults / description
        Previous value: -"Adults (default 2)"New value: +"Number of adults. Defaults to 2."
      • changedInput schema / properties / checkin / description
        Previous value: -"Optional check-in date, YYYY-MM-DD"New value: +"Check-in date, YYYY-MM-DD. Used only when checkout is also given."
      • addedInput schema / properties / checkin / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • changedInput schema / properties / checkout / description
        Previous value: -"Optional check-out date, YYYY-MM-DD"New value: +"Check-out date, YYYY-MM-DD."
      • addedInput schema / properties / checkout / pattern
        Added value: +"^\\d{4}-\\d{2}-\\d{2}$"
      • addedInput schema / properties / children
        Added value: +{
        +  "description": "Number of children. Defaults to 0.",
        +  "maximum": 10,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • changedInput schema / properties / city / description
        Previous value: -"City, region or property name to search, e.g. Rome, Phuket"New value: +"City, region or property name to search, e.g. Rome, Phuket, Hotel Kossak."
      • addedInput schema / properties / city / maxLength
        Added value: +120
      • changedInput schema / properties / country / description
        Previous value: -"Optional ISO 3166-1 alpha-2 country of the traveler; defaults to the caller's geolocation"New value: +"ISO 3166-1 alpha-2 country the traveler is booking from, e.g. US, DE, GB. Selects the regional Booking.com programme. Defaults to the caller's geolocation, then to the language default."
      • addedInput schema / properties / country / pattern
        Added value: +"^[A-Za-z]{2}$"
      • changedInput schema / properties / lang / description
        Previous value: -"Content language for the guides that come back (default \"en\")"New value: +"Language of the VoyageHacks guides returned. One of: en, de, fr, es, it, pl, cs, ja, nl, pt, zh. Defaults to \"en\"."
      • changedInput schema / properties / rooms / description
        Previous value: -"Rooms (default 1)"New value: +"Number of rooms. Defaults to 1."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "adults": {
        +      "type": "integer"
        +    },
        +    "checkin": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "checkout": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "children": {
        +      "type": "integer"
        +    },
        +    "city": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    },
        +    "disclosure": {
        +      "type": "string"
        +    },
        +    "guides": {
        +      "description": "Matching VoyageHacks guides that can be cited as sources.",
        +      "items": {
        +        "properties": {
        +          "section": {
        +            "type": "string"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "title",
        +          "url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "hotelSearch": {
        +      "type": "string"
        +    },
        +    "ihg": {
        +      "type": "string"
        +    },
        +    "region": {
        +      "type": "string"
        +    },
        +    "rooms": {
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "disclosure",
        +    "hotelSearch",
        +    "guides"
        +  ],
        +  "type": "object"
        +}
    • Changedget_travel_vpn_links2 fields changed
      • changedInput schema / properties / lang / description
        Previous value: -"Content language for the guides that come back (default \"en\")"New value: +"Language of the VoyageHacks guides returned. One of: en, de, fr, es, it, pl, cs, ja, nl, pt, zh. Defaults to \"en\"."
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "disclosure": {
        +      "type": "string"
        +    },
        +    "guides": {
        +      "description": "Matching VoyageHacks guides that can be cited as sources.",
        +      "items": {
        +        "properties": {
        +          "section": {
        +            "type": "string"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "title",
        +          "url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "vpn": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "disclosure",
        +    "vpn",
        +    "guides"
        +  ],
        +  "type": "object"
        +}
    • Changedrecommend_travel_gear12 fields changed
      • addedInput schema / properties / activities
        Added value: +{
        +  "description": "Optional activities, e.g. [\"hiking\", \"photography\", \"remote work\", \"camping\", \"beach\"].",
        +  "items": {
        +    "maxLength": 60,
        +    "type": "string"
        +  },
        +  "maxItems": 10,
        +  "type": "array"
        +}
      • addedInput schema / properties / budget
        Added value: +{
        +  "description": "Optional budget level. Recorded in the response; the catalog carries no prices, so it does not filter products.",
        +  "enum": [
        +    "budget",
        +    "mid_range",
        +    "premium"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / destination
        Added value: +{
        +  "description": "Optional country, region or city, e.g. Japan, Iceland, Thailand.",
        +  "maxLength": 120,
        +  "type": "string"
        +}
      • changedInput schema / properties / lang / description
        Previous value: -"Content language for the guides that come back (default \"en\")"New value: +"Language of the VoyageHacks guides returned. One of: en, de, fr, es, it, pl, cs, ja, nl, pt, zh. Defaults to \"en\"."
      • changedInput schema / properties / limit / description
        Previous value: -"Max items in the kit (default 6)"New value: +"Maximum items in the kit. Defaults to 6."
      • addedInput schema / properties / luggage
        Added value: +{
        +  "description": "Optional luggage constraint. carry_on_only and personal_item_only weight the packing and compression categories.",
        +  "enum": [
        +    "carry_on_only",
        +    "personal_item_only",
        +    "checked_bag",
        +    "backpack"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / season
        Added value: +{
        +  "description": "Optional season or climate at the destination.",
        +  "enum": [
        +    "spring",
        +    "summer",
        +    "autumn",
        +    "winter",
        +    "rainy",
        +    "dry"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / traveler_type
        Added value: +{
        +  "description": "Optional traveler type.",
        +  "enum": [
        +    "solo",
        +    "couple",
        +    "family",
        +    "business",
        +    "backpacker",
        +    "digital_nomad"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / trip / description
        Previous value: -"Free-text trip description: destination, length, style, flight type, season, gadgets needed"New value: +"Free-text trip description: destination, length, style, flight type, season, gadgets needed."
      • addedInput schema / properties / trip / maxLength
        Added value: +600
      • addedInput schema / properties / trip_length_days
        Added value: +{
        +  "description": "Optional trip length in days.",
        +  "maximum": 365,
        +  "minimum": 1,
        +  "type": "integer"
        +}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "criteria": {
        +      "description": "Structured hints that were applied.",
        +      "type": "object"
        +    },
        +    "disclosure": {
        +      "type": "string"
        +    },
        +    "hub": {
        +      "type": "string"
        +    },
        +    "kit": {
        +      "items": {
        +        "properties": {
        +          "affiliate": {
        +            "description": "True: the buy link is an affiliate link.",
        +            "type": "boolean"
        +          },
        +          "asin": {
        +            "type": "string"
        +          },
        +          "badge": {
        +            "description": "Editorial label, e.g. \"Best overall\".",
        +            "type": "string"
        +          },
        +          "buyUrl": {
        +            "description": "Amazon product page, carrying the VoyageHacks Associates tag.",
        +            "type": "string"
        +          },
        +          "category": {
        +            "description": "Product category, taken from the buying guide it appears in.",
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "reviewGuide": {
        +            "properties": {
        +              "title": {
        +                "type": "string"
        +              },
        +              "updated": {
        +                "type": "string"
        +              },
        +              "url": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "title",
        +              "url"
        +            ],
        +            "type": "object"
        +          },
        +          "source": {
        +            "description": "Always \"amazon\".",
        +            "type": "string"
        +          },
        +          "whyThisOne": {
        +            "description": "The published reason this product was picked.",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "name",
        +          "asin",
        +          "buyUrl",
        +          "source",
        +          "affiliate",
        +          "reviewGuide"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "lang": {
        +      "type": "string"
        +    },
        +    "trip": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "trip",
        +    "lang",
        +    "kit",
        +    "disclosure"
        +  ],
        +  "type": "object"
        +}
    • Changedsearch_articles6 fields changed
      • changedInput schema / properties / lang / description
        Previous value: -"Content language for the guides that come back (default \"en\")"New value: +"Language of the VoyageHacks guides returned. One of: en, de, fr, es, it, pl, cs, ja, nl, pt, zh. Defaults to \"en\"."
      • changedInput schema / properties / limit / description
        Previous value: -"Max results (default 5)"New value: +"Maximum results to return. Defaults to 5."
      • changedInput schema / properties / query / description
        Previous value: -"Search terms, e.g. \"cheap hotels rome\" or \"esim japan\""New value: +"Search terms, e.g. \"cheap hotels rome\" or \"esim japan\". Matched against titles, keywords, tags and article text."
      • addedInput schema / properties / query / maxLength
        Added value: +300
      • addedInput schema / properties / section
        Added value: +{
        +  "description": "Restrict results to one site section. Omit to search every section.",
        +  "enum": [
        +    "flights",
        +    "airlines",
        +    "hotels",
        +    "destinations",
        +    "car-rental",
        +    "trains",
        +    "transfers",
        +    "esim",
        +    "vpn",
        +    "credit-cards",
        +    "travel-gear",
        +    "adventure",
        +    "travel-types",
        +    "when-to-go",
        +    "styles",
        +    "answers",
        +    "checklists",
        +    "deals"
        +  ],
        +  "type": "string"
        +}
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "lang": {
        +      "type": "string"
        +    },
        +    "query": {
        +      "type": "string"
        +    },
        +    "resultCount": {
        +      "type": "integer"
        +    },
        +    "results": {
        +      "items": {
        +        "properties": {
        +          "lang": {
        +            "type": "string"
        +          },
        +          "section": {
        +            "type": "string"
        +          },
        +          "snippet": {
        +            "type": "string"
        +          },
        +          "title": {
        +            "type": "string"
        +          },
        +          "url": {
        +            "description": "Canonical URL, safe to cite.",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "title",
        +          "url"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "section": {
        +      "type": [
        +        "string",
        +        "null"
        +      ]
        +    }
        +  },
        +  "required": [
        +    "query",
        +    "lang",
        +    "results"
        +  ],
        +  "type": "object"
        +}
    • Changedsearch_travel_gear5 fields changed
      • changedInput schema / properties / lang / description
        Previous value: -"Content language for the guides that come back (default \"en\")"New value: +"Language of the VoyageHacks guides returned. One of: en, de, fr, es, it, pl, cs, ja, nl, pt, zh. Defaults to \"en\"."
      • changedInput schema / properties / limit / description
        Previous value: -"Max products (default 6)"New value: +"Maximum products to return. Defaults to 6."
      • changedInput schema / properties / query / description
        Previous value: -"What the traveler needs, e.g. \"power bank for a long flight\", \"packing cubes\", \"adapter for Japan\""New value: +"What the traveler needs, e.g. \"power bank for a long flight\", \"packing cubes\", \"adapter for Japan\"."
      • addedInput schema / properties / query / maxLength
        Added value: +300
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "properties": {
        +    "disclosure": {
        +      "type": "string"
        +    },
        +    "hub": {
        +      "type": "string"
        +    },
        +    "lang": {
        +      "type": "string"
        +    },
        +    "productCount": {
        +      "type": "integer"
        +    },
        +    "products": {
        +      "items": {
        +        "properties": {
        +          "affiliate": {
        +            "description": "True: the buy link is an affiliate link.",
        +            "type": "boolean"
        +          },
        +          "asin": {
        +            "type": "string"
        +          },
        +          "badge": {
        +            "description": "Editorial label, e.g. \"Best overall\".",
        +            "type": "string"
        +          },
        +          "buyUrl": {
        +            "description": "Amazon product page, carrying the VoyageHacks Associates tag.",
        +            "type": "string"
        +          },
        +          "category": {
        +            "description": "Product category, taken from the buying guide it appears in.",
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "reviewGuide": {
        +            "properties": {
        +              "title": {
        +                "type": "string"
        +              },
        +              "updated": {
        +                "type": "string"
        +              },
        +              "url": {
        +                "type": "string"
        +              }
        +            },
        +            "required": [
        +              "title",
        +              "url"
        +            ],
        +            "type": "object"
        +          },
        +          "source": {
        +            "description": "Always \"amazon\".",
        +            "type": "string"
        +          },
        +          "whyThisOne": {
        +            "description": "The published reason this product was picked.",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "name",
        +          "asin",
        +          "buyUrl",
        +          "source",
        +          "affiliate",
        +          "reviewGuide"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "query": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "query",
        +    "lang",
        +    "products",
        +    "disclosure"
        +  ],
        +  "type": "object"
        +}
  6. 12 tool updates
    • First observedget_airport_transfer_links
    • First observedget_article
    • First observedget_booking_links
    • First observedget_car_rental_links
    • First observedget_credit_card_links
    • First observedget_esim_links
    • First observedget_flight_links
    • First observedget_hotel_links
    • First observedget_travel_vpn_links
    • First observedrecommend_travel_gear
    • First observedsearch_articles
    • First observedsearch_travel_gear

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.