Fly Travel Albania
Server Details
Cached charter package, hotel facts and tour prices from Fly Travel Albania (Tirana); party-aware.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-03-26
- URL
TDQS
Scored across 12 tools
Most tools have clearly distinct roles, and the charter_* family is carefully delineated (cheapest by destination, cheapest by date window, filtered discovery, single hotel, comparison). There is still some surface-level overlap between charter_cheapest, charter_flexible_dates, and charter_offers, though the descriptions do enough to prevent major misselection.
The naming is generally consistent and readable: charter_* tools share a strong prefix, and hotel_details/compare_hotels/tours_list/tour_details follow predictable noun-based patterns. Minor deviations like booking_link (verb+noun) and prices_digest (noun+noun) do not create real confusion.
Twelve tools is well within the ideal range for a travel-domain server, and each tool covers a distinct query pattern: discovery, cheapest pricing, flexible dates, specific hotels, comparisons, static details, tours, and booking links. The count feels justified rather than padded.
The surface covers the main user journey well: find charters, filter by budget/features, compare hotels, get hotel details, check tours, and obtain booking links. Minor gaps exist, such as no non-charter package filtering by date/budget and no standalone flight/transfer search, but agents can still complete realistic travel-planning tasks.
Available Tools
12 toolsbooking_linkBuild a booking search linkARead-onlyIdempotentInspect
Deep link into the live charter search results for a destination, date, party and optional trip length — hand this URL to the user to see live availability and book. Children are ages 0-14 at departure; ages 15+ count as adults. Pure URL builder (no data).
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes | Departure date, format YYYY-MM-DD. | |
| adults | No | Number of adults (default 2). | |
| nights | No | Trip length in nights. Omit for the standard charter length (6 nights / 7 days). Most departures also sell 3-10 nights. | |
| destination | Yes | Destination key, e.g. 'antalya'. | |
| children_ages | No | Age of each child AT DEPARTURE (0-14 = child; 15+ is counted as an adult automatically). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, and the description adds that the tool is a 'Pure URL builder (no data)' and clarifies child age behavior at departure. This goes beyond the annotations by explicitly defining the output as a URL and the no-side-effect nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and front-loaded with the core purpose. All sentences are relevant, though the child-age sentence partly duplicates the schema's own parameter description, which keeps it from a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description clearly states the return is a URL. Combined with full schema coverage and readOnly/idempotent annotations, the tool is sufficiently described for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all five parameters. The description adds the 'children ages 0-14 at departure' rule and 'optional trip length' phrasing, but these largely mirror the schema's existing property descriptions, providing limited additional value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool builds a deep link into live charter search results for a destination, date, party, and optional trip length, and that the output is a URL to hand to the user. It differentiates itself from data-returning sibling tools with 'Pure URL builder (no data)'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use the tool: when the user wants to see live availability and book by receiving a URL. It does not explicitly name alternatives or exclusions, but the intended use case is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
charter_cheapestCheapest charter packages (live cache)ARead-onlyIdempotentInspect
Cheapest flight+hotel charter packages from Tirana (Albania) per destination, from the live booking-engine cache (the 5 cheapest per destination, each on its own date). Use for "what is the cheapest…" only; for advice or filtering use charter_offers. CACHED prices (from recent real searches on flytravel.al — not a live query; every row carries cached_at/age_minutes). Charter prices are PACKAGE TOTALS in EUR for the row's "party" (flight + hotel + transfers), NOT per person. party_match=false means the price is the 2-adult reference, not the total for the requested party — say so. A price belongs ONLY to its own "date": never present it as the price of another date.
| Name | Required | Description | Default |
|---|---|---|---|
| destination | No | Optional destination key, e.g. 'antalya' or 'bodrum'. Omit to get every destination. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnly, idempotent, non-destructive. The description adds valuable behavioral nuance beyond that: cached data with cached_at/age_minutes, package totals not per person, party_match=false semantics, and the strict rule that a price belongs only to its own date. These are critical to correct use and not present in annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Dense but every sentence earns its place. The main function is front-loaded, followed by usage routing, then three essential caveats about cache, pricing units, and date-attachment. Despite length, no filler or repetition.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, single-parameter, no-output-schema tool, the description covers purpose, when to use it, data provenance, unit semantics, and the most dangerous misuse (misattributing a price to a different date). Nothing critical is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers the single 'destination' parameter 100%, including the note that omitting it returns every destination. The description does not add meaning beyond the schema; the main value is in interpreting returned rows, not in parameter syntax.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description opens with a specific verb and resource: 'Cheapest flight+hotel charter packages from Tirana (Albania) per destination, from the live booking-engine cache.' It further clarifies it returns the 5 cheapest per destination, each on its own date. This clearly distinguishes it from siblings like charter_offers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'Use for "what is the cheapest…" only; for advice or filtering use charter_offers.' It also warns that prices are cached and not live queries, setting correct expectations about freshness.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
charter_datesUpcoming charter departure datesARead-onlyIdempotentInspect
Real upcoming charter departure dates from Tirana for a destination (cached calendar), each with the trip lengths (nights_available) really on sale for that departure and a ready booking-search link. Filter with date_from/date_to or month; total_count/has_more say when the calendar holds MORE dates than returned — never present a capped list as the whole calendar. For "which date is cheapest" use charter_flexible_dates.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max dates to return (default 20). | |
| month | No | Whole-month window, e.g. '2026-09' (ignored when date_from/date_to given). | |
| adults | No | Number of adults (default 2). | |
| nights | No | Trip length in nights. Omit for the standard charter length (6 nights / 7 days). Most departures also sell 3-10 nights. | |
| date_to | No | Only departures on/before this date (YYYY-MM-DD). | |
| date_from | No | Only departures on/after this date (YYYY-MM-DD). | |
| destination | Yes | Destination key, e.g. 'antalya' or 'bodrum'. | |
| children_ages | No | Age of each child AT DEPARTURE (0-14 = child; 15+ is counted as an adult automatically). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, and non-destructive behavior. The description adds valuable operational context beyond that: the calendar is cached, nights are actually on sale, and total_count/has_more warn that the response may be a capped subset, so the agent must not present it as the full calendar. This is meaningful behavioral guidance.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three dense sentences with no filler. The primary purpose is front-loaded, the cap/pagination caveat and filter guidance follow, and the alternative tool is named last. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Even though there is no output schema, the description names the key result contents (nights_available, booking-search link, total_count/has_more) and the critical pagination caveat. Combined with the fully described schema and read-only annotations, an agent has enough information to call the tool correctly and interpret the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all 8 parameters with 100% coverage, so the baseline is 3. The description mostly restates filtering options and references an output field (nights_available) rather than adding new parameter semantics, but it does not need to compensate for missing schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what the tool provides: real upcoming charter departure dates from Tirana for a destination, including trip lengths actually on sale and a booking-search link. It also distinguishes itself from charter_flexible_dates by explicitly naming that alternative for cheapest-date queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives concrete filter guidance (date_from/date_to or month) and an explicit routing rule: use charter_flexible_dates when the user wants the cheapest date. This clearly tells an agent when to choose this tool over the most relevant sibling.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
charter_flexible_datesCheapest cached date in a windowARead-onlyIdempotentInspect
For flexible travellers: the lowest CACHED package total for each departure date inside a window (max 31 days) for a destination and party, plus best_value_date. Dates with no cache are returned as availability_status=no_cached_data — NOT as "no offers" (the cache only holds recently searched dates; the search_url prices them live). CACHED prices (from recent real searches on flytravel.al — not a live query; every row carries cached_at/age_minutes). Charter prices are PACKAGE TOTALS in EUR for the row's "party" (flight + hotel + transfers), NOT per person. party_match=false means the price is the 2-adult reference, not the total for the requested party — say so. A price belongs ONLY to its own "date": never present it as the price of another date.
| Name | Required | Description | Default |
|---|---|---|---|
| adults | No | Number of adults (default 2). | |
| nights | No | Trip length in nights. Omit for the standard charter length (6 nights / 7 days). Most departures also sell 3-10 nights. | |
| date_to | No | Window end, YYYY-MM-DD (default date_from + 14 days; max 31-day window). | |
| date_from | No | Window start, YYYY-MM-DD (default today). | |
| stars_min | No | Minimum hotel star rating (1-5). | |
| destination | Yes | Destination key, e.g. 'antalya' or 'bodrum'. | |
| children_ages | No | Age of each child AT DEPARTURE (0-14 = child; 15+ is counted as an adult automatically). | |
| budget_total_max | No | Max TOTAL budget in EUR for the whole party. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark it read-only/idempotent/non-destructive, so the description adds non-obvious behavioral detail: no_cached_data is not 'no offers', prices are package totals in EUR not per person, party_match=false means the 2-adult reference, and a price belongs only to its own date. These caveats are far beyond what the annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Every sentence carries a distinct warning or clarification; there is no filler. The core purpose is front-loaded and the caveats are ordered logically from cache semantics to pricing units to date ownership.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the full burden of explaining response semantics, and it covers the critical fields (availability_status, cached_at/age_minutes, party_match, best_value_date) and their pitfalls. An agent can interpret rows safely without further guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the parameters are already documented; the description adds relevant context about party-level totals and window length but does not add per-parameter syntax beyond the schema. The baseline of 3 is appropriate because the schema carries the parameter burden.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a precise operation: return the lowest cached package total for each departure date in a window, plus best_value_date, for a destination and party. The 'CACHED' and 'window' qualifiers distinguish it from siblings like charter_cheapest and charter_dates without needing their schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'For flexible travellers' gives a clear when-to-use signal, and the explanation that this is cached rather than live tells the agent when it is not appropriate. It stops short of naming a sibling as the live alternative, but the context is strong enough for routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
charter_hotelPrice for a specific hotel (live cache)ARead-onlyIdempotentInspect
Cached price(s) for ONE hotel named by the user (e.g. "Granada Luxury Belek") — searches the full price cache (hundreds of hotels). ALWAYS pass the date and the party the user gave: the per-date cache is read for that EXACT party first (party_match=true = real total for that family), then the 2-adult file (party_match=false = reference price). exact_date_matches = real cached prices for the requested date; other_cached_offers belong to their OWN dates (availability_status=reference_other_date). When nothing is cached for the requested date, say so and give hotel_page (it prices any date live). Do NOT call this tool repeatedly to browse — use charter_offers (filters) or compare_hotels (2-6 named hotels) instead. For amenities use hotel_details. CACHED prices (from recent real searches on flytravel.al — not a live query; every row carries cached_at/age_minutes). Charter prices are PACKAGE TOTALS in EUR for the row's "party" (flight + hotel + transfers), NOT per person. party_match=false means the price is the 2-adult reference, not the total for the requested party — say so. A price belongs ONLY to its own "date": never present it as the price of another date.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Desired departure date, format YYYY-MM-DD — exact-date cache is checked and the date is baked into the links. | |
| hotel | Yes | Hotel name, or part of it. | |
| adults | No | Number of adults (default 2). | |
| nights | No | Trip length in nights. Omit for the standard charter length (6 nights / 7 days). Most departures also sell 3-10 nights. | |
| destination | No | Optional destination key ('antalya', 'bodrum') to narrow the search. | |
| children_ages | No | Age of each child AT DEPARTURE (0-14 = child; 15+ is counted as an adult automatically). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only indicate read-only and idempotent behavior, but the description adds major behavioral nuance: the data is cached, not live; party_match semantics; exact_date_matches vs other_cached_offers; that prices are package totals in EUR, not per-person; and that a price belongs only to its own date. This far exceeds what the annotations reveal and prevents common misinterpretations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and packed with necessary caveats, all of which earn their place. It could be better organized with bullet points, and there is minor repetition of the not-live/cached concept, but it remains well-structured with front-loaded scope and clear separators between key ideas.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description supplies the crucial output semantics: exact_date_matches, other_cached_offers, availability_status=reference_other_date, party_match flags, cached_at/age_minutes, and the hotel_page fallback. It also covers edge cases (no cached date, wrong party, wrong date) so an agent can correctly interpret and present results in every scenario.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds value by instructing the agent to always pass the date and party given by the user, explaining that the exact party's cache is read first, and clarifying the 2-adult reference fallback. This behavioral mapping goes beyond the schema's per-field descriptions, though it is somewhat redundant with them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and scope: it returns cached prices for ONE named hotel, and gives an example hotel name. It explicitly distinguishes itself from the siblings charter_offers (filters), compare_hotels (2-6 named hotels), and hotel_details (amenities), so an agent can immediately differentiate it.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit when-to-use guidance: call it when the user names one specific hotel, and do NOT call it repeatedly for browsing — instead use charter_offers or compare_hotels. It also prescribes a specific fallback behavior when nothing is cached: say so and provide hotel_page, which leaves no ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
charter_offersBrowse & filter offers (advisor, one call)ARead-onlyIdempotentInspect
THE discovery tool: filters the whole cached charter inventory (hundreds of hotels) in ONE call by date, TOTAL budget, stars, board, zone, party and hotel features (aquapark, kids club, adults-only, beach, spa, luxury…). Built for "I have X EUR for 2 adults + a child, Antalya, 5 stars, aquapark, near the beach — what do you suggest?". Returns the price range, three quality tiers (economy-but-good / mid / premium) and a shortlist; advise from the tiers, never only the cheapest. Pass the date whenever the user has one (exact availability for that date) and the real party (exact-party cache is used when present). excluded_unknown_features tells how many hotels were dropped because their facilities are unknown. CACHED prices (from recent real searches on flytravel.al — not a live query; every row carries cached_at/age_minutes). Charter prices are PACKAGE TOTALS in EUR for the row's "party" (flight + hotel + transfers), NOT per person. party_match=false means the price is the 2-adult reference, not the total for the requested party — say so. A price belongs ONLY to its own "date": never present it as the price of another date.
| Name | Required | Description | Default |
|---|---|---|---|
| spa | No | true = only hotels with spa / Turkish bath / sauna. | |
| date | No | Departure date, format YYYY-MM-DD (recommended — exact availability for that date). | |
| zone | No | Zone/resort filter substring, e.g. 'Belek', 'Alanya', 'Lara', 'Side', 'Kemer'. | |
| beach | No | true = only hotels with a beach (own or nearby, per the hotel facts). | |
| board | No | Board filter substring, e.g. 'all inclusive', 'ultra'. | |
| limit | No | Shortlist size (default 12). | |
| adults | No | Number of adults (default 2). | |
| luxury | No | true = only hotels tagged luxury. | |
| nights | No | Trip length in nights. Omit for the standard charter length (6 nights / 7 days). Most departures also sell 3-10 nights. | |
| aquapark | No | true = only hotels with an aquapark / water park. | |
| kids_club | No | true = only hotels with a kids / mini club. | |
| stars_min | No | Minimum hotel star rating (1-5). | |
| adults_only | No | true = only adults-only hotels; false = EXCLUDE adults-only hotels (use false for any party with children). | |
| destination | No | Optional destination key ('antalya', 'bodrum'). Omit to search all. | |
| children_ages | No | Age of each child AT DEPARTURE (0-14 = child; 15+ is counted as an adult automatically). | |
| private_beach | No | true = only hotels listing a private / own beach. | |
| family_friendly | No | true = only hotels with family facilities (kids club / kids pool / family rooms) and not adults-only. | |
| budget_total_max | No | Max TOTAL budget in EUR for the whole party. | |
| budget_total_min | No | Optional min total, to skip too-basic offers. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description is rich with behavioral caveats beyond the read-only annotations: prices are cached, not live; prices are package totals in EUR, not per person; party_match=false means the price is a 2-adult reference; and a price belongs only to its own date. It also explains excluded_unknown_features. This is essential for the agent not to misrepresent results.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence earns its place: it front-loads the core purpose, then adds a concrete example, then the output structure, then essential caveats about cache, pricing, and date-bounding. There is no filler or restating of schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description takes on the burden of explaining what the tool returns: price range, three quality tiers, a shortlist, excluded_unknown_features, and party_match semantics. It covers the necessary context for an agent to call and interpret results correctly, even for a complex 19-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the input schema already documents all 19 parameters well. The description adds some context about party-exact cache usage and not presenting prices across dates, but these are largely behavioral rather than new parameter-level semantics. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb+resource: it filters the whole cached charter inventory in one call by multiple criteria. It clearly differentiates itself from siblings by positioning itself as the discovery tool with an illustrative natural-language query, and by mentioning the one-call nature.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context on when to use the tool: for open-ended 'what do you suggest' queries, and instructs to pass the date and real party when available. It does not explicitly mention alternatives or exclusions, so it stops short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_hotelsCompare 2-6 hotels side by sideARead-onlyIdempotentInspect
Side-by-side comparison of 2-6 named hotels for a date and party: cached price (with party_match + cached_at), stars, zone, board, room, features (aquapark, kids club, beach, spa, adults-only…) and a booking link each — one call instead of several charter_hotel calls. Hotels not in the cache are listed in not_found (do NOT say they are unavailable — the cache only holds recently searched offers). CACHED prices (from recent real searches on flytravel.al — not a live query; every row carries cached_at/age_minutes). Charter prices are PACKAGE TOTALS in EUR for the row's "party" (flight + hotel + transfers), NOT per person. party_match=false means the price is the 2-adult reference, not the total for the requested party — say so. A price belongs ONLY to its own "date": never present it as the price of another date.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Departure date, format YYYY-MM-DD (recommended). | |
| adults | No | Number of adults (default 2). | |
| hotels | Yes | Hotel names (or parts of them). | |
| nights | No | Trip length in nights. Omit for the standard charter length (6 nights / 7 days). Most departures also sell 3-10 nights. | |
| destination | No | Optional destination key ('antalya', 'bodrum'). | |
| children_ages | No | Age of each child AT DEPARTURE (0-14 = child; 15+ is counted as an adult automatically). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark the tool as read-only and idempotent, and the description adds substantial behavioral context: prices are cached, not live; not_found does not mean unavailable; party_match=false means the price is the 2-adult reference; and prices are package totals, not per-person. No contradiction with annotations exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence earns its place: it front-loads the core comparison purpose and then layers essential caveats about cache behavior, not_found handling, package totals, party matching, and date scoping. The structure supports both initial selection and correct result interpretation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description compensates by listing key output elements: cached price, party_match, cached_at, stars, zone, board, room, features, and booking link. It also covers edge behaviors like not_found and the date-price association, making the tool safe to invoke and interpret correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Although the input schema covers all parameters, the description adds critical meaning beyond the schema: it defines the 'party' concept, explains party_match=false, clarifies that prices are not per-person, and insists that a price belongs only to its own date. This directly improves correct interpretation of date, adults, and children_ages.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with 'Side-by-side comparison of 2-6 named hotels for a date and party' and then enumerates the exact output fields, so the tool's purpose is immediate and specific. It also explicitly distinguishes itself from 'several charter_hotel calls', which separates it from its siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly names charter_hotel as the alternative and frames compare_hotels as the one-call replacement for comparing multiple hotels. It also gives clear cautions about cached vs. live data, not_found semantics, and the instruction to never present one date's price as another date's price.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
holiday_packagesHoliday packages (bus/flight + hotel) — destinations & datesARead-onlyIdempotentInspect
Our NON-charter holiday packages from Tirana (flight+hotel or bus+hotel: Corfu, Parga, Crete, Malta, Barcelona, Mallorca, Rimini…): which destinations are on sale right now, their validated upcoming departure dates, an INDICATIVE "from €X per person" price and the booking page link. The exact price depends on hotel/room/party and is computed live on the package page (link) — never present price_from as a bookable quote. For Turkey/Egypt beach charters (Antalya, Bodrum…) use the charter_* tools instead. Cached/validated data only, no live call.
| Name | Required | Description | Default |
|---|---|---|---|
| date_to | No | Only departures on/before this date (YYYY-MM-DD). | |
| date_from | No | Only departures on/after this date (YYYY-MM-DD). | |
| destination | No | Package destination key from the no-argument listing (e.g. 'korfuz', 'barcelona', 'kreta'). Omit to list every destination. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint, idempotentHint, and destructiveHint, and the description adds valuable behavior beyond that: it is cached/validated data with no live call, the price is INDICATIVE and must never be presented as a bookable quote, and the exact price is computed live on the package page. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded with scope ('NON-charter holiday packages from Tirana'), then moves through destinations, dates, pricing caveat, charter routing, and cached nature. The destination list is slightly long but serves disambiguation. Every sentence contributes, so only minor verbosity keeps it from a 5.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, cached listing tool with no output schema, the description fully conveys what will be returned: on-sale destinations, validated departure dates, indicative price, and booking link. It also communicates the critical price caveat and the no-live-call behavior. Combined with annotations and full schema coverage, an agent has what it needs to invoke and interpret this tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input-schema covers all parameters with descriptions (100% coverage), including the YYYY-MM-DD pattern for date_to. The description reinforces 'departure dates' and 'validated upcoming departures,' but it does not add new parameter syntax or semantics beyond what the schema already provides. This was the correct baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb+resource: it lists NON-charter holiday packages from Tirana (flight+hotel or bus+hotel), including on-sale destinations, validated departure dates, indicative price, and booking link. The word NON-charter and the explicit charter_* mention distinguish it from its main sibling group, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly redirects: 'For Turkey/Egypt beach charters (Antalya, Bodrum…) use the charter_* tools instead.' It also frames the scope as NON-charter packages, and the cached/no-live-call statement sets expectations for when it is appropriate. The primary alternative tool group is named directly, so an agent can route correctly.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hotel_detailsHotel facts (facilities, features)ARead-onlyIdempotentInspect
Static facts we hold about ONE charter hotel: stars, zone, provider-tagged categories, tri-state features (aquapark, kids_club, kids_pool, beach, private_beach, spa, adults_only, luxury, night_entertainment, water_slides — true/false/null where null = unknown), the facility list and a short description. FACTS ONLY: never claim a feature that is null/absent; distances to beach/airport are NOT available — do not estimate them. No prices here (use charter_hotel). Cache/DB read, no live call.
| Name | Required | Description | Default |
|---|---|---|---|
| hotel | Yes | Hotel name, or part of it. | |
| destination | No | Optional destination key ('antalya', 'bodrum'). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds meaningful behavioral context beyond that: it is a cache/DB read with no live call, features are tri-state with null meaning unknown, distances are not available and must not be estimated, and features must not be claimed when null/absent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact but information-dense, starting with the core facts, then the feature semantics, then the key limitations and the alternative tool. Every sentence earns its place, and the most important constraints are front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, but the description enumerates the return content (stars, zone, categories, features, facility list, description) and clarifies edge-case semantics like null features and unavailable distances. For a simple two-parameter read tool, this is complete enough for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents both the hotel and destination parameters. The description does not add parameter-level meaning beyond confirming the single-hotel scope, so the baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb and resource: it holds static facts about one charter hotel, enumerating exactly what facts (stars, zone, categories, features, facility list, description). It also differentiates itself from siblings by explicitly stating 'No prices here (use charter_hotel)'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description clearly states the scope is 'ONE charter hotel' and explicitly routes price lookups to charter_hotel. It doesn't contrast with compare_hotels or other siblings, but the single-hotel facts-only framing gives an agent clear enough context for when to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
prices_digestFull live-price digestARead-onlyIdempotentInspect
Today's full machine-readable price digest (charter packages, tours, guides, FAQ) — same content as https://flytravel.al/llms-full.txt (cached, rebuilt hourly). Overview only; for any specific hotel/date/party use the charter_* tools.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds useful behavioral context beyond annotations: the digest is cached and rebuilt hourly, and it is overview-only rather than a detailed per-hotel source.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single dense sentence that front-loads the main purpose, then adds source, caching behavior, and routing guidance. Every clause earns its place; there is no filler or repetition of schema/annotation information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter, read-only, idempotent digest tool, the description is complete: it states content scope, freshness, source URL, and when not to use it. The return structure is not detailed, but the URL reference and 'machine-readable' characterization provide sufficient guidance for an agent to invoke and interpret the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has zero parameters and the schema fully covers that, so there is nothing for the description to add. The baseline of 4 applies because no parameter documentation burden exists.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific purpose: returning today's full machine-readable price digest covering charter packages, tours, guides, and FAQ. It also explicitly distinguishes this overview tool from the charter_* tools, so an agent can separate it from siblings without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear routing guidance: use this for an overall digest, and use charter_* tools for any specific hotel/date/party query. This explicit when-not-to-use instruction plus named alternatives is exactly what an agent needs.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tour_detailsOrganized tour details (dates, program, price)ARead-onlyIdempotentInspect
Full cached details for ONE organized group tour: the COMPLETE departure-date calendar, the day-by-day program as text, duration, transport, and the per-person price. Match by tour (part of the name/cities, e.g. "Stamboll", "Milano Como") or exact tour_id from tours_list. Pass date + the party when the user has them: when that departure's group price is warm in cache you get the EXACT group total (price_status=cached_for_date); otherwise price_from is the PER PERSON price of the NEAREST departure (price_status=list_from) — every departure date has its OWN price, never quote one date's price for another; tour_page prices any date live. Answer date questions ONLY from departure_dates — it is the complete current calendar. Seats/availability are confirmed by staff. Cache/DB read, no live call.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | Desired departure date, YYYY-MM-DD — checked against the calendar and baked into tour_page. | |
| tour | No | Tour name or city, or part of it (e.g. "Stamboll", "Dubai"). | |
| adults | No | Number of adults (default 2). | |
| tour_id | No | Exact tour id from tours_list (preferred when known). | |
| children_ages | No | Age of each child, 0-11 (TOURS price 12+ as adults — a DIFFERENT bracket than charter packages). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are already strong (readOnly, idempotent, non-destructive), and the description adds significant behavioral detail: cache behavior, 'cached_for_date' vs 'list_from' pricing, the 'nearest departure' fallback, the per-date price rule, and the complete departure-date calendar. This gives an agent accurate expectations beyond what annotations convey.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every sentence earns its place: scope, matching, pricing semantics, date-calendar authority, availability caveat, and cache/no-live-call nature. It is front-loaded with the core purpose and progressively layers the caveats an agent needs to avoid errors.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only tool with no output schema, the description covers all critical operational details: what data is returned, how to identify the tour, how pricing behaves for specific dates, what not to do with dates, and where live pricing/availability live outside this tool. It is sufficient for correct invocation and response reasoning.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description enriches several parameters: 'tour' matching semantics with examples, exact 'tour_id' from tours_list, and how 'date' plus party affects pricing ('cached_for_date' exact total vs 'list_from' nearest departure). It also explains a critical constraint: every departure date has its own price, adding real semantic value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a clear resource ('ONE organized group tour') and enumerates the exact content returned: departure-date calendar, day-by-day program, duration, transport, price. It also distinguishes itself from sibling categories by emphasizing 'organized group tour' and 'Cache/DB read, no live call', so an agent can tell it apart from list-like or charter tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives practical invocation guidance: match by 'tour' fragment or exact 'tour_id' from tours_list, pass 'date' and party when available, and use 'tour_page' for live pricing of any date. It also states exclusions, such as 'Seats/availability are confirmed by staff', which prevents misuse. It does not explicitly enumerate every sibling alternative, but the context and exclusions are clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tours_listOrganized group tours (cheapest first)ARead-onlyIdempotentInspect
Escorted group tours from Tirana with Albanian-speaking guides (cached catalogue): stable id, title, days/nights, cities, transport, next_departure and the PER PERSON price in EUR — unlike charter packages, tour prices are per person. For one tour's full calendar, program and date-specific price use tour_details.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max tours to return (default 10). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds valuable context beyond annotations by disclosing that the catalogue is cached, that IDs are stable, and that prices are per person rather than per package. This helps the agent set expectations about data freshness and price interpretation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but every clause carries useful information: scope, guide language, cache status, field list, pricing rule, and sibling routing. The most important identifying details are front-loaded, and the alternative tool is mentioned at the end without bloat.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple, read-only list tool with one optional parameter and no output schema, the description is complete. It enumerates the returned fields, clarifies sorting via the title, notes the cache behavior, and directs the agent to tour_details for deeper information. Nothing essential is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers the single optional limit parameter fully with a description including default and constraints. The tool description does not need to repeat this, so the baseline of 3 is appropriate. No additional parameter meaning is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists escorted group tours from Tirana with Albanian-speaking guides and specifies the exact fields returned. It further distinguishes itself from charter packages by noting per-person pricing, and points to tour_details for a single tour's full details. This leaves no ambiguity about what the tool does or how it differs from siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells the agent to use tour_details when a single tour's full calendar, program, or date-specific price is needed. It also contrasts tours_list with charter packages, clarifying that price semantics differ. This is strong routing guidance that helps the agent choose the correct tool.
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.
3 tool updates
- Changed
charter_dates7 fields changed- added
Input schema / properties / adultsAdded value: +{ + "description": "Number of adults (default 2).", + "maximum": 6, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / children_agesAdded value: +{ + "description": "Age of each child AT DEPARTURE (0-14 = child; 15+ is counted as an adult automatically).", + "items": { + "maximum": 17, + "minimum": 0, + "type": "integer" + }, + "maxItems": 6, + "type": "array" +} - added
Input schema / properties / date_fromAdded value: +{ + "description": "Only departures on/after this date (YYYY-MM-DD).", + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" +} - added
Input schema / properties / date_toAdded value: +{ + "description": "Only departures on/before this date (YYYY-MM-DD).", + "pattern": "^\\d{4}-\\d{2}-\\d{2}$", + "type": "string" +} - added
Input schema / properties / limitAdded value: +{ + "description": "Max dates to return (default 20).", + "maximum": 60, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / monthAdded value: +{ + "description": "Whole-month window, e.g. '2026-09' (ignored when date_from/date_to given).", + "pattern": "^\\d{4}-\\d{2}$", + "type": "string" +} - added
Input schema / properties / nightsAdded value: +{ + "description": "Trip length in nights. Omit for the standard charter length (6 nights / 7 days). Most departures also sell 3-10 nights.", + "maximum": 21, + "minimum": 2, + "type": "integer" +}
- Added
holiday_packages - Added
tour_details
6 tool updates
- Changed
booking_link5 fields changed- changed
Input schema / properties / children_ages / descriptionPrevious value: -"Age of each child at the departure date (0-14; 15+ counts as an adult)."New value: +"Age of each child AT DEPARTURE (0-14 = child; 15+ is counted as an adult automatically)." - added
Input schema / properties / children_ages / items / maximumAdded value: +17 - added
Input schema / properties / children_ages / items / minimumAdded value: +0 - added
Input schema / properties / children_ages / maxItemsAdded value: +6 - added
Input schema / properties / nightsAdded value: +{ + "description": "Trip length in nights. Omit for the standard charter length (6 nights / 7 days). Most departures also sell 3-10 nights.", + "maximum": 21, + "minimum": 2, + "type": "integer" +}
- Added
charter_flexible_dates - Changed
charter_hotel6 fields changed- changed
Input schema / properties / children_ages / descriptionPrevious value: -"Age of each child at departure (0-14; 15+ counts as an adult)."New value: +"Age of each child AT DEPARTURE (0-14 = child; 15+ is counted as an adult automatically)." - added
Input schema / properties / children_ages / items / maximumAdded value: +17 - added
Input schema / properties / children_ages / items / minimumAdded value: +0 - added
Input schema / properties / children_ages / maxItemsAdded value: +6 - changed
Input schema / properties / date / descriptionPrevious value: -"Optional desired departure date, format YYYY-MM-DD — baked into the returned links."New value: +"Desired departure date, format YYYY-MM-DD — exact-date cache is checked and the date is baked into the links." - added
Input schema / properties / nightsAdded value: +{ + "description": "Trip length in nights. Omit for the standard charter length (6 nights / 7 days). Most departures also sell 3-10 nights.", + "maximum": 21, + "minimum": 2, + "type": "integer" +}
- Changed
charter_offers13 fields changed- added
Input schema / properties / adultsAdded value: +{ + "description": "Number of adults (default 2).", + "maximum": 6, + "minimum": 1, + "type": "integer" +} - added
Input schema / properties / adults_onlyAdded value: +{ + "description": "true = only adults-only hotels; false = EXCLUDE adults-only hotels (use false for any party with children).", + "type": "boolean" +} - added
Input schema / properties / aquaparkAdded value: +{ + "description": "true = only hotels with an aquapark / water park.", + "type": "boolean" +} - added
Input schema / properties / beachAdded value: +{ + "description": "true = only hotels with a beach (own or nearby, per the hotel facts).", + "type": "boolean" +} - changed
Input schema / properties / budget_total_max / descriptionPrevious value: -"Max TOTAL budget in EUR for 2 adults."New value: +"Max TOTAL budget in EUR for the whole party." - added
Input schema / properties / children_agesAdded value: +{ + "description": "Age of each child AT DEPARTURE (0-14 = child; 15+ is counted as an adult automatically).", + "items": { + "maximum": 17, + "minimum": 0, + "type": "integer" + }, + "maxItems": 6, + "type": "array" +} - added
Input schema / properties / family_friendlyAdded value: +{ + "description": "true = only hotels with family facilities (kids club / kids pool / family rooms) and not adults-only.", + "type": "boolean" +} - added
Input schema / properties / kids_clubAdded value: +{ + "description": "true = only hotels with a kids / mini club.", + "type": "boolean" +} - added
Input schema / properties / luxuryAdded value: +{ + "description": "true = only hotels tagged luxury.", + "type": "boolean" +} - added
Input schema / properties / nightsAdded value: +{ + "description": "Trip length in nights. Omit for the standard charter length (6 nights / 7 days). Most departures also sell 3-10 nights.", + "maximum": 21, + "minimum": 2, + "type": "integer" +} - added
Input schema / properties / private_beachAdded value: +{ + "description": "true = only hotels listing a private / own beach.", + "type": "boolean" +} - added
Input schema / properties / spaAdded value: +{ + "description": "true = only hotels with spa / Turkish bath / sauna.", + "type": "boolean" +} - changed
Input schema / properties / zone / descriptionPrevious value: -"Zone/resort filter substring, e.g. 'Belek', 'Alanya'."New value: +"Zone/resort filter substring, e.g. 'Belek', 'Alanya', 'Lara', 'Side', 'Kemer'."
- Added
compare_hotels - Added
hotel_details
7 tool updates
- First observed
booking_link - First observed
charter_cheapest - First observed
charter_dates - First observed
charter_hotel - First observed
charter_offers - First observed
prices_digest - First observed
tours_list
Related MCP Connectors
Realtime package holiday and charter flight prices from Norway. Inventory not on Google Flights.
Realtime package holiday and charter flight prices from Finland. Inventory not on Google Flights.
Realtime package holiday and charter flight prices from Sweden. Inventory not on Google Flights.
Realtime package holiday and charter flight prices from Denmark. Inventory not on Google Flights.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceBook hotels worldwide — search, price, prebook & book across 249 countries. 65 tools for hotel search, flights, loyalty, analytics. Zero API keys needed. at best prices for hotels 3 M+ property6 npm1MIT
- AlicenseNot gradedqualityCmaintenanceProvides group air travel booking and flight search via IATA-accredited services, supporting group quotes and flight fares.MIT

autonomad-travelofficial
AlicenseAqualityDmaintenanceAI travel agent over MCP — live flights, hotels, activities, and events worldwide, then completes the booking on autonomad.ai.8239 npm2MIT- FlicenseNot gradedqualityDmaintenanceAI commerce platform — WooCommerce store products, flights, tours, activities and local transport via MCP. Search, availability and booking tools. No auth for public endpoint.-
Glama MCP Gateway
Add one secure layer between your agents and this server.