Tripuck
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.
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.
Tool Definition Quality
Average 4.4/5 across 7 of 7 tools scored.
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).
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.
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.
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 toolscheapest_datesTripuck Cheapest DatesARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| month | No | Target month in YYYY-MM. If omitted, the current month is used. | |
| market | No | Market / 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. | |
| oneWay | No | One-way search. If false, round-trip prices are returned. | |
| origin | Yes | Departure IATA code. | |
| currency | No | ISO 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). | |
| destination | Yes | Arrival IATA code. | |
| tripDuration | No | Trip length in days for round-trip (used when oneWay=false). |
Tool Definition Quality
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.
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.
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.
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.
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.
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 PointARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | 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. | |
| period | No | Period: "year", "season", "month" or explicit "YYYY-MM". | season |
| sortBy | No | 'cheapest' = minimum total cost, 'fairest' = most balanced cost across travellers (Tripuck USP), 'least-transfers' = fewest layovers. | cheapest |
| origins | Yes | List of origin IATA codes (2-5 cities). Example: ["IST","BER","DXB"] for three friends flying from Istanbul, Berlin and Dubai. | |
| currency | No | ISO 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). | |
| directOnly | No | Consider only non-stop routes. | |
| returnDate | No | Specific return date (optional), YYYY-MM-DD. | |
| departureDate | No | Specific departure date (optional), YYYY-MM-DD. |
Tool Definition Quality
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.
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.
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.
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.
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.
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 DetailsARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| adults | No | Adult passengers. | |
| locale | No | 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. | |
| origin | No | Departure IATA code of this flight (same as the prior `search_flights` `origin`). Pass it so the "open on Tripuck" link works. | |
| infants | No | Infant passengers. | |
| children | No | Child passengers. | |
| currency | No | ISO 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). | |
| flightId | Yes | Tripuck flight ID — from `flight.id` in a prior `search_flights` response. | |
| searchKey | No | `searchKey` from a prior `search_flights` response (required to retrieve async search state). | |
| cabinClass | No | Cabin class. | |
| returnDate | No | Return date YYYY-MM-DD if the prior search was round-trip. | |
| destination | No | Arrival IATA code of this flight (same as the prior `search_flights` `destination`). | |
| departureDate | No | Departure date YYYY-MM-DD of this flight (same as the prior `search_flights` `departureDate`). |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
popular_routesTripuck Popular RoutesARead-onlyIdempotentInspect
Tripuck's Explore service — most popular destinations with current prices from a given origin city, aggregated from live flight inventory data. Use for inspiration-style queries where the destination is unknown: "where can I fly from Istanbul?", "İstanbul'dan nereye?", "وجهات شعبية من دبي", "populäre Reiseziele ab München". 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).
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | 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. | |
| oneWay | No | One-way search. | |
| origin | Yes | Departure IATA code. | |
| period | No | Period: "year" (12 months), "season" (3 months), "month", or explicit "YYYY-MM". | season |
| currency | No | ISO 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). | |
| directOnly | No | Return only non-stop routes. | |
| maxTripDays | No | ||
| minTripDays | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnly/idempotent annotations, the description adds valuable behavior: it aggregates from 'live flight inventory data', explains that UI text and responses are localized based on the `locale` parameter, and details currency defaulting. This enriches the agent's understanding of response language and 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with purpose, then examples, then instructions. It is somewhat long but every sentence contributes (examples, language/currency rules). No wasted words, though it could be tightened slightly.
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?
Given the tool's complexity (8 parameters, no output schema), the description covers the core use case, language/currency behavior, and enough context for agent selection. It doesn't detail response structure, but the concept of 'popular destinations with prices' is intuitive and the schema handles parameter specifics.
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 75%, and the description adds crucial semantic context for locale and currency, including explicit mappings (tr→TRY, en→USD, etc.) and the instruction that the LLM MUST infer the language. This goes beyond the schema's basic descriptions.
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 it is 'Tripuck's Explore service — most popular destinations with current prices from a given origin city' and explicitly says to use it for 'inspiration-style queries where the destination is unknown'. This specific verb+resource+scope distinguishes it from siblings like search_flights, which would be for known destinations.
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 usage context: 'Use for inspiration-style queries where the destination is unknown' with multiple example queries. It implies not to use when the destination is known, but does not explicitly name alternative tools, so it misses the full 'when-not' clarity.
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 PlansARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| locale | No | 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. | |
| sortBy | No | Result ordering: "price_asc" cheapest first (default), "price_desc" most expensive first, "data_desc" largest data first, "validity_desc" longest validity first. | price_asc |
| country | Yes | Destination 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). | |
| maxDays | No | Maximum validity period in days. | |
| minDays | No | Minimum validity period in days. | |
| currency | No | ISO 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). | |
| minDataGb | No | Minimum data allowance in GB (e.g. 5 for "at least 5 GB"). |
Tool Definition Quality
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.
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.
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.
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.
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.
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 TripuckARead-onlyInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| adults | No | Adult passengers (12+ years). | |
| locale | No | 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. | |
| origin | Yes | Departure IATA code (3 letters). Examples: "IST" Istanbul, "AYT" Antalya, "LHR" London Heathrow. | |
| infants | No | Infant passengers (0-2 years). | |
| children | No | Child passengers (2-11 years). | |
| currency | No | ISO 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). | |
| cabinClass | No | Cabin class. | economy |
| returnDate | No | Return date in YYYY-MM-DD — only for round-trip. Must be today or future, and after `departureDate`. | |
| destination | Yes | Arrival IATA code (3 letters). The LLM should translate city names to IATA codes. | |
| departureDate | Yes | Departure 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). |
Tool Definition Quality
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.
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.
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.
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.
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.
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 TripuckARead-onlyIdempotentInspect
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).
| Name | Required | Description | Default |
|---|---|---|---|
| city | Yes | Destination 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. | |
| adults | No | Number of adult guests (default 2). | |
| locale | No | 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. | |
| sortBy | No | Result 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 |
| checkIn | No | Check-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. | |
| checkOut | No | Check-out date in YYYY-MM-DD, after check-in. If omitted, defaults to the night after check-in. | |
| children | No | Number of child guests (default 0). | |
| currency | No | ISO 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). | |
| minStarRating | No | Minimum hotel star rating (1-5). Use when the user asks for e.g. "4-star or above". | |
| minReviewScore | No | Minimum guest review score (0-10). Use when the user wants "highly rated" hotels. |
Tool Definition Quality
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.
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.
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.
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.
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.
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.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Servers
- AlicenseAqualityAmaintenanceGTM 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.111111MIT

industrylens-mcpofficial
Flicense-qualityCmaintenanceBrowse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
Sociality MCPofficial
Alicense-qualityDmaintenanceSocial media analytics, post insights, and competitor benchmarking for AI agents.6MIT- AlicenseAqualityAmaintenanceDetects hiring intent signals by scanning job boards for specific companies. Returns structured role data for outbound sales targeting.1901MIT