Skip to main content
Glama

Server Details

Tripuck — Flight Meta-Search & Meeting Point

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

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 7 of 7 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool targets a distinct travel need: flight search, hotel search, eSIM search, price calendar, popular routes, meeting point coordination, and flight details. No two tools overlap in their core function; even cheapest_dates vs search_flights are clearly separated by use case (flexible date overview vs specific trip search).

Naming Consistency4/5

All tool names use lowercase snake_case and are reasonably descriptive. There is a mix of verb-first (search_flights, search_hotels, search_esim, find_meeting_point) and noun/adjective-first (cheapest_dates, popular_routes, flight_details), but the pattern is consistent enough that an agent can predict naming conventions.

Tool Count5/5

Seven tools is well-scoped for a travel search server. Each tool serves a distinct and valuable purpose, covering flights, hotels, eSIM, inspiration, and group coordination without bloat or redundancy.

Completeness4/5

The tool surface covers the core travel search lifecycle: search flights, search hotels, search eSIM, plus helpful extras like cheapest dates and popular routes. Minor gaps exist—for example, no hotel details tool or car rental search—but these are not fatal for the server's primary search-driven purpose.

Available Tools

7 tools
cheapest_datesTripuck Cheapest DatesA
Read-onlyIdempotent
Inspect

Tripuck price calendar — for a given route, returns the cheapest daily price across a full month. Use this when the user shows date flexibility: "when is the cheapest day to fly IST-AYT in April?", "hangi gün daha ucuz?", "أرخص يوم للسفر", "günstigste Tage für...". Use when the user asks about cheap days, flexible travel windows, or month-level price overviews. The LLM MUST infer the user language from the conversation and pass it via the locale parameter ("tr" Turkish, "en" English, "ar" Arabic, "az" Azerbaijani, "de" German, "ka" Georgian, "uz" Uzbek). All widget UI text and the text response are then returned in that language. If currency is not specified, a sensible default is picked from the locale (tr→TRY, en→USD, de→EUR, ar→USD, az→AZN, ka→GEL, uz→UZS).

ParametersJSON Schema
NameRequiredDescriptionDefault
monthNoTarget month in YYYY-MM. If omitted, the current month is used.
marketNoMarket / language code — controls pricing source and widget language. User language as BCP-47 or 2-letter code. Supported: "tr" Turkish, "en" English, "ar" Arabic, "az" Azerbaijani, "de" German, "ka" Georgian, "uz" Uzbek. The LLM MUST infer this from the conversation and pass it explicitly; widget UI and response text will be rendered in this language.
oneWayNoOne-way search. If false, round-trip prices are returned.
originYesDeparture IATA code.
currencyNoISO 4217 currency code. Examples: TRY, USD, EUR, AZN, GEL, UZS. If omitted, a sensible default is picked from the locale (tr→TRY, en→USD, de→EUR, ar→USD, az→AZN, ka→GEL, uz→UZS).
destinationYesArrival IATA code.
tripDurationNoTrip length in days for round-trip (used when oneWay=false).
Behavior4/5

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

Annotations already declare readOnlyHint, openWorldHint, idempotentHint, and destructiveHint, so safety profile is covered. The description adds valuable behavioral context beyond annotations: it explains that the response and widget UI are localized based on the inferred language, and that currency defaults are derived from locale. This enriches the agent's understanding of dynamic behavior.

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 relatively concise and front-loaded with the main function. It includes a few multilingual examples which, while useful, add length. Overall, every sentence contributes value without unnecessary fluff.

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

Completeness4/5

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

Given the tool's complexity (7 params, no output schema), the description provides sufficient context for correct invocation: route, month, language inference, currency defaults, and one-way/round-trip behavior. It does not describe the output format in detail, but this is partially mitigated by good parameter documentation and annotations.

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 parameters are already well-documented. The description adds some emphasis on the locale parameter (MUST infer) and explains currency defaults, which are also in the schema. It does not significantly expand on parameter semantics beyond what the schema provides, hence the baseline 3.

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 identifies the tool as a price calendar for a given route returning cheapest daily prices across a full month. It uses a specific verb ('returns'), specifies the resource ('cheapest daily price'), and clearly distinguishes from siblings like search_flights and flight_details by focusing on month-level flexibility and cheapest days.

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?

Provides explicit usage guidance with clear examples ('when the user shows date flexibility', 'cheap days', 'flexible travel windows') and sample queries in multiple languages. However, it does not explicitly mention when not to use this tool or alternative tools, so it falls short of a 5 but is clearly above a 3.

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

find_meeting_pointTripuck Meeting PointA
Read-onlyIdempotent
Inspect

Tripuck Meeting Point — finds the cheapest and fairest common destination for 2-5 people traveling from different cities. Example: "I'm in Istanbul, my friend is in Berlin, one is in Dubai — where should we meet?", "İstanbul, Berlin, Dubai nerede buluşalım?", "نحن في مدن مختلفة، أين نلتقي؟". Runs multi-city optimization and computes a fairness score across the group. Use when the user asks to coordinate a trip across multiple origins and needs a shared destination. The LLM MUST infer the user language from the conversation and pass it via the locale parameter ("tr" Turkish, "en" English, "ar" Arabic, "az" Azerbaijani, "de" German, "ka" Georgian, "uz" Uzbek). All widget UI text and the text response are then returned in that language. If currency is not specified, a sensible default is picked from the locale (tr→TRY, en→USD, de→EUR, ar→USD, az→AZN, ka→GEL, uz→UZS).

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoUser language as BCP-47 or 2-letter code. Supported: "tr" Turkish, "en" English, "ar" Arabic, "az" Azerbaijani, "de" German, "ka" Georgian, "uz" Uzbek. The LLM MUST infer this from the conversation and pass it explicitly.
periodNoPeriod: "year", "season", "month" or explicit "YYYY-MM".season
sortByNo'cheapest' = minimum total cost, 'fairest' = most balanced cost across travellers (Tripuck USP), 'least-transfers' = fewest layovers.cheapest
originsYesList of origin IATA codes (2-5 cities). Example: ["IST","BER","DXB"] for three friends flying from Istanbul, Berlin and Dubai.
currencyNoISO 4217 currency code. Examples: TRY, USD, EUR, AZN, GEL, UZS. If omitted, a sensible default is picked from the locale (tr→TRY, en→USD, de→EUR, ar→USD, az→AZN, ka→GEL, uz→UZS).
directOnlyNoConsider only non-stop routes.
returnDateNoSpecific return date (optional), YYYY-MM-DD.
departureDateNoSpecific departure date (optional), YYYY-MM-DD.
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive behavior. The description adds non-obvious traits: it runs multi-city optimization, computes a fairness score, and requires locale inference with specific language mapping, plus currency defaults. This goes beyond annotations, though it omits output format details.

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 front-loads the core purpose, but includes three multilingual example queries that elongate it. It also repeats the title and some schema content, making it slightly less lean than ideal. Still, the structure is logical.

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?

The tool has 8 parameters and no output schema, so the description needs to explain behavior and return values. It covers usage and locale, but doesn't describe what the agent should do with the response (e.g., present a destination, show map, etc.). This is a notable gap given no 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 coverage is 100% and clearly documents all parameters including locale instructions and currency defaults. The description largely repeats this info (e.g., locale inference, currency mappings) without adding new parameter semantics beyond the schema. Hence baseline 3.

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 finds the cheapest and fairest common destination for 2-5 people from different cities, with concrete example queries. This specific verb+resource scope distinguishes it from sibling tools like search_flights or cheapest_dates.

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 explicitly says 'Use when the user asks to coordinate a trip across multiple origins and needs a shared destination,' providing a clear usage context. However, it doesn't name alternatives or explicitly state when not to use, so it stops short of full when/when-not guidance.

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

flight_detailsTripuck Flight DetailsA
Read-onlyIdempotent
Inspect

Detailed information for a specific Tripuck flight ID: segments, layovers, baggage allowance, fare rules, refund/change conditions, operating carrier. Use for follow-up questions after search_flights: "what is the baggage allowance on this flight?", "bu uçuşta aktarma süresi nedir?", "كم الأمتعة المسموحة؟". The LLM MUST infer the user language from the conversation and pass it via the locale parameter ("tr" Turkish, "en" English, "ar" Arabic, "az" Azerbaijani, "de" German, "ka" Georgian, "uz" Uzbek). All widget UI text and the text response are then returned in that language. If currency is not specified, a sensible default is picked from the locale (tr→TRY, en→USD, de→EUR, ar→USD, az→AZN, ka→GEL, uz→UZS).

ParametersJSON Schema
NameRequiredDescriptionDefault
adultsNoAdult passengers.
localeNoUser language as BCP-47 or 2-letter code. Supported: "tr" Turkish, "en" English, "ar" Arabic, "az" Azerbaijani, "de" German, "ka" Georgian, "uz" Uzbek. The LLM MUST infer this from the conversation and pass it explicitly; widget UI and response text will be rendered in this language.
originNoDeparture IATA code of this flight (same as the prior `search_flights` `origin`). Pass it so the "open on Tripuck" link works.
infantsNoInfant passengers.
childrenNoChild passengers.
currencyNoISO 4217 currency code. Examples: TRY, USD, EUR, AZN, GEL, UZS. If omitted, a sensible default is picked from the locale (tr→TRY, en→USD, de→EUR, ar→USD, az→AZN, ka→GEL, uz→UZS).
flightIdYesTripuck flight ID — from `flight.id` in a prior `search_flights` response.
searchKeyNo`searchKey` from a prior `search_flights` response (required to retrieve async search state).
cabinClassNoCabin class.
returnDateNoReturn date YYYY-MM-DD if the prior search was round-trip.
destinationNoArrival IATA code of this flight (same as the prior `search_flights` `destination`).
departureDateNoDeparture date YYYY-MM-DD of this flight (same as the prior `search_flights` `departureDate`).
Behavior5/5

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

Annotations already declare readOnlyHint=true and idempotentHint=true, and the description adds substantial behavioral context: the returned sections, localized UI/response text, currency fallback defaults, the requirement to pass searchKey for async search state, and the purpose of origin/destination for the Tripuck link. 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.

Conciseness4/5

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

The description is a single dense paragraph and is front-loaded with purpose, but it is somewhat long due to multilingual examples and repeated UI/text localization statements. The length is justified by the 12-parameter complexity and important localization rules, though a little trimming could improve conciseness.

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?

Despite having 12 parameters and no output schema, the description provides a complete picture: it explains prerequisites (prior search_flights), the return payload contents, localization behavior, currency defaults, and searchKey requirements. Together with 100% schema coverage, the agent has sufficient context to invoke the tool correctly.

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

Parameters5/5

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

Although schema coverage is 100%, the description goes far beyond schema descriptions by explaining how to obtain flightId and searchKey from a prior search, mandating that the LLM infer locale, defining currency defaults per locale, and clarifying the role of origin/destination. This is significant added meaning.

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 that the tool provides detailed information for a specific Tripuck flight ID and enumerates the exact content (segments, layovers, baggage, fare rules, refund/change, operating carrier). It also distinguishes itself from sibling search_flights by explicitly framing it as a follow-up tool.

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 explicit when-to-use guidance ('Use for follow-up questions after search_flights') with concrete example questions, and explains locale/currency requirements. It does not explicitly mention when not to use it or name alternative sibling tools, but the follow-up context is clear.

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

search_esimTripuck eSIM Data PlansA
Read-onlyIdempotent
Inspect

Tripuck eSIM search — prepaid travel data plans (eSIM) for a destination country, compared across multiple providers. Use this when the user asks about mobile data, internet, SIM or eSIM for a trip, e.g. "eSIM for Japan", "data plan for my trip to the US", "internet in Dubai", "Japonya için eSIM", "خطة بيانات لدبي", "Datentarif für die Türkei". Input: a destination country (the LLM maps the place to its ISO country code), with optional minimum data (GB), validity days and sorting. Returns available packages with data amount, validity, coverage and price, each deep-linking to Tripuck.com for purchase. The LLM MUST infer the user language from the conversation and pass it via the locale parameter ("tr" Turkish, "en" English, "ar" Arabic, "az" Azerbaijani, "de" German, "ka" Georgian, "uz" Uzbek). All widget UI text and the text response are then returned in that language. If currency is not specified, a sensible default is picked from the locale (tr→TRY, en→USD, de→EUR, ar→USD, az→AZN, ka→GEL, uz→UZS).

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoUser language as BCP-47 or 2-letter code. Supported: "tr" Turkish, "en" English, "ar" Arabic, "az" Azerbaijani, "de" German, "ka" Georgian, "uz" Uzbek. The LLM MUST infer this from the conversation and pass it explicitly; widget UI and response text will be rendered in this language.
sortByNoResult ordering: "price_asc" cheapest first (default), "price_desc" most expensive first, "data_desc" largest data first, "validity_desc" longest validity first.price_asc
countryYesDestination country as a 2-letter ISO 3166-1 alpha-2 code. The LLM MUST translate the country/city the user mentions to its ISO code (e.g. "Japan" → JP, "Türkiye" → TR, "the US" → US, "Dubai" → AE, "Paris" → FR).
maxDaysNoMaximum validity period in days.
minDaysNoMinimum validity period in days.
currencyNoISO 4217 currency code. Examples: TRY, USD, EUR, AZN, GEL, UZS. If omitted, a sensible default is picked from the locale (tr→TRY, en→USD, de→EUR, ar→USD, az→AZN, ka→GEL, uz→UZS).
minDataGbNoMinimum data allowance in GB (e.g. 5 for "at least 5 GB").
Behavior5/5

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

Beyond the readOnly/idempotent/openWorld annotations, the description discloses that results deep-link to Tripuck.com for purchase, and explains how locale and currency defaults affect the UI and response language. These details add meaningful operational context without contradicting the annotations.

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 long but efficient: each sentence contributes either purpose, usage triggers, parameter context, or localization behavior. It is front-loaded with the core purpose and then flows naturally into operational details, with 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?

Although there is no output schema, the description clearly states what the tool returns (packages with data amount, validity, coverage, price, deep links) and explains the localization and currency fallback behavior. For a search tool with no nested objects, this is thorough and leaves few open questions for the agent.

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?

The input schema already provides exhaustive descriptions for all 7 parameters, including locale inference, ISO country mapping, sort options, and currency defaults. The description mostly restates the same information rather than adding new meaning, so it meets the baseline for 100% schema coverage but does not exceed it.

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 opens with 'Tripuck eSIM search — prepaid travel data plans (eSIM) for a destination country, compared across multiple providers', which is a specific verb+resource+scope statement. It clearly distinguishes this tool from sibling flight/hotel/meeting-point tools by focusing on eSIM data plans.

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?

It explicitly says 'Use this when the user asks about mobile data, internet, SIM or eSIM for a trip' and provides concrete query examples in multiple languages. This gives the agent clear, actionable triggers for when to select this tool over others.

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

search_flightsSearch Flights on TripuckA
Read-only
Inspect

Tripuck flight meta-search — real-time fare comparison across 700+ airlines and 50+ online travel agencies. Use this tool when the user asks for flight prices, e.g. "Istanbul to Antalya tomorrow", "cheapest Paris ticket", "yarın Londra'ya uçuş", "رحلة إلى دبي غداً", "Flüge nach Berlin". Inputs: IATA codes (IST, AYT, LHR...) and dates in YYYY-MM-DD. Results deep-link to Tripuck.com for detailed review and booking. The LLM MUST infer the user language from the conversation and pass it via the locale parameter ("tr" Turkish, "en" English, "ar" Arabic, "az" Azerbaijani, "de" German, "ka" Georgian, "uz" Uzbek). All widget UI text and the text response are then returned in that language. If currency is not specified, a sensible default is picked from the locale (tr→TRY, en→USD, de→EUR, ar→USD, az→AZN, ka→GEL, uz→UZS).

ParametersJSON Schema
NameRequiredDescriptionDefault
adultsNoAdult passengers (12+ years).
localeNoUser language as BCP-47 or 2-letter code. Supported: "tr" Turkish, "en" English, "ar" Arabic, "az" Azerbaijani, "de" German, "ka" Georgian, "uz" Uzbek. The LLM MUST infer this from the conversation and pass it explicitly; widget UI and response text will be rendered in this language.
originYesDeparture IATA code (3 letters). Examples: "IST" Istanbul, "AYT" Antalya, "LHR" London Heathrow.
infantsNoInfant passengers (0-2 years).
childrenNoChild passengers (2-11 years).
currencyNoISO 4217 currency code. Examples: TRY, USD, EUR, AZN, GEL, UZS. If omitted, a sensible default is picked from the locale (tr→TRY, en→USD, de→EUR, ar→USD, az→AZN, ka→GEL, uz→UZS).
cabinClassNoCabin class.economy
returnDateNoReturn date in YYYY-MM-DD — only for round-trip. Must be today or future, and after `departureDate`.
destinationYesArrival IATA code (3 letters). The LLM should translate city names to IATA codes.
departureDateYesDeparture date in YYYY-MM-DD. MUST be today or in the future. IMPORTANT: do NOT default the year to your training-time "current year" — use the actual upcoming travel date the user intends; if the user does not specify a year, infer it from the conversation date context (often the current calendar year or next year).
Behavior4/5

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

The annotations already declare readOnlyHint=true and destructiveHint=false, and the description adds important behavioral context: it mandates that the LLM 'MUST infer the user language from the conversation and pass it via the locale parameter' and explains that UI text and responses are localized. It also discloses that results deep-link to Tripuck.com for booking. No contradictions.

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 well-structured, leading with the core purpose, then usage examples, input format, and language/currency behavior. Every sentence adds value, and the length is appropriate for a tool with 10 parameters. It is front-loaded with the most important information.

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?

For a tool without an output schema, the description covers the essential context: what it does, when to use it, required input formats, and how locale/currency defaults work. It also gives a hint about the response (deep-linking to Tripuck.com for review/booking). However, it doesn't describe the structure of the fare results, which would be helpful for an agent to set expectations.

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?

The input schema already covers all 10 parameters with 100% coverage, including descriptions for IATA codes, date formats, locale, and currency defaults. The description reiterates these conventions (e.g., 'Inputs: IATA codes (IST, AYT, LHR...) and dates in YYYY-MM-DD') but doesn't add new semantic meaning beyond what the schema provides. It does emphasize the mandatory inference of locale, but that's already 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?

The description opens with 'Tripuck flight meta-search — real-time fare comparison across 700+ airlines and 50+ online travel agencies,' which clearly states the tool's function (searching/comparing flight prices) and scope. It also provides concrete query examples ('Istanbul to Antalya tomorrow') and input conventions, distinguishing it from siblings like flight_details (which handles specific flight details) even though it doesn't explicitly name alternatives.

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 says 'Use this tool when the user asks for flight prices' and lists multilingual examples, making the trigger conditions clear. However, it does not mention when not to use it or reference alternatives like cheapest_dates or flight_details, so it lacks exclusions.

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

search_hotelsSearch Hotels on TripuckA
Read-onlyIdempotent
Inspect

Tripuck hotel search — real-time availability and prices for a city on given dates. Use this tool whenever the user asks about hotels, accommodation, or places to stay, e.g. "hotels in Antalya next weekend", "4-star hotel in Istanbul near Taksim", "İstanbul'da otel", "فندق في دبي", "Hotel in Berlin". Inputs: a city name plus optional check-in / check-out dates (YYYY-MM-DD) and guest counts. Supports structured filtering by minimum star rating, minimum guest-review score, and sorting. Returns live hotel options with price, star rating, review score and a thumbnail, each deep-linking to Tripuck.com for full details and booking. The LLM MUST infer the user language from the conversation and pass it via the locale parameter ("tr" Turkish, "en" English, "ar" Arabic, "az" Azerbaijani, "de" German, "ka" Georgian, "uz" Uzbek). All widget UI text and the text response are then returned in that language. If currency is not specified, a sensible default is picked from the locale (tr→TRY, en→USD, de→EUR, ar→USD, az→AZN, ka→GEL, uz→UZS).

ParametersJSON Schema
NameRequiredDescriptionDefault
cityYesDestination city or area name, e.g. "Antalya", "Istanbul", "Dubai", "Berlin". A free-text place name (not a code); it is matched to a Tripuck destination.
adultsNoNumber of adult guests (default 2).
localeNoUser language as BCP-47 or 2-letter code. Supported: "tr" Turkish, "en" English, "ar" Arabic, "az" Azerbaijani, "de" German, "ka" Georgian, "uz" Uzbek. The LLM MUST infer this from the conversation and pass it explicitly; widget UI and response text will be rendered in this language.
sortByNoResult ordering: "recommended" (default), "price_asc" cheapest first, "price_desc" most expensive first, "star_desc" highest star first, "review_score" best-rated first. When the user asks to narrow/sort, re-call with this set.recommended
checkInNoCheck-in date in YYYY-MM-DD. MUST be today or in the future. If omitted, defaults to one week from today. Do NOT default the year to your training-time current year — use the actual upcoming date the user intends.
checkOutNoCheck-out date in YYYY-MM-DD, after check-in. If omitted, defaults to the night after check-in.
childrenNoNumber of child guests (default 0).
currencyNoISO 4217 currency code. Examples: TRY, USD, EUR, AZN, GEL, UZS. If omitted, a sensible default is picked from the locale (tr→TRY, en→USD, de→EUR, ar→USD, az→AZN, ka→GEL, uz→UZS).
minStarRatingNoMinimum hotel star rating (1-5). Use when the user asks for e.g. "4-star or above".
minReviewScoreNoMinimum guest review score (0-10). Use when the user wants "highly rated" hotels.
Behavior5/5

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

Annotations already declare read-only, idempotent, and open-world traits, but the description adds valuable behavioral context beyond them: real-time availability, deep-linking to Tripuck.com, mandatory locale inference from conversation, and locale-based currency defaults. These are meaningful operational details 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.

Conciseness4/5

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

The description is moderately long but every sentence adds value: purpose, usage examples, input summary, filtering/sorting capabilities, return details, and explicit locale/currency instructions. It is front-loaded with the core purpose and examples, though the locale/currency mapping could arguably live only in the schema.

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?

Despite having 10 parameters and no output schema, the description fully completes the context: it explains what is returned (live options with price, star rating, review score, thumbnail, deep links) and how the system behaves (locale/currency defaults). No critical gaps remain for agent invocation.

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% with detailed descriptions, so baseline is 3. The description adds a helpful high-level grouping of inputs and emphasizes 'structured filtering by minimum star rating, minimum guest-review score, and sorting', which helps the agent conceptualize parameter combinations beyond individual schema entries.

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 opens with a specific verb and resource: 'Tripuck hotel search — real-time availability and prices for a city on given dates.' It clearly distinguishes this from sibling tools by focusing on hotels and accommodation, with explicit examples covering various phrasings.

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?

It provides explicit guidance: 'Use this tool whenever the user asks about hotels, accommodation, or places to stay', followed by concrete example queries. This leaves no ambiguity about when to select this tool over siblings like search_flights or search_esim.

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

  • A
    license
    A
    quality
    A
    maintenance
    GTM signal intelligence suite for AI agents. Six tools: hiring signals, tech stack detection, company-to-LinkedIn resolution, ICP scoring, job board scanning, and a combined signals aggregator. Built for outbound sales workflows.
    11
    111
    1
    MIT
  • F
    license
    -
    quality
    C
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources