Skip to main content
Glama

Free Flight and Hotel Search (no API key)

Server Details

Free flight and hotel search, no API key. Ad-supported; paid tiers remove ads and caps.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL
Repository
mtnrabi/travel-agent-skills
GitHub Stars
0

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.4/5 across 4 of 4 tools scored.

Server CoherenceA
Disambiguation5/5

The four tools cover completely separate domains: hotel search by name, hotel search by destination, one-way flights, and round-trip flights. There is no ambiguity between searching hotels versus flights, or between one-way and round-trip flight searches. Each tool has a clearly distinct purpose and input structure.

Naming Consistency4/5

The naming follows a consistent pattern of verb_noun: find_hotel_by_name, search_hotels, search_oneway_flights, search_roundtrip_flights. The slight inconsistency is that two hotel tools use different verbs ('find' vs 'search') when they could both use 'search', but this is a minor deviation and the purpose remains clear.

Tool Count5/5

Four tools is perfectly scoped for a free flight and hotel search server. Each tool covers a core function (hotel by name, hotel by destination, one-way flights, round-trip flights) without unnecessary overhead. The count is neither too sparse nor too heavy, and each tool clearly earns its place in the set.

Completeness4/5

The tool set covers the essential search operations for hotels and flights: hotel lookup by name, hotel search by destination, one-way flight search, and round-trip flight search. A minor gap is the lack of a direct tool for searching hotels by location/coordinates or filtering by amenities, but for a free-tier server focused on quick searches, this is acceptable. Missing delete/update operations are expected since this is a search-only service.

Available Tools

4 tools
find_hotel_by_nameAInspect

Get availability and pricing for one named property. Input: the hotel name a person would type (adding the city helps when a chain has many properties) plus check-in and check-out dates -- no internal property ID needed.

Returns the property's price, review score, room type and a booking link. Rates go stale within minutes.

FREE TIER: ad-supported. The paid server at https://hotels.flightpowers.com/mcp adds per-country pricing, filters, and no ads.

ParametersJSON Schema
NameRequiredDescriptionDefault
adultsNo
childrenNo
currencyNo
hotel_nameYes
checkin_dateYes
checkout_dateYes

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

Since no annotations exist, the description must fully disclose behavior. It states that rates go stale within minutes (a critical perishability warning). It also describes the free tier limitations (ads) and how to get an ad-free, filtered version via a paid server. This is valuable behavioral context.

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

Conciseness5/5

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

The description is remarkably efficient: three short paragraphs, each with a clear role—input, output+staleness, tier info. Every sentence serves a purpose. There is no fluff. Information is front-loaded with the most critical usage guidance first.

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

Completeness4/5

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

Given the tool's moderate complexity (6 params, 3 required, no nested objects) and the presence of an output schema (which explains return values), the description covers the essential aspects: input format, output content, staleness, and tier restrictions. The only missing detail is guidance on date formats (YYYY-MM-DD vs others) and optional params like adults, children, currency. Still, for a hotel lookup tool, this is highly usable.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It explains hotel_name (free-form, include city for clarity), checkin_date and checkout_date as dates, and what the function returns (pricing, review score, room type, booking link). While adults, children, and currency are not detailed, the overall purpose and output are clear. The description adds meaning well beyond the bare 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?

The description starts with a specific verb ('Get') and resource ('availability and pricing for one named property'), clearly distinguishing it from sibling tools like search_hotels (which likely handles multi-property or broader searches). It immediately explains the input and even adds practical guidance about adding the city for chain hotels.

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?

The description explicitly tells the user to use hotel_name as a person would type it and suggests adding the city for chain properties. It also informs about the free vs paid tier, helping decide when this tool is sufficient. However, it doesn't explicitly contrast with search_hotels or say when not to use it.

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

search_hotelsAInspect

Search live hotel availability and nightly prices for a destination and date range. Input: a free-text destination the way a person would say it ("Rome", "Tokyo Shibuya"), plus check-in and check-out dates.

Returns each property's price, review score, room type and a booking link. Rates go stale within minutes -- never reuse an earlier result, search again.

FREE TIER: this is the ad-supported server. For rate-parity pricing by country, the 24 Booking.com filters, no ads and no caps, use the paid server at https://hotels.flightpowers.com/mcp

ParametersJSON Schema
NameRequiredDescriptionDefault
adultsNo
childrenNo
currencyNo
destinationYes
checkin_dateYes
checkout_dateYes
budget_per_nightNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior3/5

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

There are no annotations, so the description carries the full burden. It discloses that the tool is ad-supported (free tier) and that results are transient, but it doesn't mention whether the tool is read-only or has any destructive side effects, though such are unlikely for a search tool. The transparency is adequate but could be more explicit about behavior like rate limits or caching.

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

Conciseness4/5

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

The description is concise at about 80 words, with clear front-loading of the main purpose. Every sentence adds value, though the second line about return format could be slightly shortened. The final line about the paid server is a helpful distinction but might be considered promotional. Overall well-structured and efficient.

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

Completeness4/5

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

The description covers the main purpose, input semantics, and staleness warning, which is sufficient for a search tool. It lacks details about output (but there is an output schema) and doesn't mention error conditions or input constraints like date formats. The completeness is good but not exhaustive.

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?

The schema has 0% description coverage, so the description compensates well by explaining that 'destination' is free-text as a person would say it and giving examples. It also clarifies that 'checkin_date' and 'checkout_date' are dates for the stay. However, it doesn't mention other parameters like 'adults', 'children', 'currency', or 'budget_per_night', which are self-explanatory but still benefit from confirmation. The description adds significant value over the bare 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?

The description clearly states the verb (search) and resource (hotels), specifying it returns live availability and nightly prices. It distinguishes itself from siblings like find_hotel_by_name and flight searches by focusing on hotels and dates.

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

Usage Guidelines5/5

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

The description explicitly tells the agent when to use this tool (for live hotel availability), warns that rates go stale within minutes and must be searched again, and provides an alternative for paid users with more features and no caps.

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

search_oneway_flightsAInspect

Search real-time one-way flights from Google Flights.

IMPORTANT: for any flexible search, make ONE call with a date range and/or several destinations. Do NOT call this repeatedly, once per date -- pass departure_date_from and departure_date_to and the server searches the range for you. 'Cheapest flight to Sri Lanka anywhere in October' is one call, not thirty.

FREE TIER LIMIT: one call searches at most 15 date x destination combinations. A wider request is not rejected -- it is sampled evenly across the range and comes back with truncated: true and the exact list of dates searched in search_coverage.departure_dates_searched. Check that list before assuming a date has no flights: a missing date was never searched, which is not the same as having no results.

Returns each flight with price, duration, airline, stops, a bookable buy_link, and Google's historical price range (price_insights_low / price_insights_high) so you can say whether a fare is a good deal.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sort_byNobest
currencyNousd
max_priceNo
max_stopsNo
seat_typeNo
passengersNo
to_airportYes
from_airportYes
use_fallbackNo
airline_codesNo
departure_dateNo
arrival_time_maxNo
arrival_time_minNo
departure_date_toNo
departure_time_maxNo
departure_time_minNo
departure_date_fromNo
exclude_airline_codesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior4/5

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

No annotations are provided, so the description carries full responsibility. It effectively discloses key behavioral traits: the tool samples evenly across wide requests if limits are exceeded, returns a 'truncated' flag, and provides a 'search_coverage' field that lists exactly which dates were searched. It also clarifies that missing dates indicate no search occurred, not no results. A point is deducted because it does not mention authentication requirements, rate limits, or data freshness.

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?

The description is mostly concise but front-loads a critical usage guideline with 'IMPORTANT' block, which is good. However, it includes semi-redundant information about free tier limits and response fields that could be shortened or structured. The three-paragraph structure is clear but could be more compact, as some sentences (e.g., the note about 'a missing date') are slightly verbose for an AI agent.

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

Completeness4/5

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

Given the tool's complexity (19 parameters, free tier limits, truncated responses) and the availability of an output schema (which defines return values), the description covers key behavioral and usage aspects well. It explains how to handle flexible searches, what to check in responses, and what return fields exist. A point is deducted because it omits details on authentication, rate limiting, or how to handle errors like no results (beyond noting missing dates).

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It adds meaning for key parameters: 'departure_date_from' and 'departure_date_to' are explained in the context of flexible searches, and 'limit,' 'sort_by,' and 'currency' are implicitly used. It also explains the output fields like 'price_insights_low/high,' linking to return values. However, many parameters (e.g., 'max_price,' 'seat_type,' 'airline_codes') are not described, missing an opportunity to fully compensate for the low coverage.

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 clearly states the tool searches 'real-time one-way flights from Google Flights,' specifying both the verb ('search') and the resource ('one-way flights'). The IMPORTANT section explicitly distinguishes this from making multiple calls and contrasts it with roundtrip_flights via the tool name itself, ensuring no confusion with its sibling tools.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance: it warns against repeated calls for flexible searches, directing users to use date ranges and multiple destinations in one call. It also details the free tier limit of 15 combinations and the 'truncated' behavior, telling the agent when this tool is appropriate and how to interpret results. No alternatives are named, but the context of sibling tools (like search_roundtrip_flights) implicitly guides selection.

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

search_roundtrip_flightsAInspect

Search real-time round-trip flights from Google Flights, priced as paired legs rather than two separate one-ways.

IMPORTANT: for any flexible search, make ONE call. Pass departure_date_from / departure_date_to for a departure range, and nights instead of return_date to search trip lengths -- '5 to 7 nights in Rome sometime in May' is one call.

FREE TIER LIMIT: one call searches at most 15 departure-date x nights combinations. A wider request is sampled evenly rather than rejected, and returns truncated: true plus the exact dates searched in search_coverage.departure_dates_searched. A date absent from that list was never searched -- which is not the same as having no flights.

Returns total price for both legs, per-leg airline, stops and duration, and a single bookable buy_link covering the trip.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
nightsNo
sort_byNobest
currencyNousd
max_priceNo
seat_typeNo
passengersNo
to_airportYes
return_dateNo
from_airportYes
use_fallbackNo
departure_dateNo
max_return_stopsNo
departure_date_toNo
departure_date_fromNo
max_departure_stopsNo
return_airline_codesNo
departure_airline_codesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription

No output parameters

Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It details real-time data sourcing, pricing as paired legs, the free tier limit of 15 departure-date × nights combinations, sampling behavior, the 'truncated' field, and 'search_coverage.departure_dates_searched'. It also describes the return format including total price, per-leg airline/stops/duration, and a bookable buy_link. This is comprehensive.

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

Conciseness5/5

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

The description is front-loaded with the core purpose, then provides important usage guidance, free tier behavior, and return format in a clear, well-organized manner. Every sentence adds distinct value, and there is no fluff. It is appropriately sized for the tool's complexity.

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

Completeness3/5

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

Given 18 parameters, 0% schema description coverage, no annotations, and an output schema (which reduces the need to describe return values), the description covers the most critical behavioral aspects (flexible search, free tier sampling) and return structure. However, it does not explain many parameter semantics, which limits completeness for an agent trying to use all features. The presence of an output schema partially mitigates this, but the description could still be more thorough.

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 0%, so the description must compensate. It adds meaning for key parameters like departure_date_from, departure_date_to, nights, and return_date, explaining their usage in flexible searches. However, it does not describe the other 14 parameters (limit, sort_by, currency, max_price, seat_type, passengers, etc.), leaving the agent to infer from names alone. The description adds value for the most important parameters but is insufficient for the full set.

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 clearly states the tool's purpose: 'Search real-time round-trip flights from Google Flights, priced as paired legs rather than two separate one-ways.' It uses a specific verb and resource, and explicitly distinguishes from the sibling 'search_oneway_flights' by emphasizing the round-trip nature and paired pricing.

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?

The description provides strong usage guidance, including an 'IMPORTANT' note on making a single call for flexible searches, how to use departure_date_from/to and nights instead of return_date, and the free tier limit with sampling behavior. It does not explicitly state when not to use the tool, but the context and sibling names make the round-trip vs. one-way distinction clear.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.