mcp-server
Server Details
Travel & commerce intelligence for AI agents: search, book & price-track hotels, events, retail.
- 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.5/5 across 30 of 30 tools scored.
Each tool has a clearly distinct purpose, with detailed descriptions that specify when to use which. Overlapping tools like pricetik_search and pricetik_hotel_search are explicitly disambiguated in descriptions.
All tools follow a consistent pricetik_<surface>_<action> pattern using snake_case. No mixing of conventions, making it easy to infer function from name.
30 tools is on the higher side but each tool serves a specific purpose within a broad travel domain (hotels, activities, tickets, group trips, etc.). Well-scoped and organized.
Covers hotel search, price checking, details, reviews, rate history, deals, alerts, group trip management, itinerary export, and system health. Includes CRUD for alerts and group trips, with no obvious gaps.
Available Tools
30 toolspricetik_alternative_datesAlternative DatesARead-onlyInspect
Anchored ±N-day shifts of an intended check-in. Returns alternatives ranked by savings vs. the requested window. Different from pricetik_flexible_dates which is window-based — this tool keeps the trip duration fixed and just tests wiggle room on the start date. Cache-only.
| Name | Required | Description | Default |
|---|---|---|---|
| checkIn | Yes | Intended check-in (YYYY-MM-DD). | |
| checkOut | Yes | Intended check-out (YYYY-MM-DD). | |
| shiftDays | No | Number of days to shift in either direction (1–7, default 2). | |
| propertyId | Yes | PriceTik hotel UUID. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description adds that it is 'Cache-only,' providing further behavioral context. It also clarifies that trip duration remains fixed, which is helpful beyond the annotation's safe-read indication.
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 two sentences long with no filler. It front-loads the core purpose, adds differentiation, and ends with a usage note ('Cache-only'). Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given four well-described parameters, no output schema, and annotations indicating read-only safety, the description provides sufficient context: purpose, usage guidance, behavioral nuance (fixed duration, cache), and differentiation. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents all four parameters. The description mentions 'anchored ±N-day shifts' which maps to the shiftDays parameter, but this does not add significant new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides anchored ±N-day shifts of an intended check-in, returning alternatives ranked by savings. It explicitly distinguishes itself from the sibling pricetik_flexible_dates by contrasting fixed vs flexible duration, ensuring the agent uses the correct 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?
The description explicitly contrasts with pricetik_flexible_dates ('this tool keeps the trip duration fixed and just tests wiggle room on the start date'), providing clear guidance on when to use this tool vs. its sibling. It also notes 'Cache-only,' indicating it may not return fresh live data.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_check_availabilityCheck AvailabilityARead-onlyInspect
Lightweight 'is this rateKey still bookable?' probe. Cheaper than pricetik_hotel_price_check because it doesn't re-price — calls Hotelbeds /checkrates and returns bookable boolean, expiresAt, currentNet/currentGross, paymentType, and a freeCancellation flag. Use right before pricetik_hotel_get_booking_url to confirm a held rate.
| Name | Required | Description | Default |
|---|---|---|---|
| rateKey | Yes | HOTEL rate handle from a prior pricetik_hotel_price_check (the authoritative rateKey source; hotel-search results do not carry rateKeys). | |
| surface | No | Only 'hotel' rateKeys can be probed here. Do NOT pass activity rateKeys — those are validated automatically inside pricetik_activity_get_booking_url, so no pre-check call is needed for activities. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses behavioral traits beyond annotations: it calls Hotelbeds /checkrates, returns bookable boolean, expiresAt, currentNet/currentGross, paymentType, freeCancellation flag. No annotation contradiction.
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?
Two sentences, front-loaded with the core purpose. Every word adds value, no 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 2 params and no output schema, description fully covers purpose, usage, return values, and behavioral details. No gaps remain.
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 good descriptions. The tool description reinforces that rateKey comes from pricetik_hotel_price_check and surface must be 'hotel'. No additional semantic value added beyond 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?
Clear specific verb 'check availability' on a 'rateKey' resource. Distinguishes from pricetik_hotel_price_check by noting it's cheaper because it doesn't re-price.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'right before pricetik_hotel_get_booking_url to confirm a held rate.' Also warns not to pass activity rateKeys, directing to pricetik_activity_get_booking_url.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_compare_destinationsCompare DestinationsARead-onlyInspect
Apples-to-apples destination comparison. Pass 2–4 destinations + same date window + same guest count. Returns median 4★ nightly rate, top-3 hotels per destination by deal score, top-3 activities, and a seasonal-premium flag (event-window markers like "F1 weekend in Vegas"). Use pricetik_destinations first to resolve activity codes if you do not already have them (its activityDestinationCode field — the short Hotelbeds CODE like "LAS", not the destination UUID). Live-event tickets are not compared here — after picking a destination, bundle them via pricetik_trip_plan includeTickets=true or pricetik_ticket_search. Stricter rate limit than other tools (10/min) — fans out 2–4 parallel hotel + activity searches.
| Name | Required | Description | Default |
|---|---|---|---|
| rooms | No | Number of rooms (1–5, default 1). | |
| guests | No | Guests per room (1–10, default 2). | |
| checkIn | Yes | Check-in date (YYYY-MM-DD). | |
| checkOut | Yes | Check-out date (YYYY-MM-DD). | |
| starRating | No | Star-rating floor used for the median (1–5, default 4). | |
| destinations | Yes | 2–4 free-text destinations to compare. | |
| activityCodes | No | Hotelbeds 3-letter destination codes parallel to `destinations`. Optional — when omitted, activity-side comparison is skipped. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true, and the description does not contradict this. It adds valuable behavioral context beyond annotations: 'Stricter rate limit than other tools (10/min) — fans out 2–4 parallel hotel + activity searches.' It also describes the return format (median nightly rate, top-3 hotels/activities, seasonal-premium flag), which is helpful since there is no output schema.
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 well-structured and front-loaded with the core purpose. All sentences add value, including the rate limit warning and sibling tool references. A 4 is appropriate due to slight verbosity, though it remains efficient.
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 absence of an output schema, the description thoroughly explains what the tool returns (median rate, top hotels/activities, seasonal-premium flag). It covers required and optional parameters, the rate limit, and prerequisite steps (resolving activity codes). The context is complete for an agent to use 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?
Schema coverage is 100%, but the description adds significant meaning beyond the schema. It explains the relationship between activityCodes and destinations ('parallel to destinations'), what happens when activityCodes is omitted (activity-side comparison skipped), and provides guidance on obtaining activity codes (using pricetik_destinations and the activityDestinationCode field).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('compare') and resource ('destinations'), and distinguishes from sibling tools by specifying what it does not do (live-event tickets) and pointing to alternatives (pricetik_trip_plan, pricetik_ticket_search). It also explains the output (median rate, top hotels/activities, seasonal-premium flag).
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 states when to use it: 'Pass 2–4 destinations + same date window + same guest count.' It also provides clear guidance on what not to use it for and suggests alternatives ('Live-event tickets are not compared here... bundle them via pricetik_trip_plan includeTickets=true'). Additionally, it recommends using pricetik_destinations first to resolve activity codes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_destinationsDestinationsARead-onlyInspect
Resolve free-text like "Las Vegas" or "Mallorca" into the canonical shape every other PriceTik tool needs — hotel-search-friendly text, the Hotelbeds activity destination code for pricetik_activity_search, country, and a subtitle. Agents call this first so they never have to ask the user for a destination code. Cache-backed, no API key required.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Free-text destination (min 2 chars). | |
| limit | No | Max suggestions to return (1–15, default 5). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description adds behavioral details: cache-backed, no API key required, and the specific return fields (hotel-search-friendly text, Hotelbeds code, country, subtitle). 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?
Three sentences, front-loaded with the core purpose, no unnecessary words. Efficient and well-structured.
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 no output schema, the description adequately explains return fields (hotel-search-friendly text, Hotelbeds code, country, subtitle) and mentions caching and auth. For a simple tool, this is sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. The description adds meaning beyond schema by explaining that the output is a canonical shape needed by other tools, and implies q is free-text and limit controls suggestions. This adds value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states it resolves free-text into canonical shape including hotel-search-friendly text, Hotelbeds activity destination code, country, and subtitle. It distinguishes itself as a preprocessing step from sibling tools like pricetik_search or pricetik_hotel_search.
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 advises 'Agents call this first so they never have to ask the user for a destination code,' clearly indicating when to use. It also mentions cache-backed and no API key required, but does not explicitly state alternatives or when not to use.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_explain_priceExplain PriceARead-onlyInspect
Decompose a hotel total into base rate, taxes & fees, paid amenities (resort fees, parking), and seasonal premium. Cache-only — never calls Hotelbeds. Returns a deterministic headline ("Rate is 20% above this property's typical") plus a renderable line list. On 404 PriceDataUnavailable, run pricetik_hotel_price_check first to populate the cache.
| Name | Required | Description | Default |
|---|---|---|---|
| checkIn | Yes | Check-in date (YYYY-MM-DD). | |
| checkOut | Yes | Check-out date (YYYY-MM-DD). | |
| propertyId | Yes | PriceTik hotel UUID. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint: true, and the description aligns by noting 'Cache-only — never calls Hotelbeds.' It adds behavioral details: 'Returns a deterministic headline plus a renderable line list' and error handling. 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?
Extremely concise: three sentences cover purpose, behavior, and error handling with no wasted words. Core purpose is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately covers input, behavior (cache-only, deterministic), output format (headline + line list), and error recovery. 100% schema coverage and readOnlyHint annotation reduce burden.
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% with each parameter described. The description does not add new semantic information beyond what the schema already provides, meeting the baseline expectation.
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 explicitly states 'Decompose a hotel total into base rate, taxes & fees, paid amenities (resort fees, parking), and seasonal premium,' clearly indicating the tool's purpose and output. It distinguishes from siblings by specifying cache-only behavior and error recovery using pricetik_hotel_price_check.
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 when-to-use and when-not-to-use guidance: 'Cache-only — never calls Hotelbeds' and 'On 404 PriceDataUnavailable, run pricetik_hotel_price_check first to populate the cache.' This tells the agent exactly when to invoke this vs. other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_flexible_datesFlexible DatesARead-onlyInspect
Find the cheapest contiguous N-night stay within a flexible date window. Backed by the cached hotel_price_history hypertable — never calls Hotelbeds. Pass either propertyId (specific hotel) or destination (top-25 properties in radius). Returns up to 10 candidate (checkIn, checkOut, propertyId) triples sorted by total cost ascending. Each candidate carries a confidence flag — "high" when at least one rate per day was observed, "low" when gap days were backfilled with the window average. Tier-clamped: Open ≤ 30-day window, Pro ≤ 90, Scale and above ≤ 180.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max candidates to return (1–25, default 10). | |
| nights | No | Number of nights per stay (1–30, default 3). | |
| windowEnd | Yes | Inclusive window end (YYYY-MM-DD). | |
| propertyId | No | PriceTik hotel UUID. Either propertyId or destination is required. | |
| destination | No | Free-text destination (city or "lat,lng"). Either propertyId or destination is required. | |
| windowStart | Yes | Inclusive window start (YYYY-MM-DD). | |
| maxTotalCost | No | Optional ceiling on total stay cost. | |
| maxNightlyRate | No | Optional ceiling on per-night rate. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds valuable behavioral details: uses cached hypertable, never calls Hotelbeds, returns up to 10 sorted candidates, and explains the confidence flag (high/low based on observed rates). 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?
A single concise paragraph of about 4 sentences, front-loaded with the action verb. Every sentence adds value, no filler. Efficiently communicates the core behavior.
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 no output schema, the description includes return format (checkIn, checkOut, propertyId triples sorted by cost, confidence flag). Covers complexity: caching, tier limits, parameter requirements, and the top-25 destination limitation. Complete for agent decision-making.
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 descriptions, baseline 3. The description adds extra meaning: explains mutual exclusivity of propertyId/destination, tier clamping on window length, and the meaning of the confidence flag. Provides context beyond 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 a specific verb+resource: 'Find the cheapest contiguous N-night stay within a flexible date window.' It clearly distinguishes from siblings by noting it uses cached data and never calls Hotelbeds, setting it apart from other price-check tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear when-to-use context: pass either propertyId or destination, explains tier clamping (window range limits by plan), and notes the tool is backed by cached data (no live calls). Missing explicit comparison with siblings like pricetik_alternative_dates, but the context is sufficient.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_group_trip_add_optionGroup Trip Add OptionAInspect
Propose a candidate to the group — a hotel, activity, live-event ticket, or transfer found via the normal search tools. Pass the surface plus a ref object carrying the surface identifier (hotel: propertyId or providerPropertyId; activity: activityCode; ticket: the event id from pricetik_ticket_search; transfer: the rateToken) and display snapshot fields (name, priceUsd, currency, photoUrl, bookingUrl) copied from the search result so other members see what they are voting on. Member-only (403 otherwise); sessions cap at 25 options. Add 2–4 strong candidates per surface rather than dumping every search result.
| Name | Required | Description | Default |
|---|---|---|---|
| ref | Yes | Surface identifier + display snapshot: { propertyId | providerPropertyId | activityCode | ticketId | rateToken, name, priceUsd, currency, photoUrl, bookingUrl }. Copy values from the search result unchanged. | |
| note | No | Optional pitch shown with the option, e.g. "walkable to the venue". | |
| surface | Yes | Which vertical this candidate belongs to. | |
| sessionId | Yes | Group trip session UUID. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate this is not read-only (readOnlyHint=false) and not destructive (destructiveHint=false), so the description adds value by specifying that it is member-only (returns 403 otherwise) and caps at 25 options per session. No contradiction with annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact yet complete: it opens with the purpose, then lists surfaces, explains the ref object, gives usage tips, and states constraints. Every sentence contributes unique information without redundancy or 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?
Despite having no output schema, the description covers all necessary context: when to use, how to populate parameters, constraints, and best practices. It addresses the complexity of a nested ref object and ensures the agent understands the expected workflow. Minor omission: does not describe the return value or success/error handling, but the tool's primary purpose is action-oriented.
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%, providing baseline 3. The description adds meaningful detail by explaining how to construct the ref object differently per surface (propertyId, activityCode, ticketId, rateToken) and which display fields to copy. It also clarifies the purpose of the optional note field, exceeding basic schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb ('Propose a candidate') and resource ('to the group'), immediately clarifying the action. It lists the four supported surfaces (hotel, activity, ticket, transfer) and distinguishes from sibling tools like pricetik_hotel_search or pricetik_group_trip_vote, making the tool's unique role clear.
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 provides explicit guidance on when to use this tool: after finding candidates via search tools, and recommends adding 2–4 strong candidates per surface. It also states constraints (member-only, 25-option cap) but does not explicitly exclude scenarios where the tool should not be used, such as for candidates not found via the listed search tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_group_trip_createGroup Trip CreateAInspect
Start a shared GROUP trip-planning session that friends join by share code — the multi-user counterpart to pricetik_trip_plan. Pass destination (plus optional checkIn/checkOut/title). Returns the session, a shareCode, and a shareUrl (pricetik.com/trips/) — give BOTH to the user so companions can join from their own agent (pricetik_group_trip_join) or vote on the web page without one. Choreography: create → search hotels/activities/tickets as usual → pricetik_group_trip_add_option for the strongest candidates → members vote → organizer finalizes. The creator becomes the session organizer. Requires an authenticated API key; pass an Idempotency-Key header to make retries safe. Sessions are coordinate-only — booking stays per-traveler via the booking-url tools; PriceTik never books on anyone's behalf.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Display title for the session, e.g. "Vegas bachelor party". Optional. | |
| checkIn | No | Proposed check-in date (YYYY-MM-DD). Optional. | |
| checkOut | No | Proposed check-out date (YYYY-MM-DD). Optional. | |
| destination | Yes | Free-text destination, e.g. "Las Vegas". | |
| displayName | No | The organizer's name as shown to other members, e.g. "Alex". Optional. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (readOnlyHint and destructiveHint both false), the description adds critical behavioral context: requires authenticated API key, Idempotency-Key header for safe retries, the creator becomes organizer, and the session is coordinate-only (no booking on behalf). 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 paragraph but packs dense information efficiently. It front-loads the core purpose, then details parameters, return values, choreography, and constraints. Every sentence contributes value without redundancy.
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 (5 parameters, no output schema), the description fully covers what the agent needs: purpose, inputs, outputs (with explanation of shareCode and shareUrl), workflow, prerequisites, and limitations. It is complete for a creation tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds value by rephrasing parameter meanings with examples (e.g., title: 'Vegas bachelor party', displayName: 'Alex') and clarifying that dates are proposed. This goes beyond the schema's minimal 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 the tool's purpose: 'Start a shared GROUP trip-planning session that friends join by share code'. It identifies it as the multi-user counterpart to pricetik_trip_plan, differentiating it from siblings. The verb 'start' and resource 'shared group trip-planning session' are specific.
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 provides explicit when-to-use guidance: it is the multi-user counterpart to pricetik_trip_plan. It outlines a choreography (create → search → add options → vote → finalize) and states that sessions are coordinate-only, with booking per-traveler via booking-url tools. It also mentions authentication and idempotency requirements.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_group_trip_finalizeGroup Trip FinalizeADestructiveInspect
Lock in the group's plan (organizer-only; 403 for other members). Pass optionIds to finalize the winning subset — read pricetik_group_trip_get first and pick the top-voted options; when optionIds is omitted, ALL candidate options are locked in. Returns the finalized plan grouped by surface with vote tallies and handoffPolicy "user_completes_booking"; from there, hand EACH traveler their own booking handoff via the normal tools (pricetik_hotel_get_booking_url, pricetik_activity_get_booking_url, ticket checkout links, pricetik_transfer_get_booking_url). Prices in option snapshots are display-only — re-check live rates via the surface read tools before booking. Finalizing is irreversible for the session (it moves to "finalized", 409 on repeat); PriceTik never books on anyone's behalf.
| Name | Required | Description | Default |
|---|---|---|---|
| optionIds | No | Optional subset of option UUIDs to lock in. Omit to take the top-voted. | |
| sessionId | Yes | Group trip session UUID. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark destructiveHint=true. Description adds critical details: return format (grouped by surface with vote tallies and handoffPolicy), post-finalization steps (hand each traveler their own booking handoff), price caveats (display-only, re-check live rates), and irreversible nature. 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?
Single paragraph of ~150 words, front-loaded with core action and constraint. Every sentence adds value. Could be slightly more structured (e.g., bullet points) but still efficient and clear.
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?
Covers all necessary aspects for an AI agent: caller restrictions, input behavior, return values (grouped by surface, vote tallies, handoffPolicy), next steps (booking handoff via surface-specific tools), price caveat, error conditions (403, 409, irreversible). No output schema, so description adequately explains return data.
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 basic descriptions. Tool description adds significant usage context: how to use optionIds (pick top-voted subset) and behavior when omitted (locks all candidates). This surpasses 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?
Describes a specific verb ('Lock in the group's plan') and resource ('group trip'), with clear constraints (organizer-only, 403 for others). Distinguishes from siblings like pricetik_group_trip_get (read) and pricetik_group_trip_vote (vote).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states who can call (organizer-only), what to do first (read pricetik_group_trip_get), how to pick options (top-voted), and when to omit optionIds (lock all candidates). Also warns about irreversibility and 409 on repeat.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_group_trip_getGroup Trip GetARead-onlyInspect
Fetch a group trip session — status, members (display names only), candidate options with per-option vote tallies (upvotes / downvotes / score), and the caller's own votes. Look up by sessionId or shareCode (exactly one). Poll this after adding options or between conversations to see how the group is converging before the organizer finalizes. Requires an authenticated API key; non-members get 403 (join first via pricetik_group_trip_join). Pure read.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | No | Group trip session UUID. | |
| shareCode | No | The 8-character share code (alternative to sessionId). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, and the description adds that it is a 'Pure read', explains the authentication requirement, and mentions the 403 error for non-members. No contradiction; it effectively supplements the annotations with context about authorization and response content.
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 paragraph but efficiently front-loads the core purpose, then lists return fields, usage timing, and prerequisites. Every sentence provides essential information without redundancy. It is concise yet comprehensive.
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 lacking an output schema, the description fully explains what the tool returns (status, members, options with vote tallies, caller's votes) and under what circumstances to use it (polling after changes). It also covers error handling (403) and dependencies (join first). This is complete for a read-only fetch tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for both parameters. The description goes beyond by clarifying that exactly one of sessionId or shareCode must be provided, which is not explicit in the schema. This adds meaningful usage context, elevating from 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 specifies the verb 'Fetch' and the resource 'a group trip session', and details the returned data (status, members, options with vote tallies, caller's votes). It distinguishes itself from sibling tools like pricetik_group_trip_create or pricetik_group_trip_vote by being a read operation.
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 provides explicit guidance: poll after adding options or between conversations, check convergence before finalizing. It also states prerequisites (authenticated API key, join first via pricetik_group_trip_join) and error for non-members (403). This helps the agent decide when to use this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_group_trip_joinGroup Trip JoinAInspect
Join a group trip session by share code (idempotent — joining twice is safe). Pass an optional displayName so other members see who voted. After joining, the caller can read the session, add candidate options, and vote. Requires an authenticated API key (the membership is owned by the PriceTik account). Pass an Idempotency-Key header to make retries safe.
| Name | Required | Description | Default |
|---|---|---|---|
| shareCode | Yes | The share code from the session organizer. | |
| displayName | No | Name shown to other members, e.g. "Alex". Optional. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds significant value beyond annotations: it declares idempotency (safe to retry), requires authenticated API key, and states membership ownership. It does not contradict the annotations (readOnlyHint=false, destructiveHint=false) and provides full transparency for a mutation operation.
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?
Four concise sentences with no wasted words. Each sentence adds crucial information: joining action, displayName purpose, post-join capabilities, and authentication/retry instructions. Well front-loaded with the primary action.
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 no output schema and moderate complexity, the description covers joining, idempotency, display name, post-join actions, and auth. It doesn't detail error handling for invalid share codes, but overall it is sufficiently complete for an agent to use correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds context for displayName ('so other members see who voted') and implies the purpose of shareCode. This extra meaning helps the agent understand parameter semantics beyond the schema alone.
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 specific action 'Join a group trip session by share code' with the verb 'Join' and resource 'group trip session'. It distinguishes from sibling tools like create, get, add_option, vote, and finalize by focusing on the joining action and mentioning idempotency.
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 explains when to use the tool (to join a group trip) and what happens after joining (read session, add options, vote). It does not explicitly mention when not to use it or provide alternatives, but the context is clear. The sibling list implicitly differentiates.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_group_trip_voteGroup Trip VoteAInspect
Record the caller's vote on a candidate option: 1 (up) or -1 (down). One vote per member per option — voting again replaces the previous vote (upsert), so changing one's mind is safe. Member-only (403 otherwise). After voting, read pricetik_group_trip_get for the updated tallies.
| Name | Required | Description | Default |
|---|---|---|---|
| vote | Yes | 1 = upvote, -1 = downvote. | |
| optionId | Yes | The candidate option UUID to vote on. | |
| sessionId | Yes | Group trip session UUID. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds upsert behavior, member-only restriction, and post-vote read recommendation. No contradiction with annotations, which are minimal.
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?
Three sentences with no filler. Front-loaded with action and resource. Every sentence adds value.
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?
Covers all aspects: purpose, parameters, access, idempotency (upsert), and next step. No output schema needed for this simple mutation.
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 includes descriptions for each parameter. The description does not add significant extra meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'Record the caller's vote' and resource 'candidate option'. Distinct from siblings like pricetik_group_trip_get (read) and pricetik_group_trip_add_option (add).
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?
Describes voting behavior (one vote per member, upsert) and access restriction (member-only). Lacks explicit alternative tools but implies after voting read get for tallies.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_hotel_compareHotel CompareARead-onlyInspect
Side-by-side comparison of 2 to 4 PriceTik hotel properties for a single stay window — name, star rating, current best nightly rate, deal score, top amenities, and optional haversine distance from a reference point of interest. Response rows preserve input order and length. Lengths outside [2, 4] return HTTP 400.
| Name | Required | Description | Default |
|---|---|---|---|
| rooms | Yes | Number of rooms (1-5) | |
| guests | Yes | Number of guests (1-10) | |
| checkIn | Yes | Stay window start (YYYY-MM-DD) | |
| checkOut | Yes | Stay window end (YYYY-MM-DD) | |
| propertyIds | Yes | 2 to 4 PriceTik hotel property IDs (UUIDs) to compare | |
| referencePoi | No | Optional reference point used to compute distanceFromReferenceKm per row via haversine on cached coordinates. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that the tool is read-only (consistent with readOnlyHint annotation), preserves input order and length, and computes optional haversine distance. It adds behavioral context beyond annotations, such as the error response for invalid length. 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 two sentences, each providing essential information without redundancy. It front-loads the primary purpose and quickly lists output fields and constraints. Every sentence adds value.
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 no output schema, the description adequately describes the response (fields, order preservation). It explains the optional distance feature and error handling. It could be slightly more detailed about 'deal score' or 'top amenities', but overall it is sufficient for an agent to understand what the tool returns.
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 has 100% parameter description coverage, so the description does not need to explain each parameter. It adds value by describing the response fields and the behavior of the 'referencePoi' parameter (computes distance). However, the core parameter meanings are already in the schema, so the description adds moderate extra context.
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's function: 'side-by-side comparison of 2 to 4 PriceTik hotel properties' for a stay window, and lists the fields returned (name, star rating, nightly rate, deal score, amenities, distance). It distinguishes from sibling tools like pricetik_hotel_search (which finds properties) or pricetik_hotel_details (single property).
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 states the valid input range (2 to 4 properties) and the consequence of invalid input (HTTP 400). It implies this tool is for comparison, not for individual property details or searches. However, it does not explicitly mention when not to use it or suggest alternatives, leaving some inference to the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_hotel_deal_scoreHotel Deal ScoreARead-onlyInspect
Get a 0-100 deal score for a hotel property based on rate history, provider spread, demand, and seasonal timing.
| Name | Required | Description | Default |
|---|---|---|---|
| checkIn | Yes | Check-in date (YYYY-MM-DD) | |
| checkOut | Yes | Check-out date (YYYY-MM-DD) | |
| propertyId | Yes | PriceTik hotel property ID (UUID) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description doesn't add safety info. However, it lists underlying factors (rate history, provider spread, demand, seasonal timing) beyond what annotations provide, adding useful behavioral context about how the score is derived.
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?
Single sentence that immediately states the output range (0-100) and key factors. No filler or redundancy; every word adds value.
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?
No output schema, but the description specifies the return value (0-100 deal score). It covers the input context (property and dates) and the factors. With good schema and annotations, this is adequate and leaves little ambiguity.
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%; each parameter has a description (propertyId as UUID, dates as YYYY-MM-DD). The description adds no extra detail per parameter beyond what the schema already provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a 0-100 deal score based on rate history, provider spread, demand, and seasonal timing. It distinguishes from siblings like pricet_hotel_should_book by specifying a numeric score output with explicit factors.
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 implies use when a deal score is needed but provides no explicit guidance on when to use this tool versus alternatives such as pricet_hotel_should_book or pricet_explain_price. No when-not-to-use or alternative references.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_hotel_detailsHotel DetailsARead-onlyInspect
Get full property content for a PriceTik hotel — name, description, star rating, amenities, paid extras, nearby points of interest, address, contact, segments, and gallery imagery. Look up by PriceTik UUID (propertyId) or providerPropertyId returned from pricetik_hotel_search; exactly one is required. Use the optional include array (rooms, issues, voucherFacilities, fullDescription) to opt into expanded sections — Pro tier unlocks rooms and issues, Scale tier and above unlock voucherFacilities and fullDescription. Open tier responses cap amenities at 8, points of interest at 3, and the description at 240 characters.
| Name | Required | Description | Default |
|---|---|---|---|
| include | No | Opt-in expansion sections. rooms and issues require Pro tier; voucherFacilities and fullDescription require Scale tier or above. Fields above the caller tier are dropped from the response. | |
| language | No | ISO 639-1 language code for resolving segment and category labels (default: en). | |
| propertyId | No | PriceTik hotel property ID (UUID) | |
| providerPropertyId | No | Provider-side property identifier returned by pricetik_hotel_search. Pass exactly one of propertyId or providerPropertyId. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint=true. Description adds tier caps for Open tier (amenities at 8, POIs at 3, description at 240 characters) and tier-based restrictions on include sections, providing useful behavioral context beyond 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?
Concise, front-loaded with purpose, no fluff. Each sentence adds meaningful information. Well-structured for an AI agent.
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?
No output schema, so description adequately lists returned fields (name, description, star rating, amenities, etc.) and mentions tier caps. Sufficient for an agent to understand what to expect.
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 descriptions for all 4 parameters. Description adds critical context: exactly one of propertyId or providerPropertyId required, and explains the include array options tier requirements in more detail than 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?
Clearly states the tool retrieves 'full property content' for a PriceTik hotel, listing specific fields (name, description, star rating, etc.). Distinguishes from sibling tools like pricetik_hotel_search by specifying lookup via propertyId or providerPropertyId.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: after pricetik_hotel_search to get details. Describes the optional include array with tier-based unlocks. Does not explicitly mention when not to use, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_hotel_get_booking_urlHotel Get Booking UrlARead-onlyInspect
Generate a one-click signed PriceTik checkout URL for a hotel stay. Two forms: (1) stay-based — pass providerPropertyId + checkIn + checkOut + guests + rooms (and optionally roomCode to pick a room type) WITHOUT a rateKey, and the server resolves the best live rate itself, exactly as if the user pressed Book on pricetik.com — this is the preferred form for agents; (2) rateKey-based — pass a rateKey returned by pricetik_hotel_price_check. Refreshes the rateKey when it is within 2 minutes of expiry or when rateType is "RECHECK"; the user clicks through to PriceTik to complete checkout. URLs in responses are pricetik.com/go/ redirects that preserve attribution — surface them to the user unchanged, do not fetch them server-side. On 410 RateKeyExpired, call pricetik_hotel_price_check again to obtain a fresh rateKey and retry. On 422 PackagingDenied, the rate is sold only as part of a package and cannot be booked hotel-only. The currentBest block surfaces nightlyRate, totalStayCost, currency, paymentType, rateType, and freeCancellation only — no margin fields. When the caller is authenticated and a stored loyalty program (traveler_profiles.loyaltyPrograms) matches the property's chainCode, the response carries loyaltyApplied: { program, memberId } and the booking URL is auto-stamped with the member number — quote "Marriott Bonvoy linked" (or the matching chain) to the user.
| Name | Required | Description | Default |
|---|---|---|---|
| rooms | Yes | Number of rooms (1-5) | |
| guests | Yes | Number of guests (1-10) | |
| checkIn | Yes | Stay window start (YYYY-MM-DD) | |
| rateKey | No | OPTIONAL rate handle returned by a prior pricetik_hotel_price_check call. Omit it to use the stay-based form: the server resolves the best live rate for the stay itself (matching roomCode when given). | |
| checkOut | Yes | Stay window end (YYYY-MM-DD) | |
| children | No | Optional number of children sharing the room (0-8). Defaults to 0. | |
| roomCode | No | Optional Hotelbeds room-type code (from pricetik_room_types) for the stay-based form — resolves to that room's cheapest live rate. Ignored when rateKey is supplied. | |
| holderEmail | No | Optional contact email for voucher delivery. | |
| childrenAges | No | Required when children > 0; length must equal children. Each age in [0, 17]. | |
| providerPropertyId | Yes | Provider-side hotel property identifier returned by pricetik_hotel_search (not the PriceTik UUID). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Adds substantial behavioral context beyond annotations: explains URL lifecycle (redirects, do not fetch server-side), rateKey refreshing, loyalty program integration, and error handling. Annotations only indicate readOnlyHint, which is consistent.
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 with clear sections for two forms and error handling, but it is quite verbose (multiple paragraphs). Some details, like specific error codes and loyalty behavior, could be condensed.
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 no output schema, the description explains the response fields (currentBest block, loyaltyApplied) and covers error conditions and edge cases (expiring rateKeys, loyalty). Fairly complete for a complex tool with 10 parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds significant extra meaning: explains the distinction between stay-based and rateKey-based forms, role of roomCode, and loyalty behavior. This warrants a score of 4.
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 generates a one-click signed PriceTik checkout URL for a hotel stay, and distinguishes two forms (stay-based and rateKey-based). This differentiates it from siblings like pricetik_hotel_price_check and pricetik_hotel_search.
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?
Explicit guidance on when to use each form (stay-based preferred for agents, rateKey-based when a rateKey is available), and how to handle specific error responses (410, 422). Does not explicitly exclude other tools but provides clear context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_hotel_price_checkHotel Price CheckARead-onlyInspect
Check current rates across all hotel providers for a specific property and date range. Returns per-provider pricing with availability status.
| Name | Required | Description | Default |
|---|---|---|---|
| checkIn | Yes | Check-in date (YYYY-MM-DD) | |
| checkOut | Yes | Check-out date (YYYY-MM-DD) | |
| propertyId | Yes | PriceTik hotel property ID (UUID) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, so the description's additional detail (returns per-provider pricing with availability status) adds minimal behavioral context beyond what is declared. No mention of side effects, auth, or rate limits.
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?
Two sentences with no extraneous information. The purpose is front-loaded and every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read-only tool with 3 parameters and no output schema, the description adequately covers functionality. It could mention error handling or what happens if no data is found, but is otherwise sufficient.
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 descriptions for all parameters. The tool description does not add any extra meaning beyond what the schema provides, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'check current rates' and the resource 'for a specific property and date range', distinguishing it from sibling tools like historical rates or explanations. It explicitly mentions returning per-provider pricing with availability.
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 implies usage for checking current rates across providers, but does not explicitly contrast with alternatives (e.g., pricetik_hotel_rate_history) or specify when not to use. However, the context is clear enough for most agents.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_hotel_rate_historyHotel Rate HistoryARead-onlyInspect
Retrieve the daily best-nightly-rate-across-providers series for a PriceTik hotel property and stay window, with a deterministic OLS trend slope and a one-line summary headline. Also returns an allTime block — lowest/highest nightly rate ever recorded for this exact stay window, all-time average, the current rate’s percentile rank, and how far back the record goes — from rate history kept indefinitely, so a "deal" is judged against years of rates, not just the window. Days parameter is tier-limited (Open: up to 7, Pro: up to 90, Scale and above: up to 180); allTime is always full-history. Returns null bestNightlyRate for days with no provider observations.
| Name | Required | Description | Default |
|---|---|---|---|
| days | Yes | Lookback window in days (tier-clamped at the route layer) | |
| checkIn | Yes | Stay window start (YYYY-MM-DD) | |
| checkOut | Yes | Stay window end (YYYY-MM-DD) | |
| currency | No | Optional ISO 4217 currency code for FX conversion | |
| propertyId | Yes | PriceTik hotel property ID (UUID) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond the readOnlyHint annotation by detailing behavioral traits such as tier-limited days parameter, deterministic OLS trend slope, null bestNightlyRate for days with no observations, and the full-history nature of the allTime block. However, it does not mention rate limits or authentication requirements.
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 reasonably concise, front-loading the main purpose in the first sentence. Subsequent sentences provide necessary details like allTime block, tier limits, and null behavior. Every sentence adds value, though the structure could be slightly more organized.
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 description covers all key aspects: output structure (daily series, trend slope, headline, allTime block), parameter tier limits, and null handling. Without an output schema, this provides sufficient context for an agent to use correctly. Minor missing details like error handling or rate limiting.
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?
Even though schema description coverage is 100%, the description adds specific information beyond the schema, such as the exact tier limits for the days parameter (Open: up to 7, Pro: up to 90, Scale and above: up to 180) and that allTime is always full-history. This enhances understanding beyond the schema's 'tier-clamped' mention.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'retrieve' and the resource 'daily best-nightly-rate-across-providers series' for a specific hotel and stay window. It also distinguishes itself from sibling tools like pricetikk_hotel_price_check and pricetikk_hotel_deal_score by mentioning deterministic OLS trend slope and allTime block.
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 implies usage for historical rate data and judging deals against years of rates, but it does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions or when-not-to-use guidance. Given the many sibling tools, more explicit guidance would be helpful.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_hotel_review_summaryHotel Review SummaryARead-onlyInspect
Synthesised review summary for a property — score, count, star rating, segments, and inferred theme cues for cleanliness, location, staff, value, and comfort. Cache-only — themes are derived from the cached amenity content (Hotelbeds doesn't expose per-category review breakdowns), and surfaced as -1/0/+1 cues with reasons so agents can quote them confidently.
| Name | Required | Description | Default |
|---|---|---|---|
| propertyId | Yes | PriceTik hotel UUID. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=true. The description additionally discloses that the tool is 'cache-only,' themes are derived from cached amenity content (not live data), and Hotelbeds does not expose per-category breakdowns. It also explains that theme cues are surfaced as -1/0/+1 with reasons, providing full transparency about data limitations and output format.
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 extremely concise at two sentences. The first sentence lists what the tool provides, and the second explains the cache-only nature and theme encoding. Every sentence adds value without redundancy.
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 simplicity of the tool (one input, no output schema), the description adequately describes the output components (score, count, star rating, segments, theme cues with reasons). It could be more explicit about the output structure, but the description is sufficient for confident agent usage.
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 a single parameter (propertyId) described as 'PriceTik hotel UUID.' The description adds no further semantics about the parameter beyond what the schema provides, so it meets the baseline expectation without enrichment.
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 specifies that the tool returns a 'synthesised review summary' including score, count, star rating, segments, and theme cues for cleanliness, location, staff, value, and comfort. This distinguishes it from siblings like hotel_details or hotel_deal_score, which serve different purposes.
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 implies usage for obtaining review summaries and mentions that themes can be 'quoted confidently,' but it does not explicitly state when to use this tool versus alternatives or when not to use it. No exclusions or direct comparisons to siblings are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_hotel_searchHotel SearchARead-onlyInspect
Search hotels by destination, dates, and guest count. Returns properties with the lowest available nightly rate cached on PriceTik. Filter by lifestyle segments, hotel chain (or excluded chains), accommodation type, and the always-on "no resort fees" / "free breakfast" / "pet friendly" flags. Use nearPoiLat / nearPoiLng / nearPoiRadiusKm to pin the search center to a specific point of interest (e.g. "the Strip" rather than "Las Vegas"). Use the returned providerPropertyId with pricetik_hotel_price_check for live rates. Direct REST callers can append ?stream=ndjson (or send Accept: application/x-ndjson) for incremental NDJSON output — header frame ships first, then one frame per property, then a closing summary. Use this for hotels only; for a single-call hotel + activity stitch, use pricetik_trip_plan instead.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results (default: 10, max: 50) | |
| rooms | No | Number of rooms (default: 1) | |
| guests | No | Number of guests (default: 2) | |
| checkIn | Yes | Check-in date (YYYY-MM-DD) | |
| checkOut | Yes | Check-out date (YYYY-MM-DD) | |
| maxPrice | No | Maximum nightly rate filter | |
| segments | No | Filter by lifestyle segment codes (e.g. BEACH, BUSINESS, FAMILY, ROMANCE, ECO, GOLF). Properties match when any of their tagged segments overlaps the request. | |
| chainCode | No | Filter by hotel chain affiliation code (e.g. MARR for Marriott, HYAT for Hyatt). Uppercase alphanumeric, 2-20 characters. | |
| nearPoiLat | No | Latitude of a point of interest. Pair with nearPoiLng (and optional nearPoiRadiusKm) to override the destination centroid. | |
| nearPoiLng | No | Longitude of a point of interest. Required alongside nearPoiLat. | |
| starRating | No | Minimum star rating (1-5) | |
| destination | Yes | City, region, or landmark name | |
| petFriendly | No | Show only properties tagged as pet-friendly. | |
| freeBreakfast | No | Show only properties tagged with a breakfast amenity. | |
| minNightlyRate | No | Floor on the lowest nightly rate. Pair with maxPrice for a "between $150 and $250" band. | |
| nearPoiRadiusKm | No | Radius around the POI in km (default 5, max 50). | |
| accommodationType | No | Filter by accommodation type. Use ALL (default behavior when omitted) to disable the filter. | |
| excludeChainCodes | No | Inverse of chainCode — exclude properties affiliated with any of the listed chains (e.g. ["WYN","MGM"]). | |
| excludeResortFees | No | Drop properties whose cached paid amenities include a resort fee. SQL-level filter against `hotel_property_content.paid_amenities` — not a heuristic. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint: true, and the description adds behavioral details such as caching ('cached on PriceTik'), NDJSON streaming for direct REST callers, and the structure of output (header frame, property frames, closing summary). It does not contradict annotations and provides useful operational context beyond the structured fields.
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 long but well-structured, front-loading the main purpose. Each sentence adds value, and technical details like NDJSON are placed at the end. Minor redundancy with sibling tool mention could be tightened, but overall efficient.
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?
No output schema, yet the description explains the high-level return: properties with lowest nightly rate, cached, and mentions providerPropertyId for further use. The NDJSON output structure is described. It does not detail every property field, but for a search tool this is acceptable given the complexity.
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 baseline is 3. The description adds extra meaning for several parameters: e.g., nearPoiLat/Lng for pinning search center, segments for lifestyle filtering, excludeResortFees with SQL-level filter explanation. 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 uses specific verbs and resources: 'Search hotels by destination, dates, and guest count.' It clearly distinguishes the tool from its sibling pricetik_trip_plan by stating 'Use this for hotels only; for a single-call hotel + activity stitch, use pricetik_trip_plan instead.'
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 provides clear when-to-use guidance: for hotel searches. It explicitly tells when not to use (pricetik_trip_plan) and suggests using the returned providerPropertyId with pricetik_hotel_price_check for live rates. However, it does not directly address all sibling tools like pricetik_hotel_compare, though the scope is still well-defined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_hotel_should_bookHotel Should BookARead-onlyInspect
Get a deterministic book_now, wait, or watch recommendation for a PriceTik hotel property and stay window, combining rate trend, demand pressure from active bids, cancellation flexibility, days-to-check-in urgency, and seasonal premium signals. Returns confidence in [0, 1], a template-composed reasoning string, current best rate, historical context, demand zone, and seasonal flag. No LLM is invoked.
| Name | Required | Description | Default |
|---|---|---|---|
| rooms | Yes | Number of rooms (1-5) | |
| guests | Yes | Number of guests (1-10) | |
| checkIn | Yes | Stay window start (YYYY-MM-DD) | |
| urgency | No | Optional caller-supplied urgency hint | |
| checkOut | Yes | Stay window end (YYYY-MM-DD) | |
| propertyId | Yes | PriceTik hotel property ID (UUID) | |
| maxNightlyRate | No | Optional ceiling used to flag whether the current best is within budget |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds context beyond readOnlyHint annotation, specifying return fields (confidence, reasoning, rate, demand zone, seasonal flag) and emphasizing no LLM invocation. 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?
Two sentences, front-loaded with main purpose, second sentence lists return fields. No filler; every sentence adds value.
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 no output schema, description adequately covers return values and logic. Could detail the recommendation meaning, but 'book_now/wait/watch' is intuitive. Overall sufficient 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 covers all 7 parameters (100% coverage), so description adds little beyond stating that urgency and maxNightlyRate are optional and that the tool checks budget. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states it returns a 'book_now, wait, or watch recommendation', combining multiple signals. Verb 'Get' and resource 'recommendation' are clear, and it distinguishes from siblings like pricetick_hotel_deal_score and pricetick_hotel_price_check.
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?
Description lists factors used but lacks explicit when-to-use or when-not-to-use guidance compared to alternatives. Implies use for deterministic recommendation but no differentiation from similar tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_hotel_statusHotel StatusARead-onlyInspect
Cache-side health for the PriceTik hotel surface — content cache freshness (row count, median age, stalest row), rate-history coverage in the trailing 24 hours, type-catalog recency, and refresh-worker status. Returns a top-level service classification (ok / degraded) plus per-block detail. Free at every tier. Use before high-stakes booking flows to verify the cache is fresh; surfaces no live partner quota numbers.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds substantial context beyond annotations: details what checks are performed (row count, median age, stalest row, etc.), the return format (classification + per-block detail), and that it is free. Annotations already provide readOnlyHint=true; no contradiction. Slight deduction for not mentioning any rate limits or authentication, but the detail is strong.
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?
Description is three sentences well-structured: first sentence defines scope and components, second explains return value, third gives usage guidance. Every sentence contributes, no fluff, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter read-only tool with no output schema, the description is comprehensive: it explains inputs (none), outputs (classification and detail), exact data checked, and usage context. It fully informs an agent when and why to use this tool among the many hotel-related siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has zero parameters, so baseline is 4 per guidelines. Description adds no parameter info but does not need to; it provides rich context about the output and usage, compensating for the lack of parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly identifies the tool as returning cache-side health for the PriceTik hotel surface, listing specific components (content cache freshness, rate-history coverage, etc.) and output format. It effectively distinguishes from sibling tools by specifying 'hotel surface', which differentiates it from general status tools like pricetick_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('before high-stakes booking flows to verify the cache is fresh') and what it does not provide ('surfaces no live partner quota numbers'), giving clear context for appropriate invocation vs alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_hotel_watch_rateHotel Watch RateAInspect
Subscribe to a rate alert that fires when the best nightly rate for a PriceTik hotel property and stay window hits or drops below your target. A free API key is required (the watch is owned by your PriceTik account). When webhookUrl is omitted, the alert delivers via your PriceTik account — email + the pricetik.com dashboard — which is the right choice for end users in a chat client (no server endpoint needed). Supply an HTTPS webhookUrl only for developer/partner integrations that host their own endpoint. Free tier allows up to 3 active alerts; Pro+ raises the cap and unlocks webhook + auto-book delivery. Defaults expiresAt to checkIn minus 48 hours when omitted so abandoned alerts auto-expire ahead of the trip date. Pass an Idempotency-Key header to make retries safe (24-hour replay window). Manage alerts via pricetik_alert_list, pricetik_alert_delete, and pricetik_alert_deliveries.
| Name | Required | Description | Default |
|---|---|---|---|
| rooms | Yes | Number of rooms (1-5) | |
| guests | Yes | Number of guests (1-10) | |
| checkIn | Yes | Stay window start (YYYY-MM-DD) | |
| checkOut | Yes | Stay window end (YYYY-MM-DD) | |
| currency | No | 3-letter ISO 4217 currency code for targetNightlyRate (default: USD). | |
| expiresAt | No | Optional ISO 8601 timestamp. Defaults to checkIn minus 48 hours; must be before checkIn. | |
| propertyId | Yes | PriceTik hotel property UUID. | |
| webhookUrl | No | Optional HTTPS webhook URL for developer/partner integrations. Omit for account delivery (email + pricetik.com dashboard) — the default for end-user chat clients. | |
| targetNightlyRate | Yes | Per-night target. The alert fires when the best nightly rate hits or drops below this value. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses all relevant behavioral traits: requires free API key, owned by account, delivery methods (account vs webhook), free tier cap of 3 alerts, default expiration set to checkIn minus 48 hours, idempotency key support, and management via sibling tools. No annotations contradict these 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 is moderately long but well-structured, starting with purpose and then providing details. Every sentence contributes useful information. Could be slightly more concise, but overall effective.
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 (9 parameters, rate alert behavior, multiple delivery options), the description provides enough context for correct usage, including limitations, defaults, and retry safety. No output schema exists, but the description compensates well.
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 parameters with descriptions (100% coverage). The description adds extra context beyond the schema: clarifies webhookUrl usage for developers vs end users, explains the default for expiresAt, and mentions the Idempotency-Key header. This adds significant value, raising from baseline 3 to 4.
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 subscribes to a rate alert for a specific property and stay window, using a specific verb 'Subscribe'. It distinguishes itself from sibling tools by mentioning management tools like pricetik_alert_list, pricetik_alert_delete, etc.
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 when-to-use (to get notified when rate drops below target) and when-not-to-use (when webhookUrl is omitted for end users, recommend account delivery). Also explains tier limitations and references sibling tools for management, giving clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_itinerary_exportItinerary ExportARead-onlyInspect
Export the authenticated user's bookings as an RFC-5545 .ics calendar string plus a structured events array, ready to drop onto a calendar app. Upcoming-only by default; pass includePast=true for the full history. The capstone to pricetik_trip_plan / pricetik_my_trips. Requires a bearer API key; Open-tier requests get 401. Pass tripSessionId to export a group trip session's PROPOSED plan before anything is booked — share the .ics with the whole group.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max events (1–100, default 50) | |
| includePast | No | Include past bookings too (default false) | |
| tripSessionId | No | Optional group trip session UUID — export the PROPOSED plan (the session's candidate options; finalized sessions export only the winning options) instead of bookings. Caller must be a session member (403 otherwise). Event manage links point at the session's pricetik.com/trips share page. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true; description adds details about output format, default filtering, group session behavior, and error conditions. No contradiction, and adds useful behavioral context beyond 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?
Four sentences, front-loaded with main purpose, every sentence adds value. No 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?
Explains output format, default behavior, authentication, and group session use case. Without output schema, it provides enough for an agent to invoke correctly. Minor gap: no mention of other HTTP status codes beyond 401 and 403 implicitly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds some nuance for tripSessionId (e.g., share link) but largely restates schema descriptions. Adequate but not exceptional.
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?
Clearly states it exports bookings as an RFC-5545 .ics string and structured events array. Distinguishes from siblings by positioning itself as the capstone to pricetik_trip_plan and pricetik_my_trips.
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 clear context: default upcoming-only, includePast for full history, tripSessionId for group plans, and authentication requirements (bearer API key, 401 for open-tier). Does not explicitly list alternative tools but implies usage flow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_my_tripsMy TripsARead-onlyInspect
List the authenticated user's trips — bookings grouped by destination + overlapping date window. Each trip carries the hotel + all activities, total spend, days-until-departure countdown, and per-member manage URLs. Status filter: 'upcoming' | 'past' | 'all' (default). Requires a bearer API key minted from the dashboard; Open-tier requests get 401.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max trips to return (1–25, default 10). | |
| status | No | Trip status filter (default 'all'). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, consistent with the description's 'List' verb. The description adds authentication context (requires API key, Open-tier returns 401), which is useful beyond 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?
Two sentences, front-loaded with purpose, no redundant information. Every sentence adds value.
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 no output schema, the description details the trip contents (hotel, activities, spend, countdown, manage URLs). However, it omits pagination or limit behavior, which is somewhat covered by the 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 the description mentions the status filter with defaults but does not add significant meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool lists authenticated user's trips grouped by destination with overlapping dates, and details what each trip includes. It is distinct from sibling tools like search or hotel details.
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?
Authentication requirements (bearer API key) are mentioned, but there is no explicit guidance on when to use this tool over alternatives like pricetrik_search or pricetrik_trip_plan.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_room_typesRoom TypesARead-onlyInspect
Filtered, ranked room catalog for a property. Reads cached hotel_property_content.rooms and joins cheapest cached rate per room when you pass a stay window. Filter by bedType (KING/QUEEN/DOUBLE/TWIN/SOFA), suite, kitchenette, accessible, minAdults. Cache-only — never calls Hotelbeds.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max rooms to return (1–50, default 15). | |
| suite | No | When true, only suite rooms. | |
| bedType | No | Filter rooms by bed-type tokens. Best-effort match against name/description. | |
| checkIn | No | Optional check-in date for rate join (YYYY-MM-DD). | |
| checkOut | No | Optional check-out date for rate join (YYYY-MM-DD). | |
| minAdults | No | Required adult capacity (1–10). | |
| accessible | No | When true, only accessible rooms. | |
| propertyId | Yes | PriceTik hotel UUID. | |
| kitchenette | No | When true, only rooms with kitchenette. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, and the description reinforces this by stating 'Cache-only — never calls Hotelbeds.' It also discloses behavioral details like joining cheapest cached rate per room when a stay window is provided and best-effort bedType matching. This adds value beyond annotations, though ranking logic is not explained.
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 two sentences with a clear structure: first sentence states the tool's purpose, second explains the join and cache behavior, then lists filters concisely. No wasted words; every part adds value.
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 description covers input well with filters and behavior, but without an output schema, it does not describe the structure of returned room objects. Given the complexity (9 parameters, ranked output), some output description would improve completeness, but it is adequate for a filtered-list tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds context: it explains that checkIn/checkOut enable rate join, that bedType is a best-effort match against name/description, and lists filters. This clarifies the purpose of parameters beyond their schema 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 a 'Filtered, ranked room catalog for a property.' It specifies the data source (cached hotel_property_content.rooms), the join logic (cheapest cached rate per room with stay window), and the available filters. This distinguishes it from sibling tools like pricetik_hotel_details which focus on hotel-level info.
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 explains when to use: to get filtered room types for a property. It mentions cache-only behavior and the need to pass a stay window for rate join. However, it does not explicitly state when not to use or mention alternative tools for related tasks, but the context from sibling names helps.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_searchSearchARead-onlyInspect
Discovery search across PriceTik surfaces. Map the intent to the right tool: for a SPECIFIC isolated intent, prefer the dedicated tool — pricetik_hotel_search for hotels, pricetik_activity_search for activities/tickets — which return richer, date-accurate results in their own widget. Reach for pricetik_search when the intent is exploratory or you do not yet know the surface. surface=shopping returns retail deals; surface=hotels resolves the query as a destination + returns top hotel matches with their PriceTik UUIDs; surface=events returns real bookable activities for the matched destination. surface=all is a DISCOVERY FALLBACK that returns results GROUPED BY SURFACE (relevance-gated, each surface in its own labeled section) — it does NOT round-robin interleave verticals. The default surface is scope-aware (it follows the active vertical selection), not a fixed shopping. For a multi-surface trip ("a hotel AND a show"), do NOT use surface=all to commingle — instead fire parallel dedicated calls (pricetik_hotel_search + pricetik_activity_search, each rendering its own widget), or use pricetik_trip_plan (with includeTickets=true when the "show" is a ticketed live event) / pricetik_compare_destinations for a true single-response stitch. The events surface returns bookable activities/attractions PLUS a separate labeled "Event tickets" section when live-event tickets (concerts, sports, theater) match — ticket rows carry city, eventDate, and a pricetik_ticket_details drill-in; for ticket-specific filtering (city + date window) call pricetik_ticket_search directly. Each result carries a drillDownTool field telling the agent which tool to call next. For "best deals right now" with no product in mind, use pricetik_trending_deals; for deals ranked to the user's stated interests, use pricetik_deals_for_you.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search query text | |
| limit | No | Max results to return (tier-limited) | |
| surface | No | Which surface(s) to search. `shopping` = retail deals, `hotels` = hotel matches for the resolved destination, `events` = real bookable activities for the matched destination. `all` is a discovery fallback that returns results grouped by surface in labeled sections (relevance-gated), NOT a round-robin interleave. Omit to use the scope-aware default (follows the active vertical selection rather than a fixed `shopping`). For a known single intent prefer the dedicated tool (`pricetik_hotel_search`, `pricetik_activity_search`); for a multi-surface trip prefer parallel dedicated calls or `pricetik_trip_plan` / `pricetik_compare_destinations` rather than `all`. | |
| category | No | Filter by product category (shopping only) | |
| maxPrice | No | Maximum price filter |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint=true, description adds significant behavioral context: surface-specific behaviors (shopping returns retail, hotels returns destination+UUIDs, events returns bookable activities plus event tickets section), grouping by surface for 'all', drillDownTool field, and scope-aware default. 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?
Description is quite long but well-structured with clear sections and guidance. Every sentence earns its place; could be slightly more concise but the detail is justified for a complex tool with many sibling alternatives.
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?
No output schema, but description explains return structure (grouped by surface, drillDownTool, ticket rows with fields). Could be more explicit about overall response format, but given the complexity and lack of output schema, it provides sufficient context for tool selection and 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%, so baseline 3. Description adds meaning beyond schema: explains surface enum values in detail, notes limit is tier-limited, category only applies to shopping, and default surface is scope-aware. Adds value but schema already describes parameters well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it's a discovery search across PriceTik surfaces, with specific verb 'Search' and resource 'PriceTik surfaces'. It distinguishes from dedicated sibling tools like pricetik_hotel_search and pricetik_activity_search, and different behaviors per surface.
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?
Explicit guidance on when to use this tool vs. alternatives: for specific intent prefer dedicated tools, for exploratory or unknown surface use this; for multi-surface trip avoid surface=all and use parallel dedicated calls or trip_plan/compare_destinations. Also mentions alternatives like pricetik_trending_deals.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_statusStatusARead-onlyInspect
Check Intel API health and feature flag state. Use before making calls to verify the API is available. Returns current status, resolved tier, and active feature flags.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses that it returns status, tier, and feature flags. Annotations already note readOnlyHint=true, and the description adds behavioral context without contradiction.
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?
Three concise sentences front-load the action and purpose. No redundant or filler content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter health check tool with no output schema, the description fully explains purpose, usage timing, and return values. Complete for its simplicity.
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?
No parameters exist, so the description adds no parameter meaning beyond the input schema. With 100% schema coverage, baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Check Intel API health and feature flag state', using a specific verb and resource. It distinguishes from siblings like pricetick_hotel_status which is hotel-specific, making it unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly advises 'Use before making calls to verify the API is available', providing clear when-to-use guidance. While it doesn't list when not to use or alternatives, the context implies it's a preliminary step.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_trending_dealsTrending DealsARead-onlyInspect
Discover today's best deals ranked 0–100 — answer "what are the best deals right now?" without a specific product, ACROSS EVERY VERTICAL. surface selects the inventory: shopping (default — retail deals by stored deal score), hotels (biggest 7-day nightly-rate drops), events (activity rate drops), tickets (live-event tickets priced below their 30-day median, with a reasons[] breakdown), or all (one response grouped into labeled per-surface sections — hotels, things to do, event tickets, shopping). Rows carry a drillDownTool for the next call (hotel_details / activity_details / ticket_details / price_check). Optional category filter (shopping only) and minDealScore (shopping defaults to 60; other surfaces filter only when provided). URLs are pricetik.com/go/ affiliate redirects — pass them to the user's browser unchanged, do not fetch them server-side. No API key required. For a specific query use pricetik_search; for deals ranked to the user's stated interests use pricetik_deals_for_you.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max deals to return (1–25, default 10) | |
| surface | No | Which inventory to rank. Default shopping (exact legacy behavior). "all" returns labeled per-surface sections. | |
| category | No | Optional category filter (shopping surface only) | |
| minDealScore | No | Minimum 0–100 deal score (shopping default 60; other surfaces unfiltered unless provided) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses readOnly behavior (supported by annotations), no API key needed, affiliate redirect URLs must be passed unchanged, rows carry drillDownTool, and default minDealScore of 60 for shopping. No contradictions 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?
Description is slightly long but every sentence adds necessary context. Front-loaded with core purpose and well-structured. Could be slightly more concise, but appropriate given complexity.
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 no output schema, description thoroughly explains return data: surfaces return specific content (hotels => 7-day drops, tickets => reasons breakdown), rows carry drillDownTool, and 'all' returns labeled sections. Covers edge cases and usage notes.
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?
Schemas cover 100% of parameters but description adds significant value: explains surface enums in detail (e.g., hotels = biggest 7-day drops, tickets = below median with reasons), clarifies category only for shopping, and minDealScore default behavior. Also mentions drillDownTool in rows.
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?
Clearly states the tool discovers today's best deals ranked 0-100 across all verticals. Distinguishes from siblings by explicitly naming pricetik_search for specific queries and pricetik_deals_for_you for user-interest-ranked deals.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use alternatives: pricetik_search for specific queries, pricetik_deals_for_you for user interests. Also explains each surface value and its use case (e.g., 'tickets' for live-event tickets below median with reasons breakdown).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
pricetik_trip_planTrip PlanARead-onlyInspect
Single-call orchestrated trip planner — stitches top hotels + recommended activities + estimated spend into one response, so the agent skips the manual "search hotels → search activities → stitch" fan-out. Pass destination + dates (plus optional budget, interests, star rating, no-resort-fees). For a HOTEL + SHOW/CONCERT/GAME trip, set includeTickets=true (plus ticketQuery for a specific performer, team, or show) — the plan then carries an eventTickets[] block of live-event tickets matched to the destination and stay window. Tickets are affiliate inventory: each carries a checkout link the user opens on the ticket seller, and ticket prices are NOT included in estimatedTotalUsd. Set groupByDay=true for a daily itinerary with rest-day placeholders on trips longer than 5 nights and 4h+ activity conflict avoidance. Pass includeTransfer to attach the best-value ground transfer (airport / port / station ↔ hotel) to the plan — it carries a rateToken you can hand to pricetik_transfer_get_booking_url; an uncovered or same-type terminal route returns a non-fatal transferUnavailable note and the hotel + activity plan still comes back. Free at every tier. Stricter rate limit than single-surface tools (10/min) because it fans out parallel searches. Direct REST callers can append ?stream=ndjson (or send Accept: application/x-ndjson) for incremental frames. Use this for a single-call hotel + activity (+ event ticket) stitch; for hotels only, use pricetik_hotel_search; for tickets only, use pricetik_ticket_search.
| Name | Required | Description | Default |
|---|---|---|---|
| rooms | No | Rooms (1–5). Default 1. | |
| adults | No | Adult guests (1–10). Default 2. | |
| checkIn | Yes | Check-in date (YYYY-MM-DD). | |
| checkOut | Yes | Check-out date (YYYY-MM-DD). | |
| children | No | Child guests (0–10). Default 0. | |
| segments | No | Lifestyle segments to bias hotel picks. | |
| budgetUsd | No | Total trip budget in USD (hotel + activities). Split ~70/30 hotel/activities by default. | |
| interests | No | Themes to bias activity picks: "food", "nature", "nightlife", etc. | |
| groupByDay | No | When true, include a dailyItinerary array (rest-day placeholders + 4h+ conflict avoidance). Default false. | |
| hotelCount | No | Hotel results to return (1–5). Default 3. | |
| starRating | No | Hotel star-rating floor (1–5). | |
| destination | Yes | Free-text destination (city or "lat,lng"), e.g. "Las Vegas". | |
| ticketQuery | No | Optional free-text bias for the bundled tickets (performer, team, or show — e.g. "Cirque du Soleil"). Only meaningful with includeTickets=true; when omitted, tickets are matched from the destination. | |
| noResortFees | No | Exclude hotels with mandatory resort fees (SQL-backed filter). | |
| includeTickets | No | When true, bundle live-event TICKETS (concerts, theater, sports) matched to the destination and stay window into an eventTickets[] block. Affiliate inventory — checkout links open on the ticket seller; ticket prices are NOT counted in estimatedTotalUsd. Default false. | |
| includeTransfer | No | Optional ground-transfer attachment. When present, the planner attaches the best-value transfer quote (carries a rateToken for pricetik_transfer_get_booking_url). An uncovered or same-type terminal route (IATA→IATA, PORT→PORT, STATION→STATION) yields a non-fatal transferUnavailable note instead. | |
| activitiesPerDay | No | Cap activities per day (0–5). Default 2. | |
| activityDestinationCode | No | 3-letter destination code for activities (e.g. LAS, NYC). Resolved from the destination string when omitted. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, but the description adds substantial context: parallel fan-out, 10/min rate limit, free tier, affiliate ticket inventory with checkout links, ticket prices excluded from estimated total, transfer availability notes, streaming support. 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?
Description is lengthy but each sentence adds value, front-loaded with main purpose. Could benefit from more structured paragraphs, but overall clear and efficient for the complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With 18 parameters, nested objects, and no output schema, the description covers main behaviors, return structure (eventTickets[], transfer rateToken), edge cases (transferUnavailable), and alternatives. Missing some output format details but sufficient 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 has 100% description coverage for all 18 parameters, so baseline is 3. The description adds meaning beyond schema by explaining interplay of parameters (e.g., includeTickets semantics, transfer rateToken usage, groupByDay itinerary details).
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 defines the tool as a single-call orchestrated trip planner that combines hotels, activities, and estimated spend. It distinguishes from sibling tools like pricetik_hotel_search and pricetik_ticket_search, specifying when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use this tool vs alternatives: 'Use this for a single-call hotel + activity (+ event ticket) stitch; for hotels only, use pricetik_hotel_search; for tickets only, use pricetik_ticket_search.' Also provides context for optional features like includeTickets and includeTransfer.
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!